authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-02-24 04:29:05-05:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-03-01 16:29:22-05:00
log50b40c962114a5423dfc3eeaff3e819b1724ae50
treebb70022d19a7dba8312887b20139f735a03a1be9
parent6c3cbb0c87a33f4ae408874f6ceb40e372b65914

x86_64: rewrite wrapping add/sub


3 files changed, 5630 insertions(+), 648 deletions(-)

src/arch/x86_64/CodeGen.zig+3035-614
...@@ -2454,9 +2454,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2454,9 +2454,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2454 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);2454 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);
2455 switch (air_tags[@intFromEnum(inst)]) {2455 switch (air_tags[@intFromEnum(inst)]) {
2456 // zig fmt: off2456 // zig fmt: off
2457 .add_wrap => try cg.airBinOp(inst, .add_wrap),
2458 .sub_wrap => try cg.airBinOp(inst, .sub_wrap),
2459
2460 .shr, .shr_exact => try cg.airShlShrBinOp(inst),2457 .shr, .shr_exact => try cg.airShlShrBinOp(inst),
2461 .shl, .shl_exact => try cg.airShlShrBinOp(inst),2458 .shl, .shl_exact => try cg.airShlShrBinOp(inst),
24622459
...@@ -2497,7 +2494,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2497,7 +2494,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2497 if (arg != .none) break;2494 if (arg != .none) break;
2498 } else try cg.airDbgVarArgs();2495 } else try cg.airDbgVarArgs();
2499 },2496 },
2500 .add, .add_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .add) else {2497 .add, .add_optimized, .add_wrap => |air_tag| if (use_old) try cg.airBinOp(inst, switch (air_tag) {
2498 else => unreachable,
2499 .add, .add_optimized => .add,
2500 .add_wrap => .add_wrap,
2501 }) else {
2501 const bin_op = air_datas[@intFromEnum(inst)].bin_op;2502 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
2502 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });2503 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
2503 var res: [1]Temp = undefined;2504 var res: [1]Temp = undefined;
...@@ -3399,10 +3400,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -3399,10 +3400,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
3399 },3400 },
3400 .dst_temps = .{ .mem, .unused },3401 .dst_temps = .{ .mem, .unused },
3401 .each = .{ .once = &.{3402 .each = .{ .once = &.{
3402 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },3403 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
3403 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ },3404 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3404 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ },3405 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3405 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ },3406 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3406 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ },3407 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ },
3407 .{ ._, ._c, .cl, ._, ._, ._, ._ },3408 .{ ._, ._c, .cl, ._, ._, ._, ._ },
3408 .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },3409 .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
...@@ -3437,10 +3438,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -3437,10 +3438,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
3437 },3438 },
3438 .dst_temps = .{ .mem, .unused },3439 .dst_temps = .{ .mem, .unused },
3439 .each = .{ .once = &.{3440 .each = .{ .once = &.{
3440 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },3441 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
3441 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ },3442 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3442 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ },3443 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3443 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ },3444 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
3444 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ },3445 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ },
3445 .{ ._, ._c, .cl, ._, ._, ._, ._ },3446 .{ ._, ._c, .cl, ._, ._, ._, ._ },
3446 .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ },3447 .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ },
...@@ -4352,10 +4353,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4352,10 +4353,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4352 }),4353 }),
4353 else => |e| return e,4354 else => |e| return e,
4354 };4355 };
4356 switch (air_tag) {
4357 else => unreachable,
4358 .add, .add_optimized => {},
4359 .add_wrap => res[0].wrapInt(cg) catch |err| switch (err) {
4360 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{
4361 cg.typeOf(bin_op.lhs).fmt(pt),
4362 ops[0].tracking(cg),
4363 ops[1].tracking(cg),
4364 }),
4365 else => |e| return e,
4366 },
4367 }
4355 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);4368 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
4356 },4369 },
4357 .add_safe => unreachable,4370 .add_safe => unreachable,
4358 .sub, .sub_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .sub) else {4371 .sub, .sub_optimized, .sub_wrap => |air_tag| if (use_old) try cg.airBinOp(inst, switch (air_tag) {
4372 else => unreachable,
4373 .sub, .sub_optimized => .sub,
4374 .sub_wrap => .sub_wrap,
4375 }) else {
4359 const bin_op = air_datas[@intFromEnum(inst)].bin_op;4376 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
4360 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });4377 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
4361 var res: [1]Temp = undefined;4378 var res: [1]Temp = undefined;
...@@ -5229,10 +5246,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5229,10 +5246,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5229 },5246 },
5230 .dst_temps = .{ .mem, .unused },5247 .dst_temps = .{ .mem, .unused },
5231 .each = .{ .once = &.{5248 .each = .{ .once = &.{
5232 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },5249 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
5233 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ },5250 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5234 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ },5251 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5235 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ },5252 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5236 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ },5253 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ },
5237 .{ ._, ._c, .cl, ._, ._, ._, ._ },5254 .{ ._, ._c, .cl, ._, ._, ._, ._ },
5238 .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },5255 .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
...@@ -5267,10 +5284,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5267,10 +5284,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5267 },5284 },
5268 .dst_temps = .{ .mem, .unused },5285 .dst_temps = .{ .mem, .unused },
5269 .each = .{ .once = &.{5286 .each = .{ .once = &.{
5270 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },5287 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
5271 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ },5288 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5272 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ },5289 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5273 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ },5290 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size_add_elem_size), ._, ._ },
5274 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ },5291 .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ },
5275 .{ ._, ._c, .cl, ._, ._, ._, ._ },5292 .{ ._, ._c, .cl, ._, ._, ._, ._ },
5276 .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ },5293 .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ },
...@@ -6200,6 +6217,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6200,6 +6217,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6200 }),6217 }),
6201 else => |e| return e,6218 else => |e| return e,
6202 };6219 };
6220 switch (air_tag) {
6221 else => unreachable,
6222 .sub, .sub_optimized => {},
6223 .sub_wrap => res[0].wrapInt(cg) catch |err| switch (err) {
6224 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{
6225 cg.typeOf(bin_op.lhs).fmt(pt),
6226 ops[0].tracking(cg),
6227 ops[1].tracking(cg),
6228 }),
6229 else => |e| return e,
6230 },
6231 }
6203 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);6232 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
6204 },6233 },
6205 .sub_safe => unreachable,6234 .sub_safe => unreachable,
...@@ -18547,8 +18576,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18547,8 +18576,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18547 }, .{18576 }, .{
18548 .required_features = .{ .sse2, null, null, null },18577 .required_features = .{ .sse2, null, null, null },
18549 .src_constraints = .{18578 .src_constraints = .{
18550 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },18579 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
18551 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },18580 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
18552 .any,18581 .any,
18553 },18582 },
18554 .patterns = &.{18583 .patterns = &.{
...@@ -18682,8 +18711,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18682,8 +18711,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18682 }, .{18711 }, .{
18683 .required_features = .{ .sse2, null, null, null },18712 .required_features = .{ .sse2, null, null, null },
18684 .src_constraints = .{18713 .src_constraints = .{
18685 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },18714 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
18686 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },18715 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
18687 .any,18716 .any,
18688 },18717 },
18689 .patterns = &.{18718 .patterns = &.{
...@@ -18819,8 +18848,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18819,8 +18848,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18819 }, .{18848 }, .{
18820 .required_features = .{ .sse2, null, null, null },18849 .required_features = .{ .sse2, null, null, null },
18821 .src_constraints = .{18850 .src_constraints = .{
18822 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },18851 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18823 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },18852 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18824 .any,18853 .any,
18825 },18854 },
18826 .patterns = &.{18855 .patterns = &.{
...@@ -18971,8 +19000,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18971,8 +19000,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18971 }, .{19000 }, .{
18972 .required_features = .{ .sse2, null, null, null },19001 .required_features = .{ .sse2, null, null, null },
18973 .src_constraints = .{19002 .src_constraints = .{
18974 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },19003 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18975 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },19004 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18976 .any,19005 .any,
18977 },19006 },
18978 .patterns = &.{19007 .patterns = &.{
...@@ -19082,8 +19111,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19082,8 +19111,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19082 }, .{19111 }, .{
19083 .required_features = .{ .avx, null, null, null },19112 .required_features = .{ .avx, null, null, null },
19084 .src_constraints = .{19113 .src_constraints = .{
19085 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },19114 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19086 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },19115 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19087 .any,19116 .any,
19088 },19117 },
19089 .patterns = &.{19118 .patterns = &.{
...@@ -19097,8 +19126,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19097,8 +19126,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19097 }, .{19126 }, .{
19098 .required_features = .{ .sse4_2, null, null, null },19127 .required_features = .{ .sse4_2, null, null, null },
19099 .src_constraints = .{19128 .src_constraints = .{
19100 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },19129 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19101 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },19130 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19102 .any,19131 .any,
19103 },19132 },
19104 .patterns = &.{19133 .patterns = &.{
...@@ -19128,8 +19157,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19128,8 +19157,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19128 }, .{19157 }, .{
19129 .required_features = .{ .avx2, null, null, null },19158 .required_features = .{ .avx2, null, null, null },
19130 .src_constraints = .{19159 .src_constraints = .{
19131 .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } },19160 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
19132 .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } },19161 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
19133 .any,19162 .any,
19134 },19163 },
19135 .patterns = &.{19164 .patterns = &.{
...@@ -19143,8 +19172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19143,8 +19172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19143 }, .{19172 }, .{
19144 .required_features = .{ .avx2, null, null, null },19173 .required_features = .{ .avx2, null, null, null },
19145 .src_constraints = .{19174 .src_constraints = .{
19146 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } },19175 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
19147 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } },19176 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
19148 .any,19177 .any,
19149 },19178 },
19150 .patterns = &.{19179 .patterns = &.{
...@@ -19178,8 +19207,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19178,8 +19207,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19178 }, .{19207 }, .{
19179 .required_features = .{ .avx, null, null, null },19208 .required_features = .{ .avx, null, null, null },
19180 .src_constraints = .{19209 .src_constraints = .{
19181 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },19210 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19182 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },19211 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19183 .any,19212 .any,
19184 },19213 },
19185 .patterns = &.{19214 .patterns = &.{
...@@ -19213,8 +19242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19213,8 +19242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19213 }, .{19242 }, .{
19214 .required_features = .{ .sse4_2, null, null, null },19243 .required_features = .{ .sse4_2, null, null, null },
19215 .src_constraints = .{19244 .src_constraints = .{
19216 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },19245 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19217 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },19246 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
19218 .any,19247 .any,
19219 },19248 },
19220 .patterns = &.{19249 .patterns = &.{
...@@ -19318,8 +19347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19318,8 +19347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19318 }, .{19347 }, .{
19319 .required_features = .{ .avx, null, null, null },19348 .required_features = .{ .avx, null, null, null },
19320 .src_constraints = .{19349 .src_constraints = .{
19321 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19350 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19322 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19351 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19323 .any,19352 .any,
19324 },19353 },
19325 .patterns = &.{19354 .patterns = &.{
...@@ -19352,8 +19381,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19352,8 +19381,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19352 }, .{19381 }, .{
19353 .required_features = .{ .sse4_2, null, null, null },19382 .required_features = .{ .sse4_2, null, null, null },
19354 .src_constraints = .{19383 .src_constraints = .{
19355 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19384 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19356 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19385 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19357 .any,19386 .any,
19358 },19387 },
19359 .patterns = &.{19388 .patterns = &.{
...@@ -19387,8 +19416,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19387,8 +19416,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19387 }, .{19416 }, .{
19388 .required_features = .{ .avx2, null, null, null },19417 .required_features = .{ .avx2, null, null, null },
19389 .src_constraints = .{19418 .src_constraints = .{
19390 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } },19419 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
19391 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } },19420 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
19392 .any,19421 .any,
19393 },19422 },
19394 .patterns = &.{19423 .patterns = &.{
...@@ -19421,8 +19450,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19421,8 +19450,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19421 }, .{19450 }, .{
19422 .required_features = .{ .avx2, null, null, null },19451 .required_features = .{ .avx2, null, null, null },
19423 .src_constraints = .{19452 .src_constraints = .{
19424 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } },19453 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
19425 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } },19454 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
19426 .any,19455 .any,
19427 },19456 },
19428 .patterns = &.{19457 .patterns = &.{
...@@ -19460,8 +19489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19460,8 +19489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19460 }, .{19489 }, .{
19461 .required_features = .{ .avx, null, null, null },19490 .required_features = .{ .avx, null, null, null },
19462 .src_constraints = .{19491 .src_constraints = .{
19463 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19492 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19464 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19493 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19465 .any,19494 .any,
19466 },19495 },
19467 .patterns = &.{19496 .patterns = &.{
...@@ -19499,8 +19528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19499,8 +19528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19499 }, .{19528 }, .{
19500 .required_features = .{ .sse4_2, null, null, null },19529 .required_features = .{ .sse4_2, null, null, null },
19501 .src_constraints = .{19530 .src_constraints = .{
19502 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19531 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19503 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },19532 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19504 .any,19533 .any,
19505 },19534 },
19506 .patterns = &.{19535 .patterns = &.{
...@@ -19628,20 +19657,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19628,20 +19657,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19628 .dst_temps = .{ .mem, .unused },19657 .dst_temps = .{ .mem, .unused },
19629 .clobbers = .{ .eflags = true },19658 .clobbers = .{ .eflags = true },
19630 .each = .{ .once = &.{19659 .each = .{ .once = &.{
19631 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },19660 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
19632 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },19661 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
19633 .{ ._, ._c, .cl, ._, ._, ._, ._ },19662 .{ ._, ._c, .cl, ._, ._, ._, ._ },
19634 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19663 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19635 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19664 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19636 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },19665 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
19637 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },19666 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
19638 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },19667 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
19639 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19668 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19640 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19669 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19641 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19670 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19642 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19671 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19643 .{ ._, ._l, .cmov, .tmp1p, .tmp2p, ._, ._ },19672 .{ ._, ._l, .cmov, .tmp1p, .tmp2p, ._, ._ },
19644 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19673 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19645 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19674 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19646 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },19675 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19647 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },19676 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
...@@ -19669,20 +19698,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19669,20 +19698,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19669 .dst_temps = .{ .mem, .unused },19698 .dst_temps = .{ .mem, .unused },
19670 .clobbers = .{ .eflags = true },19699 .clobbers = .{ .eflags = true },
19671 .each = .{ .once = &.{19700 .each = .{ .once = &.{
19672 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },19701 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
19673 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },19702 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
19674 .{ ._, ._c, .cl, ._, ._, ._, ._ },19703 .{ ._, ._c, .cl, ._, ._, ._, ._ },
19675 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19704 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19676 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19705 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19677 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },19706 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
19678 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },19707 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
19679 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },19708 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
19680 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19709 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19681 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19710 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19682 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19711 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19683 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },19712 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
19684 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19713 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19685 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },19714 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19686 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19715 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19687 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },19716 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19688 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },19717 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
...@@ -19710,18 +19739,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19710,18 +19739,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19710 .dst_temps = .{ .mem, .unused },19739 .dst_temps = .{ .mem, .unused },
19711 .clobbers = .{ .eflags = true },19740 .clobbers = .{ .eflags = true },
19712 .each = .{ .once = &.{19741 .each = .{ .once = &.{
19713 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },19742 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
19714 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19743 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19715 .{ ._, ._c, .cl, ._, ._, ._, ._ },19744 .{ ._, ._c, .cl, ._, ._, ._, ._ },
19716 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19745 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19717 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19746 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19718 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },19747 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
19719 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },19748 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
19720 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },19749 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
19721 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },19750 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19722 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_sub_elem_size), ._, ._ },19751 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19723 .{ ._, ._b, .cmov, .tmp1p, .tmp2p, ._, ._ },19752 .{ ._, ._b, .cmov, .tmp1p, .tmp2p, ._, ._ },
19724 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_size_sub_elem_size), ._, ._ },19753 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19725 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19754 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19726 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },19755 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19727 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },19756 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
...@@ -19749,18 +19778,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19749,18 +19778,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19749 .dst_temps = .{ .mem, .unused },19778 .dst_temps = .{ .mem, .unused },
19750 .clobbers = .{ .eflags = true },19779 .clobbers = .{ .eflags = true },
19751 .each = .{ .once = &.{19780 .each = .{ .once = &.{
19752 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },19781 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
19753 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19782 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19754 .{ ._, ._c, .cl, ._, ._, ._, ._ },19783 .{ ._, ._c, .cl, ._, ._, ._, ._ },
19755 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },19784 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19756 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },19785 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19757 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },19786 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
19758 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },19787 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
19759 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },19788 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
19760 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },19789 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19761 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },19790 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
19762 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_size_sub_elem_size), ._, ._ },19791 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19763 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_size_sub_elem_size), ._, ._ },19792 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19764 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },19793 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19765 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },19794 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19766 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },19795 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
...@@ -22702,8 +22731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22702,8 +22731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22702 }, .{22731 }, .{
22703 .required_features = .{ .sse2, null, null, null },22732 .required_features = .{ .sse2, null, null, null },
22704 .src_constraints = .{22733 .src_constraints = .{
22705 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },22734 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22706 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },22735 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22707 .any,22736 .any,
22708 },22737 },
22709 .patterns = &.{22738 .patterns = &.{
...@@ -22837,8 +22866,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22837,8 +22866,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22837 }, .{22866 }, .{
22838 .required_features = .{ .sse2, null, null, null },22867 .required_features = .{ .sse2, null, null, null },
22839 .src_constraints = .{22868 .src_constraints = .{
22840 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22869 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22841 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22870 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22842 .any,22871 .any,
22843 },22872 },
22844 .patterns = &.{22873 .patterns = &.{
...@@ -22974,8 +23003,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22974,8 +23003,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22974 }, .{23003 }, .{
22975 .required_features = .{ .sse2, null, null, null },23004 .required_features = .{ .sse2, null, null, null },
22976 .src_constraints = .{23005 .src_constraints = .{
22977 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },23006 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
22978 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },23007 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
22979 .any,23008 .any,
22980 },23009 },
22981 .patterns = &.{23010 .patterns = &.{
...@@ -23126,8 +23155,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23126,8 +23155,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23126 }, .{23155 }, .{
23127 .required_features = .{ .sse2, null, null, null },23156 .required_features = .{ .sse2, null, null, null },
23128 .src_constraints = .{23157 .src_constraints = .{
23129 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },23158 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
23130 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },23159 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
23131 .any,23160 .any,
23132 },23161 },
23133 .patterns = &.{23162 .patterns = &.{
...@@ -23237,8 +23266,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23237,8 +23266,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23237 }, .{23266 }, .{
23238 .required_features = .{ .avx, null, null, null },23267 .required_features = .{ .avx, null, null, null },
23239 .src_constraints = .{23268 .src_constraints = .{
23240 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },23269 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23241 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },23270 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23242 .any,23271 .any,
23243 },23272 },
23244 .patterns = &.{23273 .patterns = &.{
...@@ -23254,8 +23283,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23254,8 +23283,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23254 }, .{23283 }, .{
23255 .required_features = .{ .sse4_2, null, null, null },23284 .required_features = .{ .sse4_2, null, null, null },
23256 .src_constraints = .{23285 .src_constraints = .{
23257 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },23286 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23258 .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } },23287 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23259 .any,23288 .any,
23260 },23289 },
23261 .patterns = &.{23290 .patterns = &.{
...@@ -23285,8 +23314,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23285,8 +23314,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23285 }, .{23314 }, .{
23286 .required_features = .{ .avx2, null, null, null },23315 .required_features = .{ .avx2, null, null, null },
23287 .src_constraints = .{23316 .src_constraints = .{
23288 .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } },23317 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
23289 .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } },23318 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
23290 .any,23319 .any,
23291 },23320 },
23292 .patterns = &.{23321 .patterns = &.{
...@@ -23302,8 +23331,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23302,8 +23331,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23302 }, .{23331 }, .{
23303 .required_features = .{ .avx2, null, null, null },23332 .required_features = .{ .avx2, null, null, null },
23304 .src_constraints = .{23333 .src_constraints = .{
23305 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } },23334 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
23306 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } },23335 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
23307 .any,23336 .any,
23308 },23337 },
23309 .patterns = &.{23338 .patterns = &.{
...@@ -23337,8 +23366,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23337,8 +23366,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23337 }, .{23366 }, .{
23338 .required_features = .{ .avx, null, null, null },23367 .required_features = .{ .avx, null, null, null },
23339 .src_constraints = .{23368 .src_constraints = .{
23340 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },23369 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23341 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },23370 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23342 .any,23371 .any,
23343 },23372 },
23344 .patterns = &.{23373 .patterns = &.{
...@@ -23372,8 +23401,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23372,8 +23401,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23372 }, .{23401 }, .{
23373 .required_features = .{ .sse4_2, null, null, null },23402 .required_features = .{ .sse4_2, null, null, null },
23374 .src_constraints = .{23403 .src_constraints = .{
23375 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },23404 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23376 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } },23405 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
23377 .any,23406 .any,
23378 },23407 },
23379 .patterns = &.{23408 .patterns = &.{
...@@ -23477,8 +23506,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23477,8 +23506,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23477 }, .{23506 }, .{
23478 .required_features = .{ .avx, null, null, null },23507 .required_features = .{ .avx, null, null, null },
23479 .src_constraints = .{23508 .src_constraints = .{
23480 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23509 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23481 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23510 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23482 .any,23511 .any,
23483 },23512 },
23484 .patterns = &.{23513 .patterns = &.{
...@@ -23511,8 +23540,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23511,8 +23540,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23511 }, .{23540 }, .{
23512 .required_features = .{ .sse4_2, null, null, null },23541 .required_features = .{ .sse4_2, null, null, null },
23513 .src_constraints = .{23542 .src_constraints = .{
23514 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23543 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23515 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23544 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23516 .any,23545 .any,
23517 },23546 },
23518 .patterns = &.{23547 .patterns = &.{
...@@ -23546,8 +23575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23546,8 +23575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23546 }, .{23575 }, .{
23547 .required_features = .{ .avx2, null, null, null },23576 .required_features = .{ .avx2, null, null, null },
23548 .src_constraints = .{23577 .src_constraints = .{
23549 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } },23578 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
23550 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } },23579 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
23551 .any,23580 .any,
23552 },23581 },
23553 .patterns = &.{23582 .patterns = &.{
...@@ -23580,8 +23609,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23580,8 +23609,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23580 }, .{23609 }, .{
23581 .required_features = .{ .avx2, null, null, null },23610 .required_features = .{ .avx2, null, null, null },
23582 .src_constraints = .{23611 .src_constraints = .{
23583 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } },23612 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
23584 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } },23613 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
23585 .any,23614 .any,
23586 },23615 },
23587 .patterns = &.{23616 .patterns = &.{
...@@ -23619,8 +23648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23619,8 +23648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23619 }, .{23648 }, .{
23620 .required_features = .{ .avx, null, null, null },23649 .required_features = .{ .avx, null, null, null },
23621 .src_constraints = .{23650 .src_constraints = .{
23622 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23651 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23623 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23652 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23624 .any,23653 .any,
23625 },23654 },
23626 .patterns = &.{23655 .patterns = &.{
...@@ -23658,8 +23687,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23658,8 +23687,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23658 }, .{23687 }, .{
23659 .required_features = .{ .sse4_2, null, null, null },23688 .required_features = .{ .sse4_2, null, null, null },
23660 .src_constraints = .{23689 .src_constraints = .{
23661 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23690 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23662 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } },23691 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
23663 .any,23692 .any,
23664 },23693 },
23665 .patterns = &.{23694 .patterns = &.{
...@@ -23787,20 +23816,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23787,20 +23816,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23787 .dst_temps = .{ .mem, .unused },23816 .dst_temps = .{ .mem, .unused },
23788 .clobbers = .{ .eflags = true },23817 .clobbers = .{ .eflags = true },
23789 .each = .{ .once = &.{23818 .each = .{ .once = &.{
23790 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23819 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
23791 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },23820 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
23792 .{ ._, ._c, .cl, ._, ._, ._, ._ },23821 .{ ._, ._c, .cl, ._, ._, ._, ._ },
23793 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23822 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23794 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23823 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23795 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23824 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
23796 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23825 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
23797 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23826 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
23798 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23827 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23799 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23828 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23800 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23829 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23801 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23830 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23802 .{ ._, ._ge, .cmov, .tmp1p, .tmp2p, ._, ._ },23831 .{ ._, ._ge, .cmov, .tmp1p, .tmp2p, ._, ._ },
23803 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23832 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23804 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23833 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23805 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },23834 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23806 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },23835 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
...@@ -23828,20 +23857,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23828,20 +23857,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23828 .dst_temps = .{ .mem, .unused },23857 .dst_temps = .{ .mem, .unused },
23829 .clobbers = .{ .eflags = true },23858 .clobbers = .{ .eflags = true },
23830 .each = .{ .once = &.{23859 .each = .{ .once = &.{
23831 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23860 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
23832 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },23861 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
23833 .{ ._, ._c, .cl, ._, ._, ._, ._ },23862 .{ ._, ._c, .cl, ._, ._, ._, ._ },
23834 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23863 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23835 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23864 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23836 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23865 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
23837 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23866 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
23838 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23867 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
23839 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23868 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23840 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23869 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23841 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23870 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23842 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },23871 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
23843 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23872 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23844 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_size_sub_elem_size, 8), ._, ._ },23873 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23845 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23874 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23846 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },23875 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23847 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },23876 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
...@@ -23869,18 +23898,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23869,18 +23898,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23869 .dst_temps = .{ .mem, .unused },23898 .dst_temps = .{ .mem, .unused },
23870 .clobbers = .{ .eflags = true },23899 .clobbers = .{ .eflags = true },
23871 .each = .{ .once = &.{23900 .each = .{ .once = &.{
23872 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23901 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
23873 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23902 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23874 .{ ._, ._c, .cl, ._, ._, ._, ._ },23903 .{ ._, ._c, .cl, ._, ._, ._, ._ },
23875 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23904 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23876 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23905 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23877 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23906 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
23878 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23907 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
23879 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23908 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
23880 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },23909 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23881 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_sub_elem_size), ._, ._ },23910 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23882 .{ ._, ._ae, .cmov, .tmp1p, .tmp2p, ._, ._ },23911 .{ ._, ._ae, .cmov, .tmp1p, .tmp2p, ._, ._ },
23883 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_size_sub_elem_size), ._, ._ },23912 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23884 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23913 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23885 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },23914 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23886 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },23915 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
...@@ -23908,18 +23937,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23908,18 +23937,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23908 .dst_temps = .{ .mem, .unused },23937 .dst_temps = .{ .mem, .unused },
23909 .clobbers = .{ .eflags = true },23938 .clobbers = .{ .eflags = true },
23910 .each = .{ .once = &.{23939 .each = .{ .once = &.{
23911 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23940 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
23912 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23941 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23913 .{ ._, ._c, .cl, ._, ._, ._, ._ },23942 .{ ._, ._c, .cl, ._, ._, ._, ._ },
23914 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23943 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
23915 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23944 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23916 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23945 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
23917 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23946 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
23918 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23947 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
23919 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },23948 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23920 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },23949 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
23921 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_size_sub_elem_size), ._, ._ },23950 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23922 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_size_sub_elem_size), ._, ._ },23951 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23923 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23952 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23924 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },23953 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23925 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },23954 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
...@@ -39252,7 +39281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39252,7 +39281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39252 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },39281 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },
39253 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },39282 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },
39254 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },39283 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },
39255 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },39284 .{ ._, ._a, .j, .@"1b", ._, ._, ._ },
39256 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },39285 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },
39257 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },39286 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },
39258 .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ },39287 .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ },
...@@ -39434,7 +39463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39434,7 +39463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39434 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },39463 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },
39435 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },39464 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },
39436 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },39465 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },
39437 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },39466 .{ ._, ._a, .j, .@"1b", ._, ._, ._ },
39438 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },39467 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
39439 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },39468 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },
39440 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },39469 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },
...@@ -39620,7 +39649,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39620,7 +39649,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39620 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },39649 .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ },
39621 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },39650 .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ },
39622 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },39651 .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ },
39623 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },39652 .{ ._, ._a, .j, .@"1b", ._, ._, ._ },
39624 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },39653 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
39625 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },39654 .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ },
39626 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },39655 .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ },
...@@ -59051,8 +59080,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59051,8 +59080,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59051 .each = .{ .once = &.{59080 .each = .{ .once = &.{
59052 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },59081 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
59053 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },59082 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
59054 .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ },59083 .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ },
59055 .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ },59084 .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ },
59056 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },59085 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
59057 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },59086 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
59058 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },59087 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -59113,8 +59142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59113,8 +59142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59113 .each = .{ .once = &.{59142 .each = .{ .once = &.{
59114 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },59143 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
59115 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },59144 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
59116 .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ },59145 .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ },
59117 .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ },59146 .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ },
59118 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },59147 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
59119 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },59148 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
59120 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },59149 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -59175,8 +59204,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59175,8 +59204,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59175 .each = .{ .once = &.{59204 .each = .{ .once = &.{
59176 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },59205 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
59177 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },59206 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
59178 .{ ._, .p_d, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ },59207 .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
59179 .{ ._, .p_d, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ },59208 .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
59180 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },59209 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
59181 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },59210 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
59182 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },59211 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -60838,7 +60867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -60838,7 +60867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
60838 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },60867 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
60839 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },60868 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
60840 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },60869 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },
60841 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },60870 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
60842 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },60871 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
60843 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },60872 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
60844 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },60873 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },
...@@ -60875,7 +60904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -60875,7 +60904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
60875 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },60904 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
60876 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },60905 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
60877 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },60906 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },
60878 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },60907 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
60879 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },60908 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
60880 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },60909 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
60881 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },60910 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
...@@ -60914,7 +60943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -60914,7 +60943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
60914 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },60943 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
60915 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },60944 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
60916 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },60945 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },
60917 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },60946 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
60918 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },60947 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
60919 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },60948 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
60920 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },60949 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },
...@@ -60953,7 +60982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -60953,7 +60982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
60953 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },60982 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
60954 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },60983 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
60955 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },60984 .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ },
60956 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },60985 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
60957 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },60986 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
60958 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },60987 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
60959 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },60988 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
...@@ -61130,7 +61159,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -61130,7 +61159,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
61130 .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ },61159 .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ },
61131 .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ },61160 .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ },
61132 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },61161 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },
61133 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },61162 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
61134 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },61163 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
61135 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },61164 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
61136 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },61165 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },
...@@ -61167,7 +61196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -61167,7 +61196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
61167 .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ },61196 .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ },
61168 .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ },61197 .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ },
61169 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },61198 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },
61170 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },61199 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
61171 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },61200 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
61172 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },61201 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
61173 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },61202 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
...@@ -61274,7 +61303,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -61274,7 +61303,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
61274 .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ },61303 .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ },
61275 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },61304 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
61276 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },61305 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },
61277 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },61306 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
61278 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },61307 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
61279 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },61308 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
61280 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },61309 .{ ._, ._a, .j, .@"0b", ._, ._, ._ },
...@@ -61311,7 +61340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -61311,7 +61340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
61311 .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ },61340 .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ },
61312 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },61341 .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ },
61313 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },61342 .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ },
61314 .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ },61343 .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ },
61315 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },61344 .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ },
61316 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },61345 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
61317 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },61346 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
...@@ -94747,7 +94776,7 @@ const MoveStrategy = union(enum) {...@@ -94747,7 +94776,7 @@ const MoveStrategy = union(enum) {
94747 });94776 });
94748 },94777 },
94749 .load_store => |tag| {94778 .load_store => |tag| {
94750 if (tag[0] == ._ps and tag[1] == .movl) try cg.asmRegisterRegister(.{ .p_, .xor }, dst_reg, dst_reg);94779 if (tag[0] == ._ps and tag[1] == .movl) try cg.asmRegisterRegister(.{ ._ps, .xor }, dst_reg, dst_reg);
94751 try cg.asmRegisterMemory(tag, switch (tag[1]) {94780 try cg.asmRegisterMemory(tag, switch (tag[1]) {
94752 else => dst_reg,94781 else => dst_reg,
94753 .lea => if (dst_reg.bitSize() >= 32) dst_reg else dst_reg.to32(),94782 .lea => if (dst_reg.bitSize() >= 32) dst_reg else dst_reg.to32(),
...@@ -101383,454 +101412,2823 @@ const Temp = struct {...@@ -101383,454 +101412,2823 @@ const Temp = struct {
101383 try cg.asmOpOnly(.{ .@"rep _sb", .sto });101412 try cg.asmOpOnly(.{ .@"rep _sb", .sto });
101384 }101413 }
101385101414
101386 /// Supports any `op` using `cg.intInfo(lhs.typeOf(cg)).?.signedness` as the signedness.101415 fn wrapInt(temp: *Temp, cg: *CodeGen) Select.Error!void {
101387 /// Returns `error.SelectFailed` when `cg.intInfo(lhs.typeOf(cg)) == null`.101416 var ops: [1]Temp = .{temp.*};
101388 fn cmpInts(lhs: *Temp, op: std.math.CompareOperator, rhs: *Temp, cg: *CodeGen) Select.Error!Temp {
101389 var ops: [2]Temp = .{ lhs.*, rhs.* };
101390 var res: [1]Temp = undefined;101417 var res: [1]Temp = undefined;
101391 switch (op) {101418 try cg.select(&res, &.{temp.typeOf(cg)}, &ops, comptime &.{ .{
101392 .lt, .lte, .gte, .gt => {101419 .src_constraints = .{ .{ .exact_int = 8 }, .any, .any },
101393 const commute = switch (op) {101420 .patterns = &.{
101394 .lt, .gte => false,101421 .{ .src = .{ .mut_mem, .none, .none } },
101395 .lte, .gt => true,101422 .{ .src = .{ .to_mut_gpr, .none, .none } },
101396 else => unreachable,
101397 };
101398 if (commute) std.mem.swap(Temp, &ops[0], &ops[1]);
101399 try cg.select(&res, &.{.bool}, &ops, comptime &.{ .{
101400 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
101401 .patterns = &.{
101402 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },
101403 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },
101404 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101405 },
101406 .dst_temps = .{ .{ .cc = .g }, .unused },
101407 .clobbers = .{ .eflags = true },
101408 .each = .{ .once = &.{
101409 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
101410 } },
101411 }, .{
101412 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
101413 .patterns = &.{
101414 .{ .src = .{ .mem, .imm8, .none } },
101415 .{ .src = .{ .to_gpr, .imm8, .none } },
101416 .{ .src = .{ .to_gpr, .mem, .none } },
101417 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101418 },
101419 .dst_temps = .{ .{ .cc = .l }, .unused },
101420 .clobbers = .{ .eflags = true },
101421 .each = .{ .once = &.{
101422 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
101423 } },
101424 }, .{
101425 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
101426 .patterns = &.{
101427 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },
101428 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },
101429 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101430 },
101431 .dst_temps = .{ .{ .cc = .a }, .unused },
101432 .clobbers = .{ .eflags = true },
101433 .each = .{ .once = &.{
101434 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
101435 } },
101436 }, .{
101437 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
101438 .patterns = &.{
101439 .{ .src = .{ .mem, .imm8, .none } },
101440 .{ .src = .{ .to_gpr, .imm8, .none } },
101441 .{ .src = .{ .to_gpr, .mem, .none } },
101442 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101443 },
101444 .dst_temps = .{ .{ .cc = .b }, .unused },
101445 .clobbers = .{ .eflags = true },
101446 .each = .{ .once = &.{
101447 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
101448 } },
101449 }, .{
101450 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
101451 .patterns = &.{
101452 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
101453 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
101454 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101455 },
101456 .dst_temps = .{ .{ .cc = .g }, .unused },
101457 .clobbers = .{ .eflags = true },
101458 .each = .{ .once = &.{
101459 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
101460 } },
101461 }, .{
101462 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
101463 .patterns = &.{
101464 .{ .src = .{ .mem, .imm16, .none } },
101465 .{ .src = .{ .to_gpr, .imm16, .none } },
101466 .{ .src = .{ .to_gpr, .mem, .none } },
101467 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101468 },
101469 .dst_temps = .{ .{ .cc = .l }, .unused },
101470 .clobbers = .{ .eflags = true },
101471 .each = .{ .once = &.{
101472 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
101473 } },
101474 }, .{
101475 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
101476 .patterns = &.{
101477 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
101478 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
101479 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101480 },
101481 .dst_temps = .{ .{ .cc = .a }, .unused },
101482 .clobbers = .{ .eflags = true },
101483 .each = .{ .once = &.{
101484 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
101485 } },
101486 }, .{
101487 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
101488 .patterns = &.{
101489 .{ .src = .{ .mem, .imm16, .none } },
101490 .{ .src = .{ .to_gpr, .imm16, .none } },
101491 .{ .src = .{ .to_gpr, .mem, .none } },
101492 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101493 },
101494 .dst_temps = .{ .{ .cc = .b }, .unused },
101495 .clobbers = .{ .eflags = true },
101496 .each = .{ .once = &.{
101497 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
101498 } },
101499 }, .{
101500 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
101501 .patterns = &.{
101502 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
101503 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
101504 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101505 },
101506 .dst_temps = .{ .{ .cc = .g }, .unused },
101507 .clobbers = .{ .eflags = true },
101508 .each = .{ .once = &.{
101509 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
101510 } },
101511 }, .{
101512 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
101513 .patterns = &.{
101514 .{ .src = .{ .mem, .imm32, .none } },
101515 .{ .src = .{ .to_gpr, .imm32, .none } },
101516 .{ .src = .{ .to_gpr, .mem, .none } },
101517 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101518 },
101519 .dst_temps = .{ .{ .cc = .l }, .unused },
101520 .clobbers = .{ .eflags = true },
101521 .each = .{ .once = &.{
101522 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
101523 } },
101524 }, .{
101525 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
101526 .patterns = &.{
101527 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
101528 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
101529 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101530 },
101531 .dst_temps = .{ .{ .cc = .a }, .unused },
101532 .clobbers = .{ .eflags = true },
101533 .each = .{ .once = &.{
101534 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
101535 } },
101536 }, .{
101537 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
101538 .patterns = &.{
101539 .{ .src = .{ .mem, .imm32, .none } },
101540 .{ .src = .{ .to_gpr, .imm32, .none } },
101541 .{ .src = .{ .to_gpr, .mem, .none } },
101542 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101543 },
101544 .dst_temps = .{ .{ .cc = .b }, .unused },
101545 .clobbers = .{ .eflags = true },
101546 .each = .{ .once = &.{
101547 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
101548 } },
101549 }, .{
101550 .required_features = .{ .@"64bit", null, null, null },
101551 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
101552 .patterns = &.{
101553 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
101554 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
101555 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101556 },
101557 .dst_temps = .{ .{ .cc = .g }, .unused },
101558 .clobbers = .{ .eflags = true },
101559 .each = .{ .once = &.{
101560 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
101561 } },
101562 }, .{
101563 .required_features = .{ .@"64bit", null, null, null },
101564 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
101565 .patterns = &.{
101566 .{ .src = .{ .mem, .simm32, .none } },
101567 .{ .src = .{ .to_gpr, .simm32, .none } },
101568 .{ .src = .{ .to_gpr, .mem, .none } },
101569 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101570 },
101571 .dst_temps = .{ .{ .cc = .l }, .unused },
101572 .clobbers = .{ .eflags = true },
101573 .each = .{ .once = &.{
101574 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
101575 } },
101576 }, .{
101577 .required_features = .{ .@"64bit", null, null, null },
101578 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
101579 .patterns = &.{
101580 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
101581 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
101582 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
101583 },
101584 .dst_temps = .{ .{ .cc = .a }, .unused },
101585 .clobbers = .{ .eflags = true },
101586 .each = .{ .once = &.{
101587 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
101588 } },
101589 }, .{
101590 .required_features = .{ .@"64bit", null, null, null },
101591 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
101592 .patterns = &.{
101593 .{ .src = .{ .mem, .simm32, .none } },
101594 .{ .src = .{ .to_gpr, .simm32, .none } },
101595 .{ .src = .{ .to_gpr, .mem, .none } },
101596 .{ .src = .{ .to_gpr, .to_gpr, .none } },
101597 },
101598 .dst_temps = .{ .{ .cc = .b }, .unused },
101599 .clobbers = .{ .eflags = true },
101600 .each = .{ .once = &.{
101601 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
101602 } },
101603 }, .{
101604 .required_features = .{ .@"64bit", null, null, null },
101605 .src_constraints = .{
101606 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
101607 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
101608 .any,
101609 },
101610 .patterns = &.{
101611 .{ .src = .{ .to_mem, .to_mem, .none } },
101612 },
101613 .extra_temps = .{
101614 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101615 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
101616 .unused,
101617 .unused,
101618 .unused,
101619 .unused,
101620 .unused,
101621 .unused,
101622 .unused,
101623 .unused,
101624 .unused,
101625 },
101626 .dst_temps = .{ .{ .cc = .l }, .unused },
101627 .clobbers = .{ .eflags = true },
101628 .each = .{ .once = &.{
101629 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
101630 .{ ._, ._c, .cl, ._, ._, ._, ._ },
101631 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
101632 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
101633 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
101634 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
101635 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
101636 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
101637 } },
101638 }, .{
101639 .required_features = .{ .@"64bit", null, null, null },
101640 .src_constraints = .{
101641 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
101642 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
101643 .any,
101644 },
101645 .patterns = &.{
101646 .{ .src = .{ .to_mem, .to_mem, .none } },
101647 },
101648 .extra_temps = .{
101649 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101650 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
101651 .unused,
101652 .unused,
101653 .unused,
101654 .unused,
101655 .unused,
101656 .unused,
101657 .unused,
101658 .unused,
101659 .unused,
101660 },
101661 .dst_temps = .{ .{ .cc = .b }, .unused },
101662 .clobbers = .{ .eflags = true },
101663 .each = .{ .once = &.{
101664 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
101665 .{ ._, ._c, .cl, ._, ._, ._, ._ },
101666 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
101667 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
101668 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
101669 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
101670 } },
101671 }, .{
101672 .src_constraints = .{
101673 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
101674 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
101675 .any,
101676 },
101677 .patterns = &.{
101678 .{ .src = .{ .to_mem, .to_mem, .none } },
101679 },
101680 .extra_temps = .{
101681 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101682 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
101683 .unused,
101684 .unused,
101685 .unused,
101686 .unused,
101687 .unused,
101688 .unused,
101689 .unused,
101690 .unused,
101691 .unused,
101692 },
101693 .dst_temps = .{ .{ .cc = .l }, .unused },
101694 .clobbers = .{ .eflags = true },
101695 .each = .{ .once = &.{
101696 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_4), ._, ._ },
101697 .{ ._, ._c, .cl, ._, ._, ._, ._ },
101698 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"4", .tmp0, .add_size, -4), ._, ._ },
101699 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"4", .tmp0, .add_size, -4), ._, ._ },
101700 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
101701 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
101702 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -4), ._, ._ },
101703 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -4), ._, ._ },
101704 } },
101705 }, .{
101706 .src_constraints = .{
101707 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
101708 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
101709 .any,
101710 },
101711 .patterns = &.{
101712 .{ .src = .{ .to_mem, .to_mem, .none } },
101713 },
101714 .extra_temps = .{
101715 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101716 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
101717 .unused,
101718 .unused,
101719 .unused,
101720 .unused,
101721 .unused,
101722 .unused,
101723 .unused,
101724 .unused,
101725 .unused,
101726 },
101727 .dst_temps = .{ .{ .cc = .b }, .unused },
101728 .clobbers = .{ .eflags = true },
101729 .each = .{ .once = &.{
101730 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_4), ._, ._ },
101731 .{ ._, ._c, .cl, ._, ._, ._, ._ },
101732 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_size), ._, ._ },
101733 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"4", .tmp0, .add_size), ._, ._ },
101734 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
101735 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
101736 } },
101737 } });
101738 if (commute) std.mem.swap(Temp, &ops[0], &ops[1]);
101739 },101423 },
101740 .eq, .neq => {101424 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101741 try cg.select(&res, &.{.bool}, &ops, comptime &.{ .{101425 .each = .{ .once = &.{} },
101742 .src_constraints = .{ .{ .int = .byte }, .{ .int = .byte }, .any },101426 }, .{
101743 .patterns = &.{101427 .src_constraints = .{ .{ .signed_int = .byte }, .any, .any },
101744 .{ .src = .{ .mem, .imm8, .none } },101428 .patterns = &.{
101745 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },101429 .{ .src = .{ .to_mut_gpr, .none, .none } },
101746 .{ .src = .{ .to_gpr, .imm8, .none } },101430 },
101747 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },101431 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101748 .{ .src = .{ .to_gpr, .mem, .none } },101432 .clobbers = .{ .eflags = true },
101749 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },101433 .each = .{ .once = &.{
101750 .{ .src = .{ .to_gpr, .to_gpr, .none } },101434 .{ ._, ._l, .sa, .dst0b, .uia(8, .src0, .sub_bit_size), ._, ._ },
101751 },101435 .{ ._, ._r, .sa, .dst0b, .uia(8, .src0, .sub_bit_size), ._, ._ },
101752 .dst_temps = .{ .{ .cc = .e }, .unused },101436 } },
101753 .clobbers = .{ .eflags = true },101437 }, .{
101754 .each = .{ .once = &.{101438 .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any },
101755 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },101439 .patterns = &.{
101756 } },101440 .{ .src = .{ .mut_mem, .none, .none } },
101757 }, .{101441 .{ .src = .{ .to_mut_gpr, .none, .none } },
101758 .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any },101442 },
101759 .patterns = &.{101443 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101760 .{ .src = .{ .mem, .imm16, .none } },101444 .clobbers = .{ .eflags = true },
101761 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },101445 .each = .{ .once = &.{
101762 .{ .src = .{ .to_gpr, .imm16, .none } },101446 .{ ._, ._, .@"and", .dst0b, .ua(.src0, .add_umax), ._, ._ },
101763 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },101447 } },
101764 .{ .src = .{ .to_gpr, .mem, .none } },101448 }, .{
101765 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },101449 .src_constraints = .{ .{ .exact_int = 16 }, .any, .any },
101766 .{ .src = .{ .to_gpr, .to_gpr, .none } },101450 .patterns = &.{
101767 },101451 .{ .src = .{ .mut_mem, .none, .none } },
101768 .dst_temps = .{ .{ .cc = .e }, .unused },101452 .{ .src = .{ .to_mut_gpr, .none, .none } },
101769 .clobbers = .{ .eflags = true },101453 },
101770 .each = .{ .once = &.{101454 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101771 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },101455 .each = .{ .once = &.{} },
101772 } },101456 }, .{
101773 }, .{101457 .required_features = .{ .fast_imm16, null, null, null },
101774 .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any },101458 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
101775 .patterns = &.{101459 .patterns = &.{
101776 .{ .src = .{ .mem, .imm32, .none } },101460 .{ .src = .{ .mut_mem, .none, .none } },
101777 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },101461 .{ .src = .{ .to_mut_gpr, .none, .none } },
101778 .{ .src = .{ .to_gpr, .imm32, .none } },101462 },
101779 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },101463 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101780 .{ .src = .{ .to_gpr, .mem, .none } },101464 .clobbers = .{ .eflags = true },
101781 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },101465 .each = .{ .once = &.{
101782 .{ .src = .{ .to_gpr, .to_gpr, .none } },101466 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },
101783 },101467 } },
101784 .dst_temps = .{ .{ .cc = .e }, .unused },101468 }, .{
101785 .clobbers = .{ .eflags = true },101469 .src_constraints = .{ .{ .exact_int = 32 }, .any, .any },
101786 .each = .{ .once = &.{101470 .patterns = &.{
101787 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },101471 .{ .src = .{ .mut_mem, .none, .none } },
101788 } },101472 .{ .src = .{ .to_mut_gpr, .none, .none } },
101789 }, .{101473 },
101790 .required_features = .{ .@"64bit", null, null, null },101474 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101791 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },101475 .each = .{ .once = &.{} },
101792 .patterns = &.{101476 }, .{
101793 .{ .src = .{ .mem, .simm32, .none } },101477 .src_constraints = .{ .{ .signed_int = .dword }, .any, .any },
101794 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },101478 .patterns = &.{
101795 .{ .src = .{ .to_gpr, .simm32, .none } },101479 .{ .src = .{ .to_mut_gpr, .none, .none } },
101796 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },101480 },
101797 .{ .src = .{ .to_gpr, .mem, .none } },101481 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101798 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },101482 .clobbers = .{ .eflags = true },
101799 .{ .src = .{ .to_gpr, .to_gpr, .none } },101483 .each = .{ .once = &.{
101800 },101484 .{ ._, ._l, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
101801 .dst_temps = .{ .{ .cc = .e }, .unused },101485 .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
101802 .clobbers = .{ .eflags = true },101486 } },
101803 .each = .{ .once = &.{101487 }, .{
101804 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },101488 .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any },
101805 } },101489 .patterns = &.{
101806 }, .{101490 .{ .src = .{ .mut_mem, .none, .none } },
101807 .required_features = .{ .sse, .mmx, null, null },101491 .{ .src = .{ .to_mut_gpr, .none, .none } },
101808 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },101492 },
101809 .patterns = &.{101493 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101810 .{ .src = .{ .to_mut_mm, .mem, .none } },101494 .clobbers = .{ .eflags = true },
101811 .{ .src = .{ .mem, .to_mut_mm, .none }, .commute = .{ 0, 1 } },101495 .each = .{ .once = &.{
101812 .{ .src = .{ .to_mut_mm, .to_mm, .none } },101496 .{ ._, ._, .@"and", .dst0d, .ua(.src0, .add_umax), ._, ._ },
101813 },101497 } },
101814 .extra_temps = .{101498 }, .{
101815 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },101499 .required_features = .{ .@"64bit", null, null, null },
101816 .{ .kind = .{ .rc = .mmx } },101500 .src_constraints = .{ .{ .exact_int = 64 }, .any, .any },
101817 .unused,101501 .patterns = &.{
101818 .unused,101502 .{ .src = .{ .mut_mem, .none, .none } },
101819 .unused,101503 .{ .src = .{ .to_mut_gpr, .none, .none } },
101820 .unused,101504 },
101821 .unused,101505 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101822 .unused,101506 .each = .{ .once = &.{} },
101823 .unused,101507 }, .{
101824 .unused,101508 .required_features = .{ .@"64bit", null, null, null },
101825 .unused,101509 .src_constraints = .{ .{ .signed_int = .qword }, .any, .any },
101826 },101510 .patterns = &.{
101827 .dst_temps = .{ .{ .cc = .z }, .unused },101511 .{ .src = .{ .to_mut_gpr, .none, .none } },
101828 .clobbers = .{ .eflags = true },101512 },
101829 .each = .{ .once = &.{101513 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101830 .{ ._, .p_, .xor, .tmp1q, .tmp1q, ._, ._ },101514 .clobbers = .{ .eflags = true },
101831 .{ ._, .p_, .xor, .src0q, .src1q, ._, ._ },101515 .each = .{ .once = &.{
101832 .{ ._, .p_b, .cmpeq, .tmp1q, .src0q, ._, ._ },101516 .{ ._, ._l, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
101833 .{ ._, .p_b, .movmsk, .tmp0d, .tmp1q, ._, ._ },101517 .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
101518 } },
101519 }, .{
101520 .required_features = .{ .@"64bit", .bmi2, null, null },
101521 .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },
101522 .patterns = &.{
101523 .{ .src = .{ .to_gpr, .none, .none } },
101524 },
101525 .extra_temps = .{
101526 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
101527 .unused,
101528 .unused,
101529 .unused,
101530 .unused,
101531 .unused,
101532 .unused,
101533 .unused,
101534 .unused,
101535 .unused,
101536 .unused,
101537 },
101538 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
101539 .clobbers = .{ .eflags = true },
101540 .each = .{ .once = &.{
101541 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size), ._, ._ },
101542 .{ ._, ._, .bzhi, .dst0q, .src0q, .tmp0q, ._ },
101543 } },
101544 }, .{
101545 .required_features = .{ .@"64bit", null, null, null },
101546 .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },
101547 .patterns = &.{
101548 .{ .src = .{ .mut_mem, .none, .none } },
101549 .{ .src = .{ .to_mut_gpr, .none, .none } },
101550 },
101551 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101552 .clobbers = .{ .eflags = true },
101553 .each = .{ .once = &.{
101554 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
101555 .{ ._, ._, .@"and", .dst0q, .tmp0q, ._, ._ },
101556 } },
101557 }, .{
101558 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
101559 .patterns = &.{
101560 .{ .src = .{ .mut_mem, .none, .none } },
101561 },
101562 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101563 .each = .{ .once = &.{} },
101564 }, .{
101565 .required_features = .{ .@"64bit", null, null, null },
101566 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
101567 .patterns = &.{
101568 .{ .src = .{ .mut_mem, .none, .none } },
101569 },
101570 .extra_temps = .{
101571 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
101572 .unused,
101573 .unused,
101574 .unused,
101575 .unused,
101576 .unused,
101577 .unused,
101578 .unused,
101579 .unused,
101580 .unused,
101581 .unused,
101582 },
101583 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101584 .clobbers = .{ .eflags = true },
101585 .each = .{ .once = &.{
101586 .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
101587 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
101588 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
101589 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
101590 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
101591 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
101592 } },
101593 }, .{
101594 .required_features = .{ .@"64bit", null, null, null },
101595 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
101596 .patterns = &.{
101597 .{ .src = .{ .mut_mem, .none, .none } },
101598 },
101599 .extra_temps = .{
101600 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
101601 .unused,
101602 .unused,
101603 .unused,
101604 .unused,
101605 .unused,
101606 .unused,
101607 .unused,
101608 .unused,
101609 .unused,
101610 .unused,
101611 },
101612 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101613 .clobbers = .{ .eflags = true },
101614 .each = .{ .once = &.{
101615 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
101616 .{ ._, ._, .@"and", .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
101617 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
101618 } },
101619 }, .{
101620 .required_features = .{ .@"64bit", null, null, null },
101621 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
101622 .patterns = &.{
101623 .{ .src = .{ .mut_mem, .none, .none } },
101624 },
101625 .extra_temps = .{
101626 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
101627 .unused,
101628 .unused,
101629 .unused,
101630 .unused,
101631 .unused,
101632 .unused,
101633 .unused,
101634 .unused,
101635 .unused,
101636 .unused,
101637 },
101638 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101639 .clobbers = .{ .eflags = true },
101640 .each = .{ .once = &.{
101641 .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ },
101642 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
101643 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
101644 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
101645 } },
101646 }, .{
101647 .required_features = .{ .@"64bit", null, null, null },
101648 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
101649 .patterns = &.{
101650 .{ .src = .{ .mut_mem, .none, .none } },
101651 },
101652 .extra_temps = .{
101653 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
101654 .unused,
101655 .unused,
101656 .unused,
101657 .unused,
101658 .unused,
101659 .unused,
101660 .unused,
101661 .unused,
101662 .unused,
101663 .unused,
101664 },
101665 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101666 .clobbers = .{ .eflags = true },
101667 .each = .{ .once = &.{
101668 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
101669 .{ ._, ._, .@"and", .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
101670 } },
101671 }, .{
101672 .required_features = .{ .sse, null, null, null },
101673 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .xword, .is = 8 } }, .any, .any },
101674 .patterns = &.{
101675 .{ .src = .{ .mut_mem, .none, .none } },
101676 .{ .src = .{ .to_mut_sse, .none, .none } },
101677 },
101678 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101679 .each = .{ .once = &.{} },
101680 }, .{
101681 .required_features = .{ .avx, null, null, null },
101682 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .yword, .is = 8 } }, .any, .any },
101683 .patterns = &.{
101684 .{ .src = .{ .mut_mem, .none, .none } },
101685 .{ .src = .{ .to_mut_sse, .none, .none } },
101686 },
101687 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101688 .each = .{ .once = &.{} },
101689 }, .{
101690 .required_features = .{ .avx, null, null, null },
101691 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101692 .patterns = &.{
101693 .{ .src = .{ .to_sse, .none, .none } },
101694 },
101695 .extra_temps = .{
101696 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101697 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101698 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
101699 .unused,
101700 .unused,
101701 .unused,
101702 .unused,
101703 .unused,
101704 .unused,
101705 .unused,
101706 .unused,
101707 },
101708 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
101709 .each = .{ .once = &.{
101710 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101711 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
101712 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
101713 .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ },
101714 .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ },
101715 } },
101716 }, .{
101717 .required_features = .{ .avx, null, null, null },
101718 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101719 .patterns = &.{
101720 .{ .src = .{ .to_sse, .none, .none } },
101721 },
101722 .extra_temps = .{
101723 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101724 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
101725 .unused,
101726 .unused,
101727 .unused,
101728 .unused,
101729 .unused,
101730 .unused,
101731 .unused,
101732 .unused,
101733 .unused,
101734 },
101735 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
101736 .each = .{ .once = &.{
101737 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101738 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
101739 } },
101740 }, .{
101741 .required_features = .{ .sse2, null, null, null },
101742 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101743 .patterns = &.{
101744 .{ .src = .{ .to_mut_sse, .none, .none } },
101745 },
101746 .extra_temps = .{
101747 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101748 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101749 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
101750 .unused,
101751 .unused,
101752 .unused,
101753 .unused,
101754 .unused,
101755 .unused,
101756 .unused,
101757 .unused,
101758 },
101759 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101760 .each = .{ .once = &.{
101761 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101762 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
101763 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
101764 .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ },
101765 .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
101766 } },
101767 }, .{
101768 .required_features = .{ .sse2, null, null, null },
101769 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101770 .patterns = &.{
101771 .{ .src = .{ .to_mut_sse, .none, .none } },
101772 },
101773 .extra_temps = .{
101774 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101775 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
101776 .unused,
101777 .unused,
101778 .unused,
101779 .unused,
101780 .unused,
101781 .unused,
101782 .unused,
101783 .unused,
101784 .unused,
101785 },
101786 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101787 .each = .{ .once = &.{
101788 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101789 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
101790 } },
101791 }, .{
101792 .required_features = .{ .sse, null, null, null },
101793 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101794 .patterns = &.{
101795 .{ .src = .{ .to_mut_sse, .none, .none } },
101796 },
101797 .extra_temps = .{
101798 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101799 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
101800 .unused,
101801 .unused,
101802 .unused,
101803 .unused,
101804 .unused,
101805 .unused,
101806 .unused,
101807 .unused,
101808 .unused,
101809 },
101810 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101811 .each = .{ .once = &.{
101812 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101813 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
101814 } },
101815 }, .{
101816 .required_features = .{ .avx2, null, null, null },
101817 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
101818 .patterns = &.{
101819 .{ .src = .{ .to_sse, .none, .none } },
101820 },
101821 .extra_temps = .{
101822 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101823 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101824 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
101825 .unused,
101826 .unused,
101827 .unused,
101828 .unused,
101829 .unused,
101830 .unused,
101831 .unused,
101832 .unused,
101833 },
101834 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
101835 .each = .{ .once = &.{
101836 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101837 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
101838 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
101839 .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ },
101840 .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ },
101841 } },
101842 }, .{
101843 .required_features = .{ .avx2, null, null, null },
101844 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
101845 .patterns = &.{
101846 .{ .src = .{ .to_sse, .none, .none } },
101847 },
101848 .extra_temps = .{
101849 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
101850 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
101851 .unused,
101852 .unused,
101853 .unused,
101854 .unused,
101855 .unused,
101856 .unused,
101857 .unused,
101858 .unused,
101859 .unused,
101860 },
101861 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
101862 .each = .{ .once = &.{
101863 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
101864 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
101865 } },
101866 }, .{
101867 .src_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any, .any },
101868 .patterns = &.{
101869 .{ .src = .{ .to_mut_mem, .none, .none } },
101870 },
101871 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101872 .each = .{ .once = &.{} },
101873 }, .{
101874 .required_features = .{ .avx2, null, null, null },
101875 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
101876 .patterns = &.{
101877 .{ .src = .{ .to_mem, .none, .none } },
101878 },
101879 .extra_temps = .{
101880 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101881 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
101882 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
101883 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
101884 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101885 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
101886 .unused,
101887 .unused,
101888 .unused,
101889 .unused,
101890 .unused,
101891 },
101892 .dst_temps = .{ .mem, .unused },
101893 .clobbers = .{ .eflags = true },
101894 .each = .{ .once = &.{
101895 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
101896 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
101897 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
101898 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
101899 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
101900 .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
101901 .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ },
101902 .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ },
101903 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ },
101904 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
101905 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
101906 } },
101907 }, .{
101908 .required_features = .{ .avx2, null, null, null },
101909 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
101910 .patterns = &.{
101911 .{ .src = .{ .to_mem, .none, .none } },
101912 },
101913 .extra_temps = .{
101914 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101915 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
101916 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
101917 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101918 .unused,
101919 .unused,
101920 .unused,
101921 .unused,
101922 .unused,
101923 .unused,
101924 .unused,
101925 },
101926 .dst_temps = .{ .mem, .unused },
101927 .clobbers = .{ .eflags = true },
101928 .each = .{ .once = &.{
101929 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
101930 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
101931 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
101932 .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
101933 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ },
101934 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
101935 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
101936 } },
101937 }, .{
101938 .required_features = .{ .avx, null, null, null },
101939 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101940 .patterns = &.{
101941 .{ .src = .{ .to_mem, .none, .none } },
101942 },
101943 .extra_temps = .{
101944 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101945 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
101946 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
101947 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
101948 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101949 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
101950 .unused,
101951 .unused,
101952 .unused,
101953 .unused,
101954 .unused,
101955 },
101956 .dst_temps = .{ .mem, .unused },
101957 .clobbers = .{ .eflags = true },
101958 .each = .{ .once = &.{
101959 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
101960 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
101961 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
101962 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
101963 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
101964 .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
101965 .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ },
101966 .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ },
101967 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
101968 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
101969 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
101970 } },
101971 }, .{
101972 .required_features = .{ .avx, null, null, null },
101973 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
101974 .patterns = &.{
101975 .{ .src = .{ .to_mem, .none, .none } },
101976 },
101977 .extra_temps = .{
101978 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
101979 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
101980 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
101981 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
101982 .unused,
101983 .unused,
101984 .unused,
101985 .unused,
101986 .unused,
101987 .unused,
101988 .unused,
101989 },
101990 .dst_temps = .{ .mem, .unused },
101991 .clobbers = .{ .eflags = true },
101992 .each = .{ .once = &.{
101993 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
101994 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
101995 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
101996 .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
101997 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
101998 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
101999 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102000 } },
102001 }, .{
102002 .required_features = .{ .sse2, null, null, null },
102003 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
102004 .patterns = &.{
102005 .{ .src = .{ .to_mem, .none, .none } },
102006 },
102007 .extra_temps = .{
102008 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102009 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
102010 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
102011 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
102012 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102013 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
102014 .unused,
102015 .unused,
102016 .unused,
102017 .unused,
102018 .unused,
102019 },
102020 .dst_temps = .{ .mem, .unused },
102021 .clobbers = .{ .eflags = true },
102022 .each = .{ .once = &.{
102023 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
102024 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102025 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
102026 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
102027 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102028 .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ },
102029 .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102030 .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ },
102031 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
102032 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
102033 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102034 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102035 } },
102036 }, .{
102037 .required_features = .{ .sse2, null, null, null },
102038 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
102039 .patterns = &.{
102040 .{ .src = .{ .to_mem, .none, .none } },
102041 },
102042 .extra_temps = .{
102043 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102044 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
102045 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
102046 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102047 .unused,
102048 .unused,
102049 .unused,
102050 .unused,
102051 .unused,
102052 .unused,
102053 .unused,
102054 },
102055 .dst_temps = .{ .mem, .unused },
102056 .clobbers = .{ .eflags = true },
102057 .each = .{ .once = &.{
102058 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102059 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102060 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102061 .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
102062 .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102063 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102064 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102065 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102066 } },
102067 }, .{
102068 .required_features = .{ .sse, null, null, null },
102069 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
102070 .patterns = &.{
102071 .{ .src = .{ .to_mem, .none, .none } },
102072 },
102073 .extra_temps = .{
102074 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102075 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
102076 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
102077 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102078 .unused,
102079 .unused,
102080 .unused,
102081 .unused,
102082 .unused,
102083 .unused,
102084 .unused,
102085 },
102086 .dst_temps = .{ .mem, .unused },
102087 .clobbers = .{ .eflags = true },
102088 .each = .{ .once = &.{
102089 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102090 .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ },
102091 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102092 .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ },
102093 .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102094 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102095 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102096 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102097 } },
102098 }, .{
102099 .required_features = .{ .slow_incdec, null, null, null },
102100 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
102101 .patterns = &.{
102102 .{ .src = .{ .to_mem, .none, .none } },
102103 },
102104 .extra_temps = .{
102105 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102106 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
102107 .unused,
102108 .unused,
102109 .unused,
102110 .unused,
102111 .unused,
102112 .unused,
102113 .unused,
102114 .unused,
102115 .unused,
102116 },
102117 .dst_temps = .{ .mem, .unused },
102118 .clobbers = .{ .eflags = true },
102119 .each = .{ .once = &.{
102120 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102121 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
102122 .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
102123 .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
102124 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
102125 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
102126 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102127 } },
102128 }, .{
102129 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
102130 .patterns = &.{
102131 .{ .src = .{ .to_mem, .none, .none } },
102132 },
102133 .extra_temps = .{
102134 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102135 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
102136 .unused,
102137 .unused,
102138 .unused,
102139 .unused,
102140 .unused,
102141 .unused,
102142 .unused,
102143 .unused,
102144 .unused,
102145 },
102146 .dst_temps = .{ .mem, .unused },
102147 .clobbers = .{ .eflags = true },
102148 .each = .{ .once = &.{
102149 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102150 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
102151 .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
102152 .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
102153 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
102154 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
102155 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
102156 } },
102157 }, .{
102158 .required_features = .{ .slow_incdec, null, null, null },
102159 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
102160 .patterns = &.{
102161 .{ .src = .{ .to_mem, .none, .none } },
102162 },
102163 .extra_temps = .{
102164 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102165 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102166 .unused,
102167 .unused,
102168 .unused,
102169 .unused,
102170 .unused,
102171 .unused,
102172 .unused,
102173 .unused,
102174 .unused,
102175 },
102176 .dst_temps = .{ .mem, .unused },
102177 .clobbers = .{ .eflags = true },
102178 .each = .{ .once = &.{
102179 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102180 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
102181 .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ },
102182 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
102183 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
102184 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102185 } },
102186 }, .{
102187 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
102188 .patterns = &.{
102189 .{ .src = .{ .to_mem, .none, .none } },
102190 },
102191 .extra_temps = .{
102192 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102193 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102194 .unused,
102195 .unused,
102196 .unused,
102197 .unused,
102198 .unused,
102199 .unused,
102200 .unused,
102201 .unused,
102202 .unused,
102203 },
102204 .dst_temps = .{ .mem, .unused },
102205 .clobbers = .{ .eflags = true },
102206 .each = .{ .once = &.{
102207 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102208 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
102209 .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ },
102210 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
102211 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
102212 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
102213 } },
102214 }, .{
102215 .required_features = .{ .sse, null, null, null },
102216 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .xword, .is = 16 } }, .any, .any },
102217 .patterns = &.{
102218 .{ .src = .{ .mut_mem, .none, .none } },
102219 .{ .src = .{ .to_mut_sse, .none, .none } },
102220 },
102221 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102222 .each = .{ .once = &.{} },
102223 }, .{
102224 .required_features = .{ .avx, null, null, null },
102225 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .yword, .is = 16 } }, .any, .any },
102226 .patterns = &.{
102227 .{ .src = .{ .mut_mem, .none, .none } },
102228 .{ .src = .{ .to_mut_sse, .none, .none } },
102229 },
102230 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102231 .each = .{ .once = &.{} },
102232 }, .{
102233 .required_features = .{ .avx, null, null, null },
102234 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
102235 .patterns = &.{
102236 .{ .src = .{ .to_sse, .none, .none } },
102237 },
102238 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102239 .each = .{ .once = &.{
102240 .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ },
102241 .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ },
102242 } },
102243 }, .{
102244 .required_features = .{ .avx, null, null, null },
102245 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102246 .patterns = &.{
102247 .{ .src = .{ .to_sse, .none, .none } },
102248 },
102249 .extra_temps = .{
102250 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102251 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102252 .unused,
102253 .unused,
102254 .unused,
102255 .unused,
102256 .unused,
102257 .unused,
102258 .unused,
102259 .unused,
102260 .unused,
102261 },
102262 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102263 .each = .{ .once = &.{
102264 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102265 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
102266 } },
102267 }, .{
102268 .required_features = .{ .sse2, null, null, null },
102269 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
102270 .patterns = &.{
102271 .{ .src = .{ .to_mut_sse, .none, .none } },
102272 },
102273 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102274 .each = .{ .once = &.{
102275 .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ },
102276 .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ },
102277 } },
102278 }, .{
102279 .required_features = .{ .sse2, null, null, null },
102280 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102281 .patterns = &.{
102282 .{ .src = .{ .to_mut_sse, .none, .none } },
102283 },
102284 .extra_temps = .{
102285 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102286 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102287 .unused,
102288 .unused,
102289 .unused,
102290 .unused,
102291 .unused,
102292 .unused,
102293 .unused,
102294 .unused,
102295 .unused,
102296 },
102297 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102298 .each = .{ .once = &.{
102299 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102300 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
102301 } },
102302 }, .{
102303 .required_features = .{ .sse, null, null, null },
102304 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102305 .patterns = &.{
102306 .{ .src = .{ .to_mut_sse, .none, .none } },
102307 },
102308 .extra_temps = .{
102309 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102310 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102311 .unused,
102312 .unused,
102313 .unused,
102314 .unused,
102315 .unused,
102316 .unused,
102317 .unused,
102318 .unused,
102319 .unused,
102320 },
102321 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102322 .each = .{ .once = &.{
102323 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102324 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
102325 } },
102326 }, .{
102327 .required_features = .{ .avx2, null, null, null },
102328 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
102329 .patterns = &.{
102330 .{ .src = .{ .to_sse, .none, .none } },
102331 },
102332 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102333 .each = .{ .once = &.{
102334 .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ },
102335 .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ },
102336 } },
102337 }, .{
102338 .required_features = .{ .avx2, null, null, null },
102339 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
102340 .patterns = &.{
102341 .{ .src = .{ .to_sse, .none, .none } },
102342 },
102343 .extra_temps = .{
102344 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102345 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102346 .unused,
102347 .unused,
102348 .unused,
102349 .unused,
102350 .unused,
102351 .unused,
102352 .unused,
102353 .unused,
102354 .unused,
102355 },
102356 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102357 .each = .{ .once = &.{
102358 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102359 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
102360 } },
102361 }, .{
102362 .src_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any, .any },
102363 .patterns = &.{
102364 .{ .src = .{ .to_mut_mem, .none, .none } },
102365 },
102366 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102367 .each = .{ .once = &.{} },
102368 }, .{
102369 .required_features = .{ .avx2, null, null, null },
102370 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
102371 .patterns = &.{
102372 .{ .src = .{ .to_mem, .none, .none } },
102373 },
102374 .extra_temps = .{
102375 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102376 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
102377 .unused,
102378 .unused,
102379 .unused,
102380 .unused,
102381 .unused,
102382 .unused,
102383 .unused,
102384 .unused,
102385 .unused,
102386 },
102387 .dst_temps = .{ .mem, .unused },
102388 .clobbers = .{ .eflags = true },
102389 .each = .{ .once = &.{
102390 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102391 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
102392 .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ },
102393 .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ },
102394 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
102395 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
102396 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102397 } },
102398 }, .{
102399 .required_features = .{ .avx2, null, null, null },
102400 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
102401 .patterns = &.{
102402 .{ .src = .{ .to_mem, .none, .none } },
102403 },
102404 .extra_temps = .{
102405 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102406 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
102407 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
102408 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102409 .unused,
102410 .unused,
102411 .unused,
102412 .unused,
102413 .unused,
102414 .unused,
102415 .unused,
102416 },
102417 .dst_temps = .{ .mem, .unused },
102418 .clobbers = .{ .eflags = true },
102419 .each = .{ .once = &.{
102420 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102421 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
102422 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102423 .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
102424 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ },
102425 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
102426 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102427 } },
102428 }, .{
102429 .required_features = .{ .avx, null, null, null },
102430 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
102431 .patterns = &.{
102432 .{ .src = .{ .to_mem, .none, .none } },
102433 },
102434 .extra_temps = .{
102435 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102436 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
102437 .unused,
102438 .unused,
102439 .unused,
102440 .unused,
102441 .unused,
102442 .unused,
102443 .unused,
102444 .unused,
102445 .unused,
102446 },
102447 .dst_temps = .{ .mem, .unused },
102448 .clobbers = .{ .eflags = true },
102449 .each = .{ .once = &.{
102450 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102451 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102452 .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ },
102453 .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ },
102454 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
102455 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102456 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102457 } },
102458 }, .{
102459 .required_features = .{ .avx, null, null, null },
102460 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102461 .patterns = &.{
102462 .{ .src = .{ .to_mem, .none, .none } },
102463 },
102464 .extra_temps = .{
102465 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102466 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102467 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102468 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102469 .unused,
102470 .unused,
102471 .unused,
102472 .unused,
102473 .unused,
102474 .unused,
102475 .unused,
102476 },
102477 .dst_temps = .{ .mem, .unused },
102478 .clobbers = .{ .eflags = true },
102479 .each = .{ .once = &.{
102480 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102481 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102482 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102483 .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
102484 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102485 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102486 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102487 } },
102488 }, .{
102489 .required_features = .{ .sse2, null, null, null },
102490 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
102491 .patterns = &.{
102492 .{ .src = .{ .to_mem, .none, .none } },
102493 },
102494 .extra_temps = .{
102495 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102496 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
102497 .unused,
102498 .unused,
102499 .unused,
102500 .unused,
102501 .unused,
102502 .unused,
102503 .unused,
102504 .unused,
102505 .unused,
102506 },
102507 .dst_temps = .{ .mem, .unused },
102508 .clobbers = .{ .eflags = true },
102509 .each = .{ .once = &.{
102510 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102511 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102512 .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ },
102513 .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ },
102514 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
102515 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102516 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102517 } },
102518 }, .{
102519 .required_features = .{ .sse2, null, null, null },
102520 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102521 .patterns = &.{
102522 .{ .src = .{ .to_mem, .none, .none } },
102523 },
102524 .extra_temps = .{
102525 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102526 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102527 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102528 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102529 .unused,
102530 .unused,
102531 .unused,
102532 .unused,
102533 .unused,
102534 .unused,
102535 .unused,
102536 },
102537 .dst_temps = .{ .mem, .unused },
102538 .clobbers = .{ .eflags = true },
102539 .each = .{ .once = &.{
102540 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102541 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102542 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102543 .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
102544 .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102545 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102546 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102547 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102548 } },
102549 }, .{
102550 .required_features = .{ .sse, null, null, null },
102551 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
102552 .patterns = &.{
102553 .{ .src = .{ .to_mem, .none, .none } },
102554 },
102555 .extra_temps = .{
102556 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102557 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102558 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
102559 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102560 .unused,
102561 .unused,
102562 .unused,
102563 .unused,
102564 .unused,
102565 .unused,
102566 .unused,
102567 },
102568 .dst_temps = .{ .mem, .unused },
102569 .clobbers = .{ .eflags = true },
102570 .each = .{ .once = &.{
102571 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102572 .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ },
102573 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102574 .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ },
102575 .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102576 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102577 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102578 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102579 } },
102580 }, .{
102581 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
102582 .patterns = &.{
102583 .{ .src = .{ .to_mem, .none, .none } },
102584 },
102585 .extra_temps = .{
102586 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102587 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
102588 .unused,
102589 .unused,
102590 .unused,
102591 .unused,
102592 .unused,
102593 .unused,
102594 .unused,
102595 .unused,
102596 .unused,
102597 },
102598 .dst_temps = .{ .mem, .unused },
102599 .clobbers = .{ .eflags = true },
102600 .each = .{ .once = &.{
102601 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102602 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
102603 .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102604 .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102605 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
102606 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
102607 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102608 } },
102609 }, .{
102610 .required_features = .{ .fast_imm16, null, null, null },
102611 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
102612 .patterns = &.{
102613 .{ .src = .{ .to_mem, .none, .none } },
102614 },
102615 .extra_temps = .{
102616 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102617 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
102618 .unused,
102619 .unused,
102620 .unused,
102621 .unused,
102622 .unused,
102623 .unused,
102624 .unused,
102625 .unused,
102626 .unused,
102627 },
102628 .dst_temps = .{ .mem, .unused },
102629 .clobbers = .{ .eflags = true },
102630 .each = .{ .once = &.{
102631 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102632 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
102633 .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ },
102634 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
102635 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
102636 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102637 } },
102638 }, .{
102639 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
102640 .patterns = &.{
102641 .{ .src = .{ .to_mem, .none, .none } },
102642 },
102643 .extra_temps = .{
102644 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102645 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
102646 .unused,
102647 .unused,
102648 .unused,
102649 .unused,
102650 .unused,
102651 .unused,
102652 .unused,
102653 .unused,
102654 .unused,
102655 },
102656 .dst_temps = .{ .mem, .unused },
102657 .clobbers = .{ .eflags = true },
102658 .each = .{ .once = &.{
102659 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102660 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
102661 .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ },
102662 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
102663 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
102664 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102665 } },
102666 }, .{
102667 .required_features = .{ .sse, null, null, null },
102668 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .xword, .is = 32 } }, .any, .any },
102669 .patterns = &.{
102670 .{ .src = .{ .mut_mem, .none, .none } },
102671 .{ .src = .{ .to_mut_sse, .none, .none } },
102672 },
102673 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102674 .each = .{ .once = &.{} },
102675 }, .{
102676 .required_features = .{ .avx, null, null, null },
102677 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .yword, .is = 32 } }, .any, .any },
102678 .patterns = &.{
102679 .{ .src = .{ .mut_mem, .none, .none } },
102680 .{ .src = .{ .to_mut_sse, .none, .none } },
102681 },
102682 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102683 .each = .{ .once = &.{} },
102684 }, .{
102685 .required_features = .{ .avx, null, null, null },
102686 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102687 .patterns = &.{
102688 .{ .src = .{ .to_sse, .none, .none } },
102689 },
102690 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102691 .each = .{ .once = &.{
102692 .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ },
102693 .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ },
102694 } },
102695 }, .{
102696 .required_features = .{ .avx, null, null, null },
102697 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102698 .patterns = &.{
102699 .{ .src = .{ .to_sse, .none, .none } },
102700 },
102701 .extra_temps = .{
102702 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102703 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102704 .unused,
102705 .unused,
102706 .unused,
102707 .unused,
102708 .unused,
102709 .unused,
102710 .unused,
102711 .unused,
102712 .unused,
102713 },
102714 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102715 .each = .{ .once = &.{
102716 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102717 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
102718 } },
102719 }, .{
102720 .required_features = .{ .sse2, null, null, null },
102721 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102722 .patterns = &.{
102723 .{ .src = .{ .to_mut_sse, .none, .none } },
102724 },
102725 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102726 .each = .{ .once = &.{
102727 .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102728 .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102729 } },
102730 }, .{
102731 .required_features = .{ .sse2, null, null, null },
102732 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102733 .patterns = &.{
102734 .{ .src = .{ .to_mut_sse, .none, .none } },
102735 },
102736 .extra_temps = .{
102737 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102738 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102739 .unused,
102740 .unused,
102741 .unused,
102742 .unused,
102743 .unused,
102744 .unused,
102745 .unused,
102746 .unused,
102747 .unused,
102748 },
102749 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102750 .each = .{ .once = &.{
102751 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102752 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
102753 } },
102754 }, .{
102755 .required_features = .{ .sse, null, null, null },
102756 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102757 .patterns = &.{
102758 .{ .src = .{ .to_mut_sse, .none, .none } },
102759 },
102760 .extra_temps = .{
102761 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102762 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102763 .unused,
102764 .unused,
102765 .unused,
102766 .unused,
102767 .unused,
102768 .unused,
102769 .unused,
102770 .unused,
102771 .unused,
102772 },
102773 .dst_temps = .{ .{ .ref = .src0 }, .unused },
102774 .each = .{ .once = &.{
102775 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102776 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
102777 } },
102778 }, .{
102779 .required_features = .{ .avx2, null, null, null },
102780 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
102781 .patterns = &.{
102782 .{ .src = .{ .to_sse, .none, .none } },
102783 },
102784 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102785 .each = .{ .once = &.{
102786 .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ },
102787 .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ },
102788 } },
102789 }, .{
102790 .required_features = .{ .avx2, null, null, null },
102791 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
102792 .patterns = &.{
102793 .{ .src = .{ .to_sse, .none, .none } },
102794 },
102795 .extra_temps = .{
102796 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
102797 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
102798 .unused,
102799 .unused,
102800 .unused,
102801 .unused,
102802 .unused,
102803 .unused,
102804 .unused,
102805 .unused,
102806 .unused,
102807 },
102808 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
102809 .each = .{ .once = &.{
102810 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
102811 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
102812 } },
102813 }, .{
102814 .required_features = .{ .avx2, null, null, null },
102815 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
102816 .patterns = &.{
102817 .{ .src = .{ .to_mem, .none, .none } },
102818 },
102819 .extra_temps = .{
102820 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102821 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
102822 .unused,
102823 .unused,
102824 .unused,
102825 .unused,
102826 .unused,
102827 .unused,
102828 .unused,
102829 .unused,
102830 .unused,
102831 },
102832 .dst_temps = .{ .mem, .unused },
102833 .clobbers = .{ .eflags = true },
102834 .each = .{ .once = &.{
102835 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102836 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
102837 .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ },
102838 .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ },
102839 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
102840 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
102841 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102842 } },
102843 }, .{
102844 .required_features = .{ .avx2, null, null, null },
102845 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
102846 .patterns = &.{
102847 .{ .src = .{ .to_mem, .none, .none } },
102848 },
102849 .extra_temps = .{
102850 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102851 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
102852 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
102853 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102854 .unused,
102855 .unused,
102856 .unused,
102857 .unused,
102858 .unused,
102859 .unused,
102860 .unused,
102861 },
102862 .dst_temps = .{ .mem, .unused },
102863 .clobbers = .{ .eflags = true },
102864 .each = .{ .once = &.{
102865 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102866 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
102867 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102868 .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
102869 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ },
102870 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
102871 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102872 } },
102873 }, .{
102874 .required_features = .{ .avx, null, null, null },
102875 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102876 .patterns = &.{
102877 .{ .src = .{ .to_mem, .none, .none } },
102878 },
102879 .extra_temps = .{
102880 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102881 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
102882 .unused,
102883 .unused,
102884 .unused,
102885 .unused,
102886 .unused,
102887 .unused,
102888 .unused,
102889 .unused,
102890 .unused,
102891 },
102892 .dst_temps = .{ .mem, .unused },
102893 .clobbers = .{ .eflags = true },
102894 .each = .{ .once = &.{
102895 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102896 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102897 .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ },
102898 .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ },
102899 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
102900 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102901 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102902 } },
102903 }, .{
102904 .required_features = .{ .avx, null, null, null },
102905 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102906 .patterns = &.{
102907 .{ .src = .{ .to_mem, .none, .none } },
102908 },
102909 .extra_temps = .{
102910 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102911 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
102912 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
102913 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102914 .unused,
102915 .unused,
102916 .unused,
102917 .unused,
102918 .unused,
102919 .unused,
102920 .unused,
102921 },
102922 .dst_temps = .{ .mem, .unused },
102923 .clobbers = .{ .eflags = true },
102924 .each = .{ .once = &.{
102925 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102926 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102927 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102928 .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
102929 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102930 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102931 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102932 } },
102933 }, .{
102934 .required_features = .{ .sse2, null, null, null },
102935 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102936 .patterns = &.{
102937 .{ .src = .{ .to_mem, .none, .none } },
102938 },
102939 .extra_temps = .{
102940 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102941 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
102942 .unused,
102943 .unused,
102944 .unused,
102945 .unused,
102946 .unused,
102947 .unused,
102948 .unused,
102949 .unused,
102950 .unused,
102951 },
102952 .dst_temps = .{ .mem, .unused },
102953 .clobbers = .{ .eflags = true },
102954 .each = .{ .once = &.{
102955 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102956 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102957 .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102958 .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ },
102959 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
102960 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102961 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102962 } },
102963 }, .{
102964 .required_features = .{ .sse2, null, null, null },
102965 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102966 .patterns = &.{
102967 .{ .src = .{ .to_mem, .none, .none } },
102968 },
102969 .extra_temps = .{
102970 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102971 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
102972 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
102973 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
102974 .unused,
102975 .unused,
102976 .unused,
102977 .unused,
102978 .unused,
102979 .unused,
102980 .unused,
102981 },
102982 .dst_temps = .{ .mem, .unused },
102983 .clobbers = .{ .eflags = true },
102984 .each = .{ .once = &.{
102985 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
102986 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
102987 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102988 .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
102989 .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
102990 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
102991 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
102992 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102993 } },
102994 }, .{
102995 .required_features = .{ .sse, null, null, null },
102996 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
102997 .patterns = &.{
102998 .{ .src = .{ .to_mem, .none, .none } },
102999 },
103000 .extra_temps = .{
103001 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103002 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
103003 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
103004 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103005 .unused,
103006 .unused,
103007 .unused,
103008 .unused,
103009 .unused,
103010 .unused,
103011 .unused,
103012 },
103013 .dst_temps = .{ .mem, .unused },
103014 .clobbers = .{ .eflags = true },
103015 .each = .{ .once = &.{
103016 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
103017 .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ },
103018 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103019 .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ },
103020 .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
103021 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
103022 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103023 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103024 } },
103025 }, .{
103026 .src_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any, .any },
103027 .patterns = &.{
103028 .{ .src = .{ .to_mut_mem, .none, .none } },
103029 },
103030 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103031 .each = .{ .once = &.{} },
103032 }, .{
103033 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
103034 .patterns = &.{
103035 .{ .src = .{ .to_mem, .none, .none } },
103036 },
103037 .extra_temps = .{
103038 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103039 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
103040 .unused,
103041 .unused,
103042 .unused,
103043 .unused,
103044 .unused,
103045 .unused,
103046 .unused,
103047 .unused,
103048 .unused,
103049 },
103050 .dst_temps = .{ .mem, .unused },
103051 .clobbers = .{ .eflags = true },
103052 .each = .{ .once = &.{
103053 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103054 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
103055 .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
103056 .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
103057 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ },
103058 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
103059 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103060 } },
103061 }, .{
103062 .required_features = .{ .bmi2, null, null, null },
103063 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
103064 .patterns = &.{
103065 .{ .src = .{ .to_mem, .none, .none } },
103066 },
103067 .extra_temps = .{
103068 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103069 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
103070 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103071 .unused,
103072 .unused,
103073 .unused,
103074 .unused,
103075 .unused,
103076 .unused,
103077 .unused,
103078 .unused,
103079 },
103080 .dst_temps = .{ .mem, .unused },
103081 .clobbers = .{ .eflags = true },
103082 .each = .{ .once = &.{
103083 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103084 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
103085 .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ },
103086 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ },
103087 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
103088 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103089 } },
103090 }, .{
103091 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
103092 .patterns = &.{
103093 .{ .src = .{ .to_mem, .none, .none } },
103094 },
103095 .extra_temps = .{
103096 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103097 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103098 .unused,
103099 .unused,
103100 .unused,
103101 .unused,
103102 .unused,
103103 .unused,
103104 .unused,
103105 .unused,
103106 .unused,
103107 },
103108 .dst_temps = .{ .mem, .unused },
103109 .clobbers = .{ .eflags = true },
103110 .each = .{ .once = &.{
103111 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103112 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
103113 .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ },
103114 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ },
103115 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
103116 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103117 } },
103118 }, .{
103119 .required_features = .{ .sse, null, null, null },
103120 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .xword, .is = 64 } }, .any, .any },
103121 .patterns = &.{
103122 .{ .src = .{ .mut_mem, .none, .none } },
103123 .{ .src = .{ .to_mut_sse, .none, .none } },
103124 },
103125 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103126 .each = .{ .once = &.{} },
103127 }, .{
103128 .required_features = .{ .avx, null, null, null },
103129 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .yword, .is = 64 } }, .any, .any },
103130 .patterns = &.{
103131 .{ .src = .{ .mut_mem, .none, .none } },
103132 .{ .src = .{ .to_mut_sse, .none, .none } },
103133 },
103134 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103135 .each = .{ .once = &.{} },
103136 }, .{
103137 .required_features = .{ .avx, null, null, null },
103138 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103139 .patterns = &.{
103140 .{ .src = .{ .to_sse, .none, .none } },
103141 },
103142 .extra_temps = .{
103143 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103144 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103145 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103146 .unused,
103147 .unused,
103148 .unused,
103149 .unused,
103150 .unused,
103151 .unused,
103152 .unused,
103153 .unused,
103154 },
103155 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
103156 .each = .{ .once = &.{
103157 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103158 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
103159 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
103160 .{ ._, .vp_q, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ },
103161 .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ },
103162 } },
103163 }, .{
103164 .required_features = .{ .avx, null, null, null },
103165 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103166 .patterns = &.{
103167 .{ .src = .{ .to_sse, .none, .none } },
103168 },
103169 .extra_temps = .{
103170 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103171 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
103172 .unused,
103173 .unused,
103174 .unused,
103175 .unused,
103176 .unused,
103177 .unused,
103178 .unused,
103179 .unused,
103180 .unused,
103181 },
103182 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
103183 .each = .{ .once = &.{
103184 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103185 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
103186 } },
103187 }, .{
103188 .required_features = .{ .sse2, null, null, null },
103189 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103190 .patterns = &.{
103191 .{ .src = .{ .to_mut_sse, .none, .none } },
103192 },
103193 .extra_temps = .{
103194 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103195 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103196 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103197 .unused,
103198 .unused,
103199 .unused,
103200 .unused,
103201 .unused,
103202 .unused,
103203 .unused,
103204 .unused,
103205 },
103206 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103207 .each = .{ .once = &.{
103208 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103209 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
103210 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
103211 .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ },
103212 .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
103213 } },
103214 }, .{
103215 .required_features = .{ .sse2, null, null, null },
103216 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103217 .patterns = &.{
103218 .{ .src = .{ .to_mut_sse, .none, .none } },
103219 },
103220 .extra_temps = .{
103221 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103222 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
103223 .unused,
103224 .unused,
103225 .unused,
103226 .unused,
103227 .unused,
103228 .unused,
103229 .unused,
103230 .unused,
103231 .unused,
103232 },
103233 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103234 .each = .{ .once = &.{
103235 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103236 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
103237 } },
103238 }, .{
103239 .required_features = .{ .sse, null, null, null },
103240 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103241 .patterns = &.{
103242 .{ .src = .{ .to_mut_sse, .none, .none } },
103243 },
103244 .extra_temps = .{
103245 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103246 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
103247 .unused,
103248 .unused,
103249 .unused,
103250 .unused,
103251 .unused,
103252 .unused,
103253 .unused,
103254 .unused,
103255 .unused,
103256 },
103257 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103258 .each = .{ .once = &.{
103259 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103260 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
103261 } },
103262 }, .{
103263 .required_features = .{ .avx2, null, null, null },
103264 .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
103265 .patterns = &.{
103266 .{ .src = .{ .to_sse, .none, .none } },
103267 },
103268 .extra_temps = .{
103269 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103270 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103271 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103272 .unused,
103273 .unused,
103274 .unused,
103275 .unused,
103276 .unused,
103277 .unused,
103278 .unused,
103279 .unused,
103280 },
103281 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
103282 .each = .{ .once = &.{
103283 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103284 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
103285 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
103286 .{ ._, .vp_q, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ },
103287 .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ },
103288 } },
103289 }, .{
103290 .required_features = .{ .avx2, null, null, null },
103291 .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
103292 .patterns = &.{
103293 .{ .src = .{ .to_sse, .none, .none } },
103294 },
103295 .extra_temps = .{
103296 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
103297 .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } },
103298 .unused,
103299 .unused,
103300 .unused,
103301 .unused,
103302 .unused,
103303 .unused,
103304 .unused,
103305 .unused,
103306 .unused,
103307 },
103308 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
103309 .each = .{ .once = &.{
103310 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
103311 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
103312 } },
103313 }, .{
103314 .required_features = .{ .avx2, null, null, null },
103315 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
103316 .patterns = &.{
103317 .{ .src = .{ .to_mem, .none, .none } },
103318 },
103319 .extra_temps = .{
103320 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103321 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
103322 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
103323 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
103324 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103325 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103326 .unused,
103327 .unused,
103328 .unused,
103329 .unused,
103330 .unused,
103331 },
103332 .dst_temps = .{ .mem, .unused },
103333 .clobbers = .{ .eflags = true },
103334 .each = .{ .once = &.{
103335 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
103336 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
103337 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
103338 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
103339 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103340 .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
103341 .{ ._, .vp_q, .add, .tmp3y, .tmp3y, .tmp2y, ._ },
103342 .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ },
103343 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ },
103344 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
103345 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103346 } },
103347 }, .{
103348 .required_features = .{ .avx2, null, null, null },
103349 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
103350 .patterns = &.{
103351 .{ .src = .{ .to_mem, .none, .none } },
103352 },
103353 .extra_temps = .{
103354 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103355 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
103356 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
103357 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103358 .unused,
103359 .unused,
103360 .unused,
103361 .unused,
103362 .unused,
103363 .unused,
103364 .unused,
103365 },
103366 .dst_temps = .{ .mem, .unused },
103367 .clobbers = .{ .eflags = true },
103368 .each = .{ .once = &.{
103369 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
103370 .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ },
103371 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103372 .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ },
103373 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ },
103374 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
103375 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103376 } },
103377 }, .{
103378 .required_features = .{ .avx, null, null, null },
103379 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103380 .patterns = &.{
103381 .{ .src = .{ .to_mem, .none, .none } },
103382 },
103383 .extra_temps = .{
103384 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103385 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103386 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103387 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103388 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103389 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103390 .unused,
103391 .unused,
103392 .unused,
103393 .unused,
103394 .unused,
103395 },
103396 .dst_temps = .{ .mem, .unused },
103397 .clobbers = .{ .eflags = true },
103398 .each = .{ .once = &.{
103399 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
103400 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
103401 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
103402 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
103403 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103404 .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
103405 .{ ._, .vp_q, .add, .tmp3x, .tmp3x, .tmp2x, ._ },
103406 .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ },
103407 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
103408 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103409 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103410 } },
103411 }, .{
103412 .required_features = .{ .avx, null, null, null },
103413 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103414 .patterns = &.{
103415 .{ .src = .{ .to_mem, .none, .none } },
103416 },
103417 .extra_temps = .{
103418 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103419 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103420 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103421 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103422 .unused,
103423 .unused,
103424 .unused,
103425 .unused,
103426 .unused,
103427 .unused,
103428 .unused,
103429 },
103430 .dst_temps = .{ .mem, .unused },
103431 .clobbers = .{ .eflags = true },
103432 .each = .{ .once = &.{
103433 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
103434 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
103435 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103436 .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ },
103437 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
103438 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103439 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103440 } },
103441 }, .{
103442 .required_features = .{ .sse2, null, null, null },
103443 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103444 .patterns = &.{
103445 .{ .src = .{ .to_mem, .none, .none } },
103446 },
103447 .extra_temps = .{
103448 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103449 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103450 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103451 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
103452 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103453 .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } },
103454 .unused,
103455 .unused,
103456 .unused,
103457 .unused,
103458 .unused,
103459 },
103460 .dst_temps = .{ .mem, .unused },
103461 .clobbers = .{ .eflags = true },
103462 .each = .{ .once = &.{
103463 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
103464 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
103465 .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ },
103466 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
103467 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103468 .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ },
103469 .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
103470 .{ ._, .p_q, .add, .tmp3x, .tmp2x, ._, ._ },
103471 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
103472 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
103473 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103474 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103475 } },
103476 }, .{
103477 .required_features = .{ .sse2, null, null, null },
103478 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103479 .patterns = &.{
103480 .{ .src = .{ .to_mem, .none, .none } },
103481 },
103482 .extra_temps = .{
103483 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103484 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103485 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103486 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103487 .unused,
103488 .unused,
103489 .unused,
103490 .unused,
103491 .unused,
103492 .unused,
103493 .unused,
103494 },
103495 .dst_temps = .{ .mem, .unused },
103496 .clobbers = .{ .eflags = true },
103497 .each = .{ .once = &.{
103498 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
103499 .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
103500 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103501 .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
103502 .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
103503 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
103504 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103505 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103506 } },
103507 }, .{
103508 .required_features = .{ .sse, null, null, null },
103509 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103510 .patterns = &.{
103511 .{ .src = .{ .to_mem, .none, .none } },
103512 },
103513 .extra_temps = .{
103514 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103515 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103516 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
103517 .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } },
103518 .unused,
103519 .unused,
103520 .unused,
103521 .unused,
103522 .unused,
103523 .unused,
103524 .unused,
103525 },
103526 .dst_temps = .{ .mem, .unused },
103527 .clobbers = .{ .eflags = true },
103528 .each = .{ .once = &.{
103529 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
103530 .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ },
103531 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103532 .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ },
103533 .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
103534 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
103535 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
103536 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103537 } },
103538 }, .{
103539 .src_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any, .any },
103540 .patterns = &.{
103541 .{ .src = .{ .to_mut_mem, .none, .none } },
103542 },
103543 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103544 .each = .{ .once = &.{} },
103545 }, .{
103546 .required_features = .{ .@"64bit", null, null, null },
103547 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
103548 .patterns = &.{
103549 .{ .src = .{ .to_mem, .none, .none } },
103550 },
103551 .extra_temps = .{
103552 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103553 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
103554 .unused,
103555 .unused,
103556 .unused,
103557 .unused,
103558 .unused,
103559 .unused,
103560 .unused,
103561 .unused,
103562 .unused,
103563 },
103564 .dst_temps = .{ .mem, .unused },
103565 .clobbers = .{ .eflags = true },
103566 .each = .{ .once = &.{
103567 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103568 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
103569 .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
103570 .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
103571 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ },
103572 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
103573 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103574 } },
103575 }, .{
103576 .required_features = .{ .@"64bit", .bmi2, null, null },
103577 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
103578 .patterns = &.{
103579 .{ .src = .{ .to_mem, .none, .none } },
103580 },
103581 .extra_temps = .{
103582 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103583 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
103584 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103585 .unused,
103586 .unused,
103587 .unused,
103588 .unused,
103589 .unused,
103590 .unused,
103591 .unused,
103592 .unused,
103593 },
103594 .dst_temps = .{ .mem, .unused },
103595 .clobbers = .{ .eflags = true },
103596 .each = .{ .once = &.{
103597 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103598 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
103599 .{ .@"0:", ._, .bzhi, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), .tmp1q, ._ },
103600 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ },
103601 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
103602 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103603 } },
103604 }, .{
103605 .required_features = .{ .@"64bit", null, null, null },
103606 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
103607 .patterns = &.{
103608 .{ .src = .{ .to_mem, .none, .none } },
103609 },
103610 .extra_temps = .{
103611 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103612 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103613 .unused,
103614 .unused,
103615 .unused,
103616 .unused,
103617 .unused,
103618 .unused,
103619 .unused,
103620 .unused,
103621 .unused,
103622 },
103623 .dst_temps = .{ .mem, .unused },
103624 .clobbers = .{ .eflags = true },
103625 .each = .{ .once = &.{
103626 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103627 .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ },
103628 .{ ._, ._, .@"and", .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
103629 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ },
103630 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
103631 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103632 } },
103633 }, .{
103634 .required_features = .{ .sse, null, null, null },
103635 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .xword, .is = 128 } }, .any, .any },
103636 .patterns = &.{
103637 .{ .src = .{ .mut_mem, .none, .none } },
103638 .{ .src = .{ .to_mut_sse, .none, .none } },
103639 },
103640 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103641 .each = .{ .once = &.{} },
103642 }, .{
103643 .required_features = .{ .avx, null, null, null },
103644 .src_constraints = .{ .{ .scalar_exact_int = .{ .of = .yword, .is = 128 } }, .any, .any },
103645 .patterns = &.{
103646 .{ .src = .{ .mut_mem, .none, .none } },
103647 .{ .src = .{ .to_mut_sse, .none, .none } },
103648 },
103649 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103650 .each = .{ .once = &.{} },
103651 }, .{
103652 .src_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
103653 .patterns = &.{
103654 .{ .src = .{ .to_mut_mem, .none, .none } },
103655 },
103656 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103657 .each = .{ .once = &.{} },
103658 }, .{
103659 .required_features = .{ .@"64bit", null, null, null },
103660 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103661 .patterns = &.{
103662 .{ .src = .{ .mut_mem, .none, .none } },
103663 },
103664 .extra_temps = .{
103665 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103666 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103667 .unused,
103668 .unused,
103669 .unused,
103670 .unused,
103671 .unused,
103672 .unused,
103673 .unused,
103674 .unused,
103675 .unused,
103676 },
103677 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103678 .clobbers = .{ .eflags = true },
103679 .each = .{ .once = &.{
103680 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
103681 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
103682 .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
103683 .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
103684 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp1q, ._, ._ },
103685 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
103686 .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp1q, ._, ._ },
103687 .{ ._, ._, .sub, .tmp0d, .sa(.src0, .add_elem_size), ._, ._ },
103688 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103689 } },
103690 }, .{
103691 .required_features = .{ .@"64bit", null, null, null },
103692 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
103693 .patterns = &.{
103694 .{ .src = .{ .mut_mem, .none, .none } },
103695 },
103696 .extra_temps = .{
103697 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103698 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103699 .unused,
103700 .unused,
103701 .unused,
103702 .unused,
103703 .unused,
103704 .unused,
103705 .unused,
103706 .unused,
103707 .unused,
103708 },
103709 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103710 .clobbers = .{ .eflags = true },
103711 .each = .{ .once = &.{
103712 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
103713 .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
103714 .{ .@"0:", ._, .@"and", .memi(.dst0q, .tmp0), .tmp1q, ._, ._ },
103715 .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .si(0), ._, ._ },
103716 .{ ._, ._, .sub, .tmp0d, .sa(.src0, .add_elem_size), ._, ._ },
103717 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103718 } },
103719 }, .{
103720 .required_features = .{ .@"64bit", null, null, null },
103721 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
103722 .patterns = &.{
103723 .{ .src = .{ .mut_mem, .none, .none } },
103724 },
103725 .extra_temps = .{
103726 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103727 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103728 .unused,
103729 .unused,
103730 .unused,
103731 .unused,
103732 .unused,
103733 .unused,
103734 .unused,
103735 .unused,
103736 .unused,
103737 },
103738 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103739 .clobbers = .{ .eflags = true },
103740 .each = .{ .once = &.{
103741 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
103742 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
103743 .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
103744 .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
103745 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp1q, ._, ._ },
103746 .{ ._, ._, .sub, .tmp0d, .sa(.src0, .add_elem_size), ._, ._ },
103747 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103748 } },
103749 }, .{
103750 .required_features = .{ .@"64bit", null, null, null },
103751 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
103752 .patterns = &.{
103753 .{ .src = .{ .mut_mem, .none, .none } },
103754 },
103755 .extra_temps = .{
103756 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103757 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
103758 .unused,
103759 .unused,
103760 .unused,
103761 .unused,
103762 .unused,
103763 .unused,
103764 .unused,
103765 .unused,
103766 .unused,
103767 },
103768 .dst_temps = .{ .{ .ref = .src0 }, .unused },
103769 .clobbers = .{ .eflags = true },
103770 .each = .{ .once = &.{
103771 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
103772 .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
103773 .{ .@"0:", ._, .@"and", .memi(.dst0q, .tmp0), .tmp1q, ._, ._ },
103774 .{ ._, ._, .sub, .tmp0d, .sa(.src0, .add_elem_size), ._, ._ },
103775 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103776 } },
103777 } });
103778 for (ops) |op| for (res) |r| {
103779 if (op.index == r.index) break;
103780 } else try op.die(cg);
103781 temp.* = res[0];
103782 }
103783
103784 /// Supports any `op` using `cg.intInfo(lhs.typeOf(cg)).?.signedness` as the signedness.
103785 /// Returns `error.SelectFailed` when `cg.intInfo(lhs.typeOf(cg)) == null`.
103786 fn cmpInts(lhs: *Temp, op: std.math.CompareOperator, rhs: *Temp, cg: *CodeGen) Select.Error!Temp {
103787 var ops: [2]Temp = .{ lhs.*, rhs.* };
103788 var res: [1]Temp = undefined;
103789 switch (op) {
103790 .lt, .lte, .gte, .gt => {
103791 const commute = switch (op) {
103792 .lt, .gte => false,
103793 .lte, .gt => true,
103794 else => unreachable,
103795 };
103796 if (commute) std.mem.swap(Temp, &ops[0], &ops[1]);
103797 try cg.select(&res, &.{.bool}, &ops, comptime &.{ .{
103798 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
103799 .patterns = &.{
103800 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },
103801 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },
103802 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103803 },
103804 .dst_temps = .{ .{ .cc = .g }, .unused },
103805 .clobbers = .{ .eflags = true },
103806 .each = .{ .once = &.{
103807 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
103808 } },
103809 }, .{
103810 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
103811 .patterns = &.{
103812 .{ .src = .{ .mem, .imm8, .none } },
103813 .{ .src = .{ .to_gpr, .imm8, .none } },
103814 .{ .src = .{ .to_gpr, .mem, .none } },
103815 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103816 },
103817 .dst_temps = .{ .{ .cc = .l }, .unused },
103818 .clobbers = .{ .eflags = true },
103819 .each = .{ .once = &.{
103820 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
103821 } },
103822 }, .{
103823 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
103824 .patterns = &.{
103825 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },
103826 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },
103827 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103828 },
103829 .dst_temps = .{ .{ .cc = .a }, .unused },
103830 .clobbers = .{ .eflags = true },
103831 .each = .{ .once = &.{
103832 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
103833 } },
103834 }, .{
103835 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
103836 .patterns = &.{
103837 .{ .src = .{ .mem, .imm8, .none } },
103838 .{ .src = .{ .to_gpr, .imm8, .none } },
103839 .{ .src = .{ .to_gpr, .mem, .none } },
103840 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103841 },
103842 .dst_temps = .{ .{ .cc = .b }, .unused },
103843 .clobbers = .{ .eflags = true },
103844 .each = .{ .once = &.{
103845 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
103846 } },
103847 }, .{
103848 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
103849 .patterns = &.{
103850 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
103851 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
103852 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103853 },
103854 .dst_temps = .{ .{ .cc = .g }, .unused },
103855 .clobbers = .{ .eflags = true },
103856 .each = .{ .once = &.{
103857 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
103858 } },
103859 }, .{
103860 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
103861 .patterns = &.{
103862 .{ .src = .{ .mem, .imm16, .none } },
103863 .{ .src = .{ .to_gpr, .imm16, .none } },
103864 .{ .src = .{ .to_gpr, .mem, .none } },
103865 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103866 },
103867 .dst_temps = .{ .{ .cc = .l }, .unused },
103868 .clobbers = .{ .eflags = true },
103869 .each = .{ .once = &.{
103870 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
103871 } },
103872 }, .{
103873 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
103874 .patterns = &.{
103875 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
103876 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
103877 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103878 },
103879 .dst_temps = .{ .{ .cc = .a }, .unused },
103880 .clobbers = .{ .eflags = true },
103881 .each = .{ .once = &.{
103882 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
103883 } },
103884 }, .{
103885 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
103886 .patterns = &.{
103887 .{ .src = .{ .mem, .imm16, .none } },
103888 .{ .src = .{ .to_gpr, .imm16, .none } },
103889 .{ .src = .{ .to_gpr, .mem, .none } },
103890 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103891 },
103892 .dst_temps = .{ .{ .cc = .b }, .unused },
103893 .clobbers = .{ .eflags = true },
103894 .each = .{ .once = &.{
103895 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
103896 } },
103897 }, .{
103898 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
103899 .patterns = &.{
103900 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
103901 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
103902 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103903 },
103904 .dst_temps = .{ .{ .cc = .g }, .unused },
103905 .clobbers = .{ .eflags = true },
103906 .each = .{ .once = &.{
103907 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
103908 } },
103909 }, .{
103910 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
103911 .patterns = &.{
103912 .{ .src = .{ .mem, .imm32, .none } },
103913 .{ .src = .{ .to_gpr, .imm32, .none } },
103914 .{ .src = .{ .to_gpr, .mem, .none } },
103915 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103916 },
103917 .dst_temps = .{ .{ .cc = .l }, .unused },
103918 .clobbers = .{ .eflags = true },
103919 .each = .{ .once = &.{
103920 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
103921 } },
103922 }, .{
103923 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
103924 .patterns = &.{
103925 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
103926 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
103927 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103928 },
103929 .dst_temps = .{ .{ .cc = .a }, .unused },
103930 .clobbers = .{ .eflags = true },
103931 .each = .{ .once = &.{
103932 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
103933 } },
103934 }, .{
103935 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
103936 .patterns = &.{
103937 .{ .src = .{ .mem, .imm32, .none } },
103938 .{ .src = .{ .to_gpr, .imm32, .none } },
103939 .{ .src = .{ .to_gpr, .mem, .none } },
103940 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103941 },
103942 .dst_temps = .{ .{ .cc = .b }, .unused },
103943 .clobbers = .{ .eflags = true },
103944 .each = .{ .once = &.{
103945 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
103946 } },
103947 }, .{
103948 .required_features = .{ .@"64bit", null, null, null },
103949 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
103950 .patterns = &.{
103951 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
103952 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
103953 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103954 },
103955 .dst_temps = .{ .{ .cc = .g }, .unused },
103956 .clobbers = .{ .eflags = true },
103957 .each = .{ .once = &.{
103958 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
103959 } },
103960 }, .{
103961 .required_features = .{ .@"64bit", null, null, null },
103962 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
103963 .patterns = &.{
103964 .{ .src = .{ .mem, .simm32, .none } },
103965 .{ .src = .{ .to_gpr, .simm32, .none } },
103966 .{ .src = .{ .to_gpr, .mem, .none } },
103967 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103968 },
103969 .dst_temps = .{ .{ .cc = .l }, .unused },
103970 .clobbers = .{ .eflags = true },
103971 .each = .{ .once = &.{
103972 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
103973 } },
103974 }, .{
103975 .required_features = .{ .@"64bit", null, null, null },
103976 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
103977 .patterns = &.{
103978 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
103979 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
103980 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
103981 },
103982 .dst_temps = .{ .{ .cc = .a }, .unused },
103983 .clobbers = .{ .eflags = true },
103984 .each = .{ .once = &.{
103985 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
103986 } },
103987 }, .{
103988 .required_features = .{ .@"64bit", null, null, null },
103989 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
103990 .patterns = &.{
103991 .{ .src = .{ .mem, .simm32, .none } },
103992 .{ .src = .{ .to_gpr, .simm32, .none } },
103993 .{ .src = .{ .to_gpr, .mem, .none } },
103994 .{ .src = .{ .to_gpr, .to_gpr, .none } },
103995 },
103996 .dst_temps = .{ .{ .cc = .b }, .unused },
103997 .clobbers = .{ .eflags = true },
103998 .each = .{ .once = &.{
103999 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
104000 } },
104001 }, .{
104002 .required_features = .{ .@"64bit", null, null, null },
104003 .src_constraints = .{
104004 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
104005 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
104006 .any,
104007 },
104008 .patterns = &.{
104009 .{ .src = .{ .to_mem, .to_mem, .none } },
104010 },
104011 .extra_temps = .{
104012 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104013 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
104014 .unused,
104015 .unused,
104016 .unused,
104017 .unused,
104018 .unused,
104019 .unused,
104020 .unused,
104021 .unused,
104022 .unused,
104023 },
104024 .dst_temps = .{ .{ .cc = .l }, .unused },
104025 .clobbers = .{ .eflags = true },
104026 .each = .{ .once = &.{
104027 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
104028 .{ ._, ._c, .cl, ._, ._, ._, ._ },
104029 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
104030 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
104031 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
104032 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104033 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
104034 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
104035 } },
104036 }, .{
104037 .required_features = .{ .@"64bit", null, null, null },
104038 .src_constraints = .{
104039 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
104040 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
104041 .any,
104042 },
104043 .patterns = &.{
104044 .{ .src = .{ .to_mem, .to_mem, .none } },
104045 },
104046 .extra_temps = .{
104047 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104048 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
104049 .unused,
104050 .unused,
104051 .unused,
104052 .unused,
104053 .unused,
104054 .unused,
104055 .unused,
104056 .unused,
104057 .unused,
104058 },
104059 .dst_temps = .{ .{ .cc = .b }, .unused },
104060 .clobbers = .{ .eflags = true },
104061 .each = .{ .once = &.{
104062 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
104063 .{ ._, ._c, .cl, ._, ._, ._, ._ },
104064 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
104065 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
104066 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
104067 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104068 } },
104069 }, .{
104070 .src_constraints = .{
104071 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
104072 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
104073 .any,
104074 },
104075 .patterns = &.{
104076 .{ .src = .{ .to_mem, .to_mem, .none } },
104077 },
104078 .extra_temps = .{
104079 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104080 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
104081 .unused,
104082 .unused,
104083 .unused,
104084 .unused,
104085 .unused,
104086 .unused,
104087 .unused,
104088 .unused,
104089 .unused,
104090 },
104091 .dst_temps = .{ .{ .cc = .l }, .unused },
104092 .clobbers = .{ .eflags = true },
104093 .each = .{ .once = &.{
104094 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_4), ._, ._ },
104095 .{ ._, ._c, .cl, ._, ._, ._, ._ },
104096 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"4", .tmp0, .add_size, -4), ._, ._ },
104097 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"4", .tmp0, .add_size, -4), ._, ._ },
104098 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
104099 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104100 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -4), ._, ._ },
104101 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -4), ._, ._ },
104102 } },
104103 }, .{
104104 .src_constraints = .{
104105 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
104106 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
104107 .any,
104108 },
104109 .patterns = &.{
104110 .{ .src = .{ .to_mem, .to_mem, .none } },
104111 },
104112 .extra_temps = .{
104113 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104114 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
104115 .unused,
104116 .unused,
104117 .unused,
104118 .unused,
104119 .unused,
104120 .unused,
104121 .unused,
104122 .unused,
104123 .unused,
104124 },
104125 .dst_temps = .{ .{ .cc = .b }, .unused },
104126 .clobbers = .{ .eflags = true },
104127 .each = .{ .once = &.{
104128 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_4), ._, ._ },
104129 .{ ._, ._c, .cl, ._, ._, ._, ._ },
104130 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_size), ._, ._ },
104131 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"4", .tmp0, .add_size), ._, ._ },
104132 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
104133 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104134 } },
104135 } });
104136 if (commute) std.mem.swap(Temp, &ops[0], &ops[1]);
104137 },
104138 .eq, .neq => {
104139 try cg.select(&res, &.{.bool}, &ops, comptime &.{ .{
104140 .src_constraints = .{ .{ .int = .byte }, .{ .int = .byte }, .any },
104141 .patterns = &.{
104142 .{ .src = .{ .mem, .imm8, .none } },
104143 .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } },
104144 .{ .src = .{ .to_gpr, .imm8, .none } },
104145 .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } },
104146 .{ .src = .{ .to_gpr, .mem, .none } },
104147 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
104148 .{ .src = .{ .to_gpr, .to_gpr, .none } },
104149 },
104150 .dst_temps = .{ .{ .cc = .e }, .unused },
104151 .clobbers = .{ .eflags = true },
104152 .each = .{ .once = &.{
104153 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
104154 } },
104155 }, .{
104156 .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any },
104157 .patterns = &.{
104158 .{ .src = .{ .mem, .imm16, .none } },
104159 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
104160 .{ .src = .{ .to_gpr, .imm16, .none } },
104161 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
104162 .{ .src = .{ .to_gpr, .mem, .none } },
104163 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
104164 .{ .src = .{ .to_gpr, .to_gpr, .none } },
104165 },
104166 .dst_temps = .{ .{ .cc = .e }, .unused },
104167 .clobbers = .{ .eflags = true },
104168 .each = .{ .once = &.{
104169 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
104170 } },
104171 }, .{
104172 .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any },
104173 .patterns = &.{
104174 .{ .src = .{ .mem, .imm32, .none } },
104175 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
104176 .{ .src = .{ .to_gpr, .imm32, .none } },
104177 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
104178 .{ .src = .{ .to_gpr, .mem, .none } },
104179 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
104180 .{ .src = .{ .to_gpr, .to_gpr, .none } },
104181 },
104182 .dst_temps = .{ .{ .cc = .e }, .unused },
104183 .clobbers = .{ .eflags = true },
104184 .each = .{ .once = &.{
104185 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
104186 } },
104187 }, .{
104188 .required_features = .{ .@"64bit", null, null, null },
104189 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },
104190 .patterns = &.{
104191 .{ .src = .{ .mem, .simm32, .none } },
104192 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
104193 .{ .src = .{ .to_gpr, .simm32, .none } },
104194 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
104195 .{ .src = .{ .to_gpr, .mem, .none } },
104196 .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } },
104197 .{ .src = .{ .to_gpr, .to_gpr, .none } },
104198 },
104199 .dst_temps = .{ .{ .cc = .e }, .unused },
104200 .clobbers = .{ .eflags = true },
104201 .each = .{ .once = &.{
104202 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
104203 } },
104204 }, .{
104205 .required_features = .{ .sse, .mmx, null, null },
104206 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },
104207 .patterns = &.{
104208 .{ .src = .{ .to_mut_mm, .mem, .none } },
104209 .{ .src = .{ .mem, .to_mut_mm, .none }, .commute = .{ 0, 1 } },
104210 .{ .src = .{ .to_mut_mm, .to_mm, .none } },
104211 },
104212 .extra_temps = .{
104213 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
104214 .{ .kind = .{ .rc = .mmx } },
104215 .unused,
104216 .unused,
104217 .unused,
104218 .unused,
104219 .unused,
104220 .unused,
104221 .unused,
104222 .unused,
104223 .unused,
104224 },
104225 .dst_temps = .{ .{ .cc = .z }, .unused },
104226 .clobbers = .{ .eflags = true },
104227 .each = .{ .once = &.{
104228 .{ ._, .p_, .xor, .tmp1q, .tmp1q, ._, ._ },
104229 .{ ._, .p_, .xor, .src0q, .src1q, ._, ._ },
104230 .{ ._, .p_b, .cmpeq, .tmp1q, .src0q, ._, ._ },
104231 .{ ._, .p_b, .movmsk, .tmp0d, .tmp1q, ._, ._ },
101834 .{ ._, ._, .cmp, .tmp0b, .si(-1), ._, ._ },104232 .{ ._, ._, .cmp, .tmp0b, .si(-1), ._, ._ },
101835 } },104233 } },
101836 }, .{104234 }, .{
...@@ -103648,9 +106046,14 @@ const Select = struct {...@@ -103648,9 +106046,14 @@ const Select = struct {
103648 scalar_int: OfIsSizes,106046 scalar_int: OfIsSizes,
103649 scalar_signed_int: OfIsSizes,106047 scalar_signed_int: OfIsSizes,
103650 scalar_unsigned_int: OfIsSizes,106048 scalar_unsigned_int: OfIsSizes,
106049 scalar_signed_or_exclusive_int: OfIsSizes,
106050 scalar_exact_int: struct { of: Memory.Size, is: u16 },
106051 scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },
106052 scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },
103651 multiple_scalar_int: OfIsSizes,106053 multiple_scalar_int: OfIsSizes,
103652 multiple_scalar_signed_int: OfIsSizes,106054 multiple_scalar_signed_int: OfIsSizes,
103653 multiple_scalar_unsigned_int: OfIsSizes,106055 multiple_scalar_unsigned_int: OfIsSizes,
106056 multiple_scalar_signed_or_exclusive_int: OfIsSizes,
103654 multiple_scalar_exact_int: struct { of: Memory.Size, is: u16 },106057 multiple_scalar_exact_int: struct { of: Memory.Size, is: u16 },
103655 multiple_scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },106058 multiple_scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },
103656 multiple_scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },106059 multiple_scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },
...@@ -103739,6 +106142,19 @@ const Select = struct {...@@ -103739,6 +106142,19 @@ const Select = struct {
103739 .scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and106142 .scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
103740 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and106143 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
103741 of_is.is.bitSize(cg.target) >= int_info.bits else false,106144 of_is.is.bitSize(cg.target) >= int_info.bits else false,
106145 .scalar_signed_or_exclusive_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
106146 if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
106147 .signed => of_is.is.bitSize(cg.target) >= int_info.bits,
106148 .unsigned => of_is.is.bitSize(cg.target) > int_info.bits,
106149 } else false,
106150 .scalar_exact_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
106151 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is == int_info.bits else false,
106152 .scalar_exact_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
106153 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
106154 of_is.is == int_info.bits else false,
106155 .scalar_exact_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
106156 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
106157 of_is.is == int_info.bits else false,
103742 .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and106158 .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
103743 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,106159 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
103744 .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and106160 .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
...@@ -103747,6 +106163,11 @@ const Select = struct {...@@ -103747,6 +106163,11 @@ const Select = struct {
103747 .multiple_scalar_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and106163 .multiple_scalar_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
103748 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and106164 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
103749 of_is.is.bitSize(cg.target) >= int_info.bits else false,106165 of_is.is.bitSize(cg.target) >= int_info.bits else false,
106166 .multiple_scalar_signed_or_exclusive_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
106167 if (cg.intInfo(ty.scalarType(zcu))) |int_info| switch (int_info.signedness) {
106168 .signed => of_is.is.bitSize(cg.target) >= int_info.bits,
106169 .unsigned => of_is.is.bitSize(cg.target) > int_info.bits,
106170 } else false,
103750 .multiple_scalar_exact_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and106171 .multiple_scalar_exact_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
103751 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is == int_info.bits else false,106172 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is == int_info.bits else false,
103752 .multiple_scalar_exact_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and106173 .multiple_scalar_exact_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
...@@ -104410,9 +106831,9 @@ const Select = struct {...@@ -104410,9 +106831,9 @@ const Select = struct {
104410 src0_size,106831 src0_size,
104411 delta_size,106832 delta_size,
104412 delta_elem_size,106833 delta_elem_size,
104413 size_add_elem_size,
104414 size_sub_elem_size,
104415 unaligned_size,106834 unaligned_size,
106835 unaligned_size_add_elem_size,
106836 unaligned_size_sub_elem_size,
104416 bit_size,106837 bit_size,
104417 src0_bit_size,106838 src0_bit_size,
104418 @"8_size_sub_bit_size",106839 @"8_size_sub_bit_size",
...@@ -104448,10 +106869,10 @@ const Select = struct {...@@ -104448,10 +106869,10 @@ const Select = struct {
104448 const add_delta_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_size, .op = .div, .rhs = .@"8" };106869 const add_delta_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_size, .op = .div, .rhs = .@"8" };
104449 const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" };106870 const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" };
104450 const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" };106871 const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" };
104451 const add_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_add_elem_size, .op = .mul, .rhs = .@"1" };
104452 const add_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_sub_elem_size, .op = .mul, .rhs = .@"1" };
104453 const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };106872 const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
104454 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };106873 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
106874 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };
106875 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };
104455 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };106876 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
104456 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };106877 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
104457 const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };106878 const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
...@@ -105161,15 +107582,15 @@ const Select = struct {...@@ -105161,15 +107582,15 @@ const Select = struct {
105161 @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),107582 @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),
105162 .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -107583 .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
105163 @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),107584 @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
105164 .size_add_elem_size => {107585 .unaligned_size => @intCast(s.cg.unalignedSize(op.flags.base.ref.typeOf(s))),
107586 .unaligned_size_add_elem_size => {
105165 const ty = op.flags.base.ref.typeOf(s);107587 const ty = op.flags.base.ref.typeOf(s);
105166 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) + ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));107588 break :lhs @intCast(s.cg.unalignedSize(ty) + ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
105167 },107589 },
105168 .size_sub_elem_size => {107590 .unaligned_size_sub_elem_size => {
105169 const ty = op.flags.base.ref.typeOf(s);107591 const ty = op.flags.base.ref.typeOf(s);
105170 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));107592 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
105171 },107593 },
105172 .unaligned_size => @intCast(s.cg.unalignedSize(op.flags.base.ref.typeOf(s))),
105173 .bit_size => @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),107594 .bit_size => @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
105174 .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),107595 .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
105175 .@"8_size_sub_bit_size" => {107596 .@"8_size_sub_bit_size" => {
test/behavior/x86_64.zig+3
...@@ -3,6 +3,9 @@...@@ -3,6 +3,9 @@
3test {3test {
4 const builtin = @import("builtin");4 const builtin = @import("builtin");
5 if (builtin.zig_backend != .stage2_x86_64) return error.SkipZigTest;5 if (builtin.zig_backend != .stage2_x86_64) return error.SkipZigTest;
6 // MachO linker does not support executables this big.
7 if (builtin.object_format == .macho) return error.SkipZigTest;
8 // COFF linker does not support the new backend.
6 if (builtin.object_format == .coff) return error.SkipZigTest;9 if (builtin.object_format == .coff) return error.SkipZigTest;
7 _ = @import("x86_64/math.zig");10 _ = @import("x86_64/math.zig");
8 _ = @import("x86_64/mem.zig");11 _ = @import("x86_64/mem.zig");
test/behavior/x86_64/math.zig+2592-34
...@@ -18000,76 +18000,1252 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18000,76 +18000,1252 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18000 try testArgs(f128, nan(f128), nan(f128));18000 try testArgs(f128, nan(f128), nan(f128));
18001 }18001 }
18002 fn testIntVectors() !void {18002 fn testIntVectors() !void {
18003 try testArgs(@Vector(1, i4), .{18003 try testArgs(@Vector(1, i1), .{
18004 0x0,
18005 }, .{
18006 -0x1,
18007 });
18008 try testArgs(@Vector(2, i1), .{
18009 0x0, 0x00,
18010 }, .{
18011 -0x1, -0x1,
18012 });
18013 try testArgs(@Vector(4, i1), .{
18014 0x0, 0x0, 0x0, 0x0,
18015 }, .{
18016 -0x1, -0x1, -0x1, -0x1,
18017 });
18018 try testArgs(@Vector(8, i1), .{
18019 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18020 }, .{
18021 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18022 });
18023 try testArgs(@Vector(16, i1), .{
18024 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18025 }, .{
18026 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18027 });
18028 try testArgs(@Vector(32, i1), .{
18029 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18030 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18031 }, .{
18032 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18033 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18034 });
18035 try testArgs(@Vector(64, i1), .{
18036 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18037 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18038 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18039 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18040 }, .{
18041 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18042 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18043 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18044 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18045 });
18046 try testArgs(@Vector(128, i1), .{
18047 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18048 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18049 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18050 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18051 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18052 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18053 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18054 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18055 }, .{
18056 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18057 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18058 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18059 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18060 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18061 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18062 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18063 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18064 });
18065
18066 try testArgs(@Vector(1, u1), .{
18067 0x0,
18068 }, .{
18004 0x1,18069 0x1,
18070 });
18071 try testArgs(@Vector(2, u1), .{
18072 0x0, 0x1,
18005 }, .{18073 }, .{
18006 0x3,18074 0x1, 0x1,
18007 });18075 });
18008 try testArgs(@Vector(2, i4), .{18076 try testArgs(@Vector(4, u1), .{
18009 -0x1, 0x7,18077 0x0, 0x0, 0x1, 0x0,
18010 }, .{18078 }, .{
18011 -0x7, 0x6,18079 0x1, 0x1, 0x1, 0x1,
18012 });18080 });
18013 try testArgs(@Vector(4, i4), .{18081 try testArgs(@Vector(8, u1), .{
18014 -0x1, 0x2, -0x3, -0x6,18082 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
18015 }, .{18083 }, .{
18016 -0x2, -0x6, -0x4, 0x1,18084 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18017 });18085 });
18018 try testArgs(@Vector(8, i4), .{18086 try testArgs(@Vector(16, u1), .{
18019 -0x4, 0x6, -0x4, -0x1, -0x1, 0x6, 0x5, 0x2,18087 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18088 }, .{
18089 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18090 });
18091 try testArgs(@Vector(32, u1), .{
18092 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
18093 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
18094 }, .{
18095 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18096 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18097 });
18098 try testArgs(@Vector(64, u1), .{
18099 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1,
18100 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1,
18101 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
18102 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0,
18103 }, .{
18104 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18105 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18106 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18107 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18108 });
18109 try testArgs(@Vector(128, u1), .{
18110 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
18111 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1,
18112 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1,
18113 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18114 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
18115 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1,
18116 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
18117 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18118 }, .{
18119 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18120 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18121 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18122 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18123 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18124 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18125 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18126 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18127 });
18128
18129 // workaround https://github.com/ziglang/zig/issues/22914
18130 // TODO: try testArgs(@Vector(1, i2), .{
18131 // 0x1,
18132 // }, .{
18133 // 0x1,
18134 // });
18135 // try testArgs(@Vector(2, i2), .{
18136 // 0x0, -0x2,
18137 // }, .{
18138 // -0x2, -0x2,
18139 // });
18140 // try testArgs(@Vector(4, i2), .{
18141 // -0x2, -0x1, 0x0, -0x2,
18142 // }, .{
18143 // -0x2, 0x1, -0x1, -0x2,
18144 // });
18145 // try testArgs(@Vector(8, i2), .{
18146 // -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2,
18147 // }, .{
18148 // -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1,
18149 // });
18150 // try testArgs(@Vector(16, i2), .{
18151 // 0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0,
18152 // }, .{
18153 // -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2,
18154 // });
18155 // try testArgs(@Vector(32, i2), .{
18156 // -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x1, 0x0, -0x2, -0x2, 0x0, 0x1,
18157 // -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2,
18158 // }, .{
18159 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1,
18160 // -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, 0x1, -0x2, -0x2,
18161 // });
18162 // try testArgs(@Vector(64, i2), .{
18163 // 0x1, -0x2, -0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1, 0x0, 0x1,
18164 // -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, 0x0, -0x2, -0x2,
18165 // 0x1, 0x0, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, 0x1, 0x0, 0x0, -0x1, 0x0, 0x1,
18166 // -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x2, 0x0, -0x2, 0x0, -0x2, 0x1, 0x0, -0x1, -0x1, 0x1,
18167 // }, .{
18168 // -0x2, -0x2, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1,
18169 // -0x2, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, 0x1, -0x1, -0x2, 0x1, -0x2, 0x1,
18170 // 0x1, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1,
18171 // -0x2, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x1, -0x2, -0x2,
18172 // });
18173 // try testArgs(@Vector(128, i2), .{
18174 // -0x1, -0x2, 0x0, -0x2, -0x2, 0x1, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1,
18175 // 0x0, -0x2, 0x1, 0x0, 0x1, 0x0, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x0, -0x1, 0x1, -0x1,
18176 // 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x0, 0x0, 0x1, 0x1, -0x2, -0x1,
18177 // 0x1, 0x0, 0x0, 0x1, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, 0x1, 0x0, 0x1, 0x0, 0x0, -0x2,
18178 // 0x0, 0x0, -0x1, 0x1, -0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, -0x2, 0x0, 0x0, 0x0,
18179 // -0x1, -0x1, -0x1, -0x1, -0x2, 0x0, -0x1, 0x1, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x1,
18180 // 0x1, -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x1, -0x2, 0x0, -0x1, -0x1, -0x2, -0x2, 0x0, 0x0,
18181 // -0x1, 0x0, 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x1,
18182 // }, .{
18183 // -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, -0x1,
18184 // -0x1, -0x2, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x2,
18185 // -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, -0x2,
18186 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2,
18187 // -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2,
18188 // 0x1, -0x1, 0x1, -0x2, 0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2,
18189 // -0x2, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, 0x1,
18190 // 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, -0x2,
18191 // });
18192 try testArgs(@Vector(1, i2), .{
18193 -0x1,
18194 }, .{
18195 -0x2,
18196 });
18197 try testArgs(@Vector(2, i2), .{
18198 -0x1, -0x1,
18199 }, .{
18200 0x1, -0x1,
18201 });
18202 try testArgs(@Vector(4, i2), .{
18203 -0x1, 0x1, -0x1, -0x1,
18204 }, .{
18205 0x1, -0x1, -0x1, 0x1,
18206 });
18207 try testArgs(@Vector(8, i2), .{
18208 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x1,
18209 }, .{
18210 0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1,
18211 });
18212 try testArgs(@Vector(16, i2), .{
18213 0x1, 0x0, 0x0, -0x1, 0x1, 0x0, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x0,
18214 }, .{
18215 0x1, 0x1, 0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
18216 });
18217 try testArgs(@Vector(32, i2), .{
18218 0x0, 0x1, -0x1, -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, 0x1, -0x1, 0x0, -0x1, 0x0, -0x1,
18219 -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x0, 0x1,
18220 }, .{
18221 -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x2,
18222 -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1,
18223 });
18224 try testArgs(@Vector(64, i2), .{
18225 0x1, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0,
18226 -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, -0x1, 0x0, -0x1, 0x0,
18227 -0x1, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0,
18228 0x1, -0x1, -0x1, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
18229 }, .{
18230 -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1,
18231 -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2,
18232 -0x2, -0x1, -0x1, 0x1, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, 0x1, -0x1,
18233 -0x1, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2,
18234 });
18235 try testArgs(@Vector(128, i2), .{
18236 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0,
18237 0x0, 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, 0x0, -0x1,
18238 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, -0x1, 0x1,
18239 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x0, 0x1, 0x0, 0x1,
18240 0x0, -0x1, 0x0, 0x0, 0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1,
18241 0x0, -0x1, 0x1, -0x1, -0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x1, 0x0, -0x1, 0x1, 0x0, -0x1,
18242 0x1, 0x0, 0x1, -0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x0,
18243 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x1, 0x1, -0x1,
18244 }, .{
18245 -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1,
18246 -0x1, 0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, 0x1, -0x1,
18247 -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2, -0x1,
18248 -0x2, 0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
18249 -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, 0x1, -0x1, 0x1,
18250 -0x2, -0x2, 0x1, -0x2, -0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, 0x1, 0x1, -0x2,
18251 -0x1, -0x2, 0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, -0x1, -0x2, 0x1, -0x1, -0x2, -0x1, -0x2,
18252 -0x2, -0x2, -0x1, -0x1, -0x2, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1,
18253 });
18254
18255 try testArgs(@Vector(1, u2), .{
18256 0x2,
18257 }, .{
18258 0x2,
18259 });
18260 try testArgs(@Vector(2, u2), .{
18261 0x1, 0x0,
18262 }, .{
18263 0x2, 0x1,
18264 });
18265 try testArgs(@Vector(4, u2), .{
18266 0x3, 0x3, 0x0, 0x2,
18267 }, .{
18268 0x3, 0x1, 0x1, 0x3,
18269 });
18270 try testArgs(@Vector(8, u2), .{
18271 0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1,
18020 }, .{18272 }, .{
18021 0x2, 0x4, -0x3, -0x6, 0x1, -0x5, -0x1, 0x2,18273 0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2,
18022 });18274 });
18275 try testArgs(@Vector(16, u2), .{
18276 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1,
18277 }, .{
18278 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1,
18279 });
18280 try testArgs(@Vector(32, u2), .{
18281 0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0,
18282 0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0,
18283 }, .{
18284 0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2,
18285 0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3,
18286 });
18287 try testArgs(@Vector(64, u2), .{
18288 0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0,
18289 0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3,
18290 0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0,
18291 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3,
18292 }, .{
18293 0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3,
18294 0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1,
18295 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2,
18296 0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1,
18297 });
18298 try testArgs(@Vector(128, u2), .{
18299 0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1,
18300 0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1,
18301 0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0,
18302 0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0,
18303 0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3,
18304 0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1,
18305 0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1,
18306 0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2,
18307 }, .{
18308 0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1,
18309 0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3,
18310 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3,
18311 0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2,
18312 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2,
18313 0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1,
18314 0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1,
18315 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1,
18316 });
18317
18023 // workaround https://github.com/ziglang/zig/issues/2291418318 // workaround https://github.com/ziglang/zig/issues/22914
18024 // TODO: try testArgs(@Vector(16, i4), .{18319 // TODO: try testArgs(@Vector(1, i3), .{
18025 // 0x4, 0x1, -0x7, -0x2, -0x7, 0x4, -0x4, -0x8, -0x1, 0x0, -0x8, 0x5, -0x5, 0x3, 0x3, 0x2,18320 // -0x3,
18321 // }, .{
18322 // -0x1,
18323 // });
18324 // try testArgs(@Vector(2, i3), .{
18325 // 0x2, -0x3,
18326 // }, .{
18327 // 0x1, 0x3,
18328 // });
18329 // try testArgs(@Vector(4, i3), .{
18330 // 0x1, -0x4, -0x2, -0x3,
18331 // }, .{
18332 // -0x2, -0x4, 0x2, 0x2,
18333 // });
18334 // try testArgs(@Vector(8, i3), .{
18335 // 0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3,
18336 // }, .{
18337 // -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2,
18338 // });
18339 // try testArgs(@Vector(16, i3), .{
18340 // -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4,
18341 // }, .{
18342 // 0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4,
18343 // });
18344 // try testArgs(@Vector(32, i3), .{
18345 // 0x1, -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3, -0x2, 0x3, 0x0, -0x3, 0x0,
18346 // -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2, -0x4, -0x4, -0x3, 0x1, -0x1, -0x2,
18347 // }, .{
18348 // -0x4, -0x2, 0x1, -0x1, 0x3, 0x1, 0x2, -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2,
18349 // -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3, 0x1, -0x3, 0x3, 0x3, -0x4, 0x3, 0x2, -0x2,
18350 // });
18351 // try testArgs(@Vector(64, i3), .{
18352 // 0x1, 0x2, 0x1, 0x2, -0x2, 0x2, 0x2, -0x1, -0x4, 0x1, 0x3, 0x0, -0x2, -0x2, 0x2, -0x2,
18353 // 0x0, -0x4, -0x3, -0x4, -0x1, -0x1, 0x2, 0x2, -0x2, -0x1, -0x1, 0x3, 0x3, -0x4, 0x2, 0x0,
18354 // 0x3, 0x2, -0x4, -0x1, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, -0x3, 0x1, -0x4, -0x2, 0x1, -0x3,
18355 // -0x3, -0x1, 0x1, -0x3, -0x1, 0x3, -0x4, -0x4, 0x0, 0x0, -0x4, -0x2, 0x3, -0x1, -0x3, -0x3,
18356 // }, .{
18357 // 0x3, -0x2, 0x1, -0x4, 0x1, 0x3, -0x3, 0x1, 0x3, 0x1, 0x1, -0x1, -0x2, 0x1, -0x3, 0x1,
18358 // -0x2, -0x2, 0x3, -0x3, -0x1, -0x3, 0x1, -0x1, -0x3, -0x3, 0x1, -0x2, 0x1, -0x2, 0x1, 0x2,
18359 // 0x3, -0x4, -0x4, -0x1, 0x1, 0x3, 0x1, 0x1, -0x4, 0x2, -0x3, 0x3, 0x3, -0x1, 0x1, -0x1,
18360 // -0x2, 0x2, 0x2, -0x4, -0x4, 0x3, -0x2, -0x4, -0x1, -0x2, -0x4, 0x1, 0x2, 0x1, -0x1, -0x2,
18361 // });
18362 // try testArgs(@Vector(128, i3), .{
18363 // -0x4, 0x1, 0x0, -0x4, -0x4, 0x1, -0x4, -0x2, 0x2, 0x2, -0x3, 0x1, 0x2, -0x2, 0x1, 0x1,
18364 // 0x3, 0x0, 0x3, -0x4, -0x1, 0x3, 0x3, -0x4, 0x0, -0x3, 0x2, -0x2, 0x0, 0x3, 0x1, -0x2,
18365 // -0x1, -0x1, 0x3, -0x1, -0x2, 0x3, 0x3, 0x1, -0x3, 0x1, -0x1, -0x2, -0x4, 0x2, -0x2, -0x1,
18366 // 0x1, 0x1, 0x1, 0x0, -0x1, 0x2, -0x1, 0x3, 0x2, -0x1, -0x2, 0x3, -0x2, 0x3, 0x3, 0x1,
18367 // 0x3, -0x3, -0x4, -0x1, 0x2, 0x2, -0x2, 0x3, -0x4, -0x2, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
18368 // -0x2, 0x3, 0x0, -0x3, -0x4, 0x2, -0x3, -0x2, -0x4, 0x0, -0x3, -0x4, -0x4, -0x2, -0x1, -0x3,
18369 // 0x0, -0x1, 0x0, -0x1, 0x2, -0x4, -0x3, 0x0, -0x4, 0x0, -0x2, 0x1, -0x2, -0x4, -0x1, -0x1,
18370 // -0x3, 0x3, -0x1, -0x1, -0x2, 0x1, 0x3, 0x1, -0x3, 0x1, -0x4, -0x2, 0x0, -0x1, -0x2, 0x2,
18026 // }, .{18371 // }, .{
18027 // 0x7, -0x7, -0x6, -0x1, 0x3, -0x5, -0x3, -0x6, 0x4, 0x4, -0x2, 0x7, -0x2, 0x6, -0x4, -0x1,18372 // -0x3, 0x2, -0x3, 0x1, -0x2, -0x1, -0x3, 0x1, 0x2, 0x2, -0x2, 0x2, 0x2, 0x1, 0x3, -0x1,
18373 // -0x4, -0x3, 0x2, -0x3, -0x2, 0x3, -0x3, 0x2, -0x1, -0x3, 0x1, 0x2, -0x4, 0x2, -0x2, -0x3,
18374 // 0x1, -0x1, 0x2, 0x2, -0x1, -0x3, -0x4, 0x2, 0x1, -0x4, 0x1, -0x4, 0x2, -0x1, 0x2, -0x2,
18375 // 0x2, 0x1, -0x4, 0x3, 0x1, -0x2, -0x3, -0x4, 0x3, -0x1, 0x3, -0x4, -0x2, 0x1, -0x2, 0x3,
18376 // 0x1, 0x1, 0x2, 0x1, -0x1, -0x2, 0x2, -0x1, 0x1, -0x1, -0x3, -0x1, 0x1, -0x4, -0x1, -0x1,
18377 // -0x3, -0x1, -0x4, 0x3, 0x1, -0x1, -0x1, -0x1, 0x1, -0x4, 0x1, -0x2, -0x4, 0x2, -0x4, -0x3,
18378 // 0x2, -0x4, -0x1, 0x1, 0x3, 0x2, -0x1, 0x3, 0x2, 0x2, 0x1, -0x4, -0x3, 0x1, -0x1, 0x1,
18379 // -0x2, -0x4, 0x1, 0x3, -0x1, 0x3, 0x1, 0x2, -0x4, 0x2, 0x2, -0x3, -0x3, -0x4, -0x2, 0x3,
18028 // });18380 // });
18381 try testArgs(@Vector(1, i3), .{
18382 -0x1,
18383 }, .{
18384 -0x3,
18385 });
18386 try testArgs(@Vector(2, i3), .{
18387 0x2, -0x2,
18388 }, .{
18389 0x3, 0x3,
18390 });
18391 try testArgs(@Vector(4, i3), .{
18392 0x1, 0x0, -0x2, 0x0,
18393 }, .{
18394 0x2, -0x2, -0x4, 0x3,
18395 });
18396 try testArgs(@Vector(8, i3), .{
18397 0x3, -0x1, -0x3, -0x3, -0x3, -0x2, 0x2, -0x3,
18398 }, .{
18399 -0x1, 0x1, -0x2, 0x2, 0x1, -0x2, -0x3, -0x1,
18400 });
18401 try testArgs(@Vector(16, i3), .{
18402 -0x1, -0x1, 0x3, -0x2, -0x2, -0x2, -0x2, -0x1, 0x2, 0x1, -0x2, 0x2, -0x2, 0x1, 0x1, -0x3,
18403 }, .{
18404 0x1, -0x1, -0x1, -0x1, 0x1, 0x3, -0x1, -0x1, 0x1, 0x3, -0x1, -0x3, 0x1, 0x3, 0x1, -0x2,
18405 });
18406 try testArgs(@Vector(32, i3), .{
18407 0x3, -0x1, -0x3, 0x1, 0x0, 0x0, -0x3, -0x1, -0x3, 0x1, 0x1, 0x2, -0x1, 0x1, -0x1, -0x1,
18408 0x1, -0x3, 0x1, -0x1, 0x1, 0x0, -0x2, 0x3, -0x2, -0x3, 0x3, 0x1, -0x1, 0x0, 0x3, -0x1,
18409 }, .{
18410 0x1, -0x2, -0x4, -0x4, 0x2, 0x1, -0x4, -0x3, -0x4, 0x1, -0x3, -0x4, -0x1, 0x2, -0x1, 0x1,
18411 0x2, -0x2, -0x4, 0x3, -0x3, 0x1, 0x2, -0x2, -0x2, 0x3, 0x3, 0x2, -0x2, -0x4, -0x2, -0x3,
18412 });
18413 try testArgs(@Vector(64, i3), .{
18414 -0x2, 0x1, 0x3, -0x1, -0x3, -0x1, 0x1, -0x3, 0x1, -0x2, 0x0, 0x3, 0x0, -0x2, 0x1, -0x3,
18415 -0x2, 0x1, -0x2, 0x2, 0x0, 0x1, -0x3, 0x0, -0x3, 0x0, -0x3, -0x2, -0x2, -0x3, -0x2, 0x3,
18416 -0x1, 0x1, 0x1, 0x1, -0x1, 0x0, -0x3, -0x3, -0x3, -0x3, -0x2, 0x2, 0x3, 0x2, -0x3, 0x1,
18417 -0x3, -0x3, -0x1, -0x1, -0x1, -0x3, -0x2, -0x2, 0x2, 0x3, 0x3, -0x3, 0x0, 0x3, -0x3, -0x3,
18418 }, .{
18419 0x2, 0x1, -0x1, -0x3, -0x1, -0x4, -0x2, -0x3, 0x2, -0x2, -0x4, 0x2, 0x2, -0x2, 0x1, 0x1,
18420 0x1, -0x1, -0x3, 0x2, -0x2, 0x2, -0x1, 0x3, 0x3, -0x1, -0x1, -0x3, -0x1, 0x2, -0x2, 0x2,
18421 0x1, -0x4, -0x2, -0x4, 0x2, -0x1, -0x2, 0x3, 0x3, 0x3, -0x4, -0x2, 0x3, -0x4, 0x1, -0x2,
18422 -0x2, 0x2, -0x3, -0x3, 0x1, -0x3, 0x3, 0x2, 0x1, 0x3, -0x3, 0x3, 0x2, -0x2, -0x2, 0x2,
18423 });
18424 try testArgs(@Vector(128, i3), .{
18425 -0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x2, 0x1, -0x3, 0x1, -0x2, -0x1, 0x0, 0x2, 0x3, -0x3,
18426 -0x1, -0x1, -0x2, 0x3, 0x1, 0x2, 0x2, 0x3, -0x2, 0x3, -0x2, -0x3, 0x1, 0x0, -0x1, -0x2,
18427 -0x1, -0x1, 0x1, -0x1, 0x2, -0x3, 0x1, -0x2, -0x1, 0x2, -0x2, 0x1, 0x1, -0x3, -0x2, 0x3,
18428 -0x1, -0x1, 0x1, -0x3, -0x1, -0x2, 0x0, 0x1, -0x1, 0x0, -0x1, 0x2, 0x1, 0x2, 0x3, -0x1,
18429 0x0, 0x1, 0x2, 0x3, -0x2, 0x2, -0x3, 0x2, 0x0, -0x2, -0x3, -0x2, 0x0, 0x1, 0x2, 0x1,
18430 -0x3, 0x0, -0x2, -0x3, -0x1, 0x2, -0x3, 0x2, 0x3, 0x1, 0x1, -0x1, 0x2, 0x1, -0x1, 0x2,
18431 0x2, 0x0, 0x1, -0x3, -0x3, 0x1, 0x2, 0x0, 0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x3, 0x3,
18432 0x0, -0x2, -0x2, -0x2, 0x3, 0x0, -0x1, -0x2, 0x0, 0x3, -0x3, 0x1, 0x2, -0x1, 0x1, 0x1,
18433 }, .{
18434 0x3, 0x3, 0x2, 0x3, -0x3, -0x4, 0x1, -0x3, 0x2, 0x3, 0x3, -0x2, 0x2, -0x1, 0x1, 0x3,
18435 -0x4, -0x4, -0x1, -0x1, 0x2, -0x3, -0x3, -0x3, -0x2, -0x3, -0x2, -0x1, 0x1, 0x3, -0x4, -0x2,
18436 -0x3, 0x1, 0x3, 0x1, -0x2, 0x1, 0x1, 0x2, 0x1, 0x2, -0x4, -0x4, -0x3, -0x2, -0x1, -0x2,
18437 0x3, 0x2, -0x3, -0x2, -0x2, 0x3, -0x3, -0x4, 0x3, -0x3, 0x3, -0x1, 0x3, -0x1, -0x1, 0x2,
18438 0x3, -0x4, -0x4, -0x2, -0x4, 0x2, -0x2, -0x4, -0x2, -0x2, -0x3, 0x3, 0x2, 0x2, 0x2, -0x4,
18439 0x1, -0x4, -0x3, -0x2, -0x4, -0x4, 0x1, -0x4, -0x1, 0x3, -0x2, -0x4, 0x3, -0x4, 0x3, -0x1,
18440 0x3, 0x1, -0x1, 0x1, 0x1, 0x2, 0x1, -0x3, -0x4, -0x1, -0x1, -0x2, -0x3, -0x2, 0x3, -0x2,
18441 -0x1, 0x3, 0x3, -0x1, 0x3, 0x1, 0x1, 0x2, -0x3, 0x3, -0x1, 0x3, -0x3, -0x4, -0x4, 0x1,
18442 });
18443
18444 try testArgs(@Vector(1, u3), .{
18445 0x5,
18446 }, .{
18447 0x2,
18448 });
18449 try testArgs(@Vector(2, u3), .{
18450 0x4, 0x5,
18451 }, .{
18452 0x2, 0x4,
18453 });
18454 try testArgs(@Vector(4, u3), .{
18455 0x7, 0x7, 0x2, 0x3,
18456 }, .{
18457 0x4, 0x5, 0x7, 0x1,
18458 });
18459 try testArgs(@Vector(8, u3), .{
18460 0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7,
18461 }, .{
18462 0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1,
18463 });
18464 try testArgs(@Vector(16, u3), .{
18465 0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5,
18466 }, .{
18467 0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2,
18468 });
18469 try testArgs(@Vector(32, u3), .{
18470 0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2,
18471 0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2,
18472 }, .{
18473 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1,
18474 0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6,
18475 });
18476 try testArgs(@Vector(64, u3), .{
18477 0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5,
18478 0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7,
18479 0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2,
18480 0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6,
18481 }, .{
18482 0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4,
18483 0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5,
18484 0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4,
18485 0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3,
18486 });
18487 try testArgs(@Vector(128, u3), .{
18488 0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6,
18489 0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5,
18490 0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3,
18491 0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4,
18492 0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2,
18493 0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4,
18494 0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4,
18495 0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4,
18496 }, .{
18497 0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1,
18498 0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4,
18499 0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4,
18500 0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5,
18501 0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1,
18502 0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3,
18503 0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7,
18504 0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1,
18505 });
18506
18507 // workaround https://github.com/ziglang/zig/issues/22914
18508 // TODO: try testArgs(@Vector(1, i4), .{
18509 // 0x2,
18510 // }, .{
18511 // 0x1,
18512 // });
18513 // try testArgs(@Vector(2, i4), .{
18514 // -0x2, 0x5,
18515 // }, .{
18516 // -0x1, 0x2,
18517 // });
18518 // try testArgs(@Vector(4, i4), .{
18519 // -0x8, 0x5, 0x5, -0x2,
18520 // }, .{
18521 // -0x3, -0x7, -0x4, -0x5,
18522 // });
18523 // try testArgs(@Vector(8, i4), .{
18524 // 0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1,
18525 // }, .{
18526 // -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7,
18527 // });
18528 // try testArgs(@Vector(16, i4), .{
18529 // 0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0,
18530 // }, .{
18531 // 0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2,
18532 // });
18533 // try testArgs(@Vector(32, i4), .{
18534 // -0x1, -0x4, 0x6, 0x6, 0x5, 0x3, 0x4, 0x0, 0x3, 0x7, -0x6, 0x7, -0x2, -0x7, -0x4, 0x6,
18535 // 0x3, -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8,
18536 // }, .{
18537 // -0x4, -0x4, -0x4, 0x4, -0x5, 0x3, -0x1, 0x6, 0x1, -0x3, -0x1, 0x6, 0x5, -0x8, 0x1, -0x4,
18538 // -0x1, -0x4, 0x1, -0x3, 0x4, 0x6, -0x3, -0x8, -0x7, -0x4, 0x2, -0x3, -0x1, -0x2, 0x6, -0x6,
18539 // });
18540 // try testArgs(@Vector(64, i4), .{
18541 // 0x0, -0x3, -0x3, 0x5, 0x2, -0x1, 0x4, 0x5, 0x6, -0x2, 0x1, 0x5, -0x3, -0x1, -0x2, -0x1,
18542 // -0x8, 0x2, -0x1, -0x2, 0x7, -0x3, -0x2, -0x3, 0x1, -0x5, 0x5, 0x2, -0x1, -0x6, -0x2, -0x1,
18543 // -0x2, -0x5, 0x0, 0x6, 0x3, -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1, 0x0, -0x6, -0x7, -0x6,
18544 // 0x1, -0x6, 0x4, -0x4, -0x2, 0x6, -0x7, 0x4, 0x4, 0x5, 0x3, -0x6, -0x8, -0x5, 0x5, -0x7,
18545 // }, .{
18546 // -0x1, -0x5, 0x5, -0x2, 0x6, -0x6, -0x4, -0x5, -0x4, 0x7, -0x6, 0x7, 0x4, -0x5, 0x5, 0x7,
18547 // -0x6, 0x3, -0x4, 0x2, -0x8, 0x4, -0x2, 0x5, -0x5, -0x5, -0x8, 0x3, -0x1, -0x4, -0x8, -0x2,
18548 // -0x2, 0x5, -0x7, -0x3, 0x2, -0x5, -0x6, -0x7, -0x8, -0x2, 0x5, -0x3, 0x2, -0x1, -0x7, -0x4,
18549 // -0x3, -0x3, 0x6, -0x8, 0x3, -0x4, 0x7, 0x3, -0x2, 0x7, -0x1, 0x1, 0x1, 0x6, -0x2, -0x2,
18550 // });
18551 // try testArgs(@Vector(128, i4), .{
18552 // -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0, -0x4, 0x7, 0x3, 0x5, -0x4, -0x5, -0x4, -0x2, -0x7,
18553 // 0x2, 0x0, -0x4, 0x7, 0x3, -0x5, 0x4, 0x5, -0x2, -0x3, -0x4, 0x6, -0x7, -0x1, 0x1, -0x6,
18554 // 0x1, 0x5, 0x2, 0x5, 0x2, 0x2, -0x4, -0x4, 0x5, 0x2, -0x2, -0x8, -0x1, -0x2, 0x5, 0x3,
18555 // 0x0, -0x5, 0x5, 0x7, 0x6, -0x3, -0x2, 0x0, -0x7, -0x7, -0x4, 0x2, -0x4, 0x7, 0x1, -0x5,
18556 // -0x4, -0x8, 0x2, -0x7, 0x3, -0x4, 0x7, 0x6, -0x7, -0x3, -0x7, 0x2, 0x4, 0x2, -0x5, -0x6,
18557 // 0x3, 0x5, 0x1, 0x6, 0x5, 0x7, 0x7, -0x4, -0x7, -0x1, 0x0, -0x7, 0x6, 0x0, 0x6, 0x0,
18558 // 0x0, -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1, 0x1, -0x8, 0x2, 0x6, -0x1, -0x3,
18559 // -0x6, 0x5, -0x8, 0x3, 0x3, 0x1, -0x1, -0x3, -0x3, -0x6, 0x7, -0x6, -0x8, 0x1, -0x7, -0x8,
18560 // }, .{
18561 // 0x1, 0x3, 0x1, 0x3, -0x6, 0x6, 0x2, -0x3, 0x1, -0x7, 0x7, -0x3, -0x1, -0x1, 0x7, 0x2,
18562 // -0x8, 0x2, -0x3, -0x4, 0x4, -0x4, 0x7, 0x6, -0x5, -0x2, -0x1, 0x6, -0x7, 0x4, 0x7, -0x3,
18563 // -0x5, -0x8, -0x5, -0x6, -0x6, 0x2, 0x1, -0x8, 0x4, 0x3, -0x5, 0x7, -0x8, 0x3, -0x1, 0x7,
18564 // -0x3, 0x7, -0x3, -0x2, -0x6, 0x4, 0x2, -0x2, -0x2, -0x7, 0x5, -0x1, -0x6, 0x7, -0x5, 0x5,
18565 // 0x4, 0x5, -0x8, -0x5, 0x6, 0x1, -0x5, 0x7, -0x6, -0x3, -0x4, 0x6, -0x8, 0x7, 0x7, -0x6,
18566 // 0x6, -0x4, 0x2, -0x8, -0x8, -0x4, -0x8, -0x3, 0x6, 0x5, 0x7, -0x6, 0x1, 0x2, -0x7, -0x3,
18567 // -0x3, 0x1, -0x3, 0x3, -0x1, 0x3, -0x7, -0x8, 0x1, -0x3, -0x3, -0x3, -0x4, 0x5, 0x7, -0x7,
18568 // 0x3, 0x2, 0x6, -0x2, -0x4, -0x3, -0x1, 0x5, -0x6, 0x2, 0x3, -0x5, 0x5, -0x3, -0x2, -0x8,
18569 // });
18570 try testArgs(@Vector(1, i4), .{
18571 -0x1,
18572 }, .{
18573 -0x1,
18574 });
18575 try testArgs(@Vector(2, i4), .{
18576 0x7, 0x5,
18577 }, .{
18578 0x4, 0x1,
18579 });
18580 try testArgs(@Vector(4, i4), .{
18581 -0x2, -0x3, -0x6, 0x1,
18582 }, .{
18583 0x3, -0x5, -0x1, -0x3,
18584 });
18585 try testArgs(@Vector(8, i4), .{
18586 -0x5, -0x3, -0x2, 0x2, -0x4, -0x4, 0x0, 0x1,
18587 }, .{
18588 -0x7, -0x2, -0x7, 0x1, 0x6, 0x2, -0x7, 0x7,
18589 });
18029 try testArgs(@Vector(16, i4), .{18590 try testArgs(@Vector(16, i4), .{
18030 0x7, -0x7, -0x6, -0x1, 0x3, -0x5, -0x3, -0x6, 0x4, 0x4, -0x2, 0x7, -0x2, 0x6, -0x4, -0x1,18591 -0x1, -0x1, 0x6, 0x3, -0x1, 0x2, -0x6, 0x6, 0x1, 0x5, -0x1, 0x7, 0x7, -0x3, -0x1, 0x4,
18031 }, .{18592 }, .{
18032 0x4, 0x1, -0x7, -0x2, -0x7, 0x4, -0x4, -0x8, -0x1, 0x1, -0x8, 0x5, -0x5, 0x3, 0x3, 0x2,18593 0x1, -0x3, 0x4, -0x1, 0x2, 0x5, -0x3, -0x5, -0x5, 0x5, -0x7, 0x7, 0x1, 0x5, -0x5, -0x6,
18033 });18594 });
18034 try testArgs(@Vector(32, i4), .{18595 try testArgs(@Vector(32, i4), .{
18035 0x0, 0x4, 0x0, -0x6, -0x7, 0x4, -0x3, 0x4, -0x5, 0x2, 0x3, 0x2, -0x6, -0x4, -0x4, -0x3,18596 -0x7, 0x4, -0x5, -0x5, -0x5, 0x1, 0x7, 0x3, -0x2, 0x7, -0x3, -0x7, -0x3, -0x2, -0x5, -0x7,
18036 0x7, -0x5, -0x3, 0x2, -0x4, 0x4, -0x1, 0x6, -0x7, -0x1, -0x6, -0x2, -0x4, -0x2, 0x5, 0x0,18597 0x5, 0x4, 0x3, 0x0, -0x6, -0x2, -0x4, -0x1, 0x5, 0x4, -0x7, -0x7, -0x5, 0x5, -0x5, -0x1,
18598 }, .{
18599 0x4, 0x4, 0x5, 0x2, 0x3, -0x4, 0x6, 0x2, -0x7, 0x3, 0x7, 0x2, 0x6, 0x2, 0x2, 0x3,
18600 0x7, -0x3, -0x7, -0x2, 0x3, -0x1, -0x4, 0x4, -0x8, 0x1, 0x6, -0x7, 0x5, 0x1, 0x7, -0x2,
18601 });
18602 try testArgs(@Vector(64, i4), .{
18603 0x0, 0x3, 0x7, -0x7, 0x1, -0x5, -0x4, 0x2, 0x2, 0x5, 0x4, 0x0, -0x3, -0x4, -0x4, -0x4,
18604 -0x7, 0x6, 0x2, 0x1, 0x0, 0x3, -0x6, 0x4, -0x4, 0x2, 0x7, 0x3, -0x4, -0x3, -0x3, -0x3,
18605 -0x4, 0x0, -0x3, -0x6, 0x0, 0x1, -0x5, -0x7, -0x2, -0x1, -0x1, -0x7, 0x3, -0x5, -0x4, -0x3,
18606 0x5, 0x1, -0x4, 0x7, 0x1, 0x7, -0x5, 0x4, 0x5, -0x4, 0x1, -0x4, 0x4, 0x5, 0x4, -0x2,
18607 }, .{
18608 0x2, -0x4, -0x1, 0x4, 0x4, -0x1, -0x3, 0x6, 0x4, 0x2, 0x4, 0x3, -0x6, -0x7, -0x4, 0x6,
18609 0x6, 0x4, 0x6, -0x7, 0x2, 0x4, -0x8, -0x1, -0x8, 0x3, -0x2, -0x7, 0x1, 0x5, -0x3, -0x6,
18610 -0x8, 0x2, -0x5, 0x7, 0x4, 0x7, -0x4, 0x3, 0x6, -0x7, -0x1, 0x1, -0x8, -0x2, -0x3, 0x3,
18611 0x3, -0x4, 0x4, -0x7, 0x5, -0x4, -0x1, 0x2, 0x6, -0x2, -0x5, 0x2, 0x7, 0x2, -0x8, -0x3,
18612 });
18613 try testArgs(@Vector(128, i4), .{
18614 0x3, 0x3, -0x6, 0x3, 0x2, 0x1, 0x5, -0x2, 0x0, -0x7, 0x4, 0x3, 0x0, -0x3, -0x7, -0x5,
18615 0x4, 0x0, 0x1, 0x6, 0x3, 0x3, -0x4, 0x7, -0x6, -0x6, 0x6, 0x1, 0x6, -0x5, -0x6, -0x6,
18616 0x4, -0x2, 0x3, -0x1, -0x4, -0x6, -0x1, 0x2, 0x4, 0x3, -0x2, 0x2, 0x3, 0x5, 0x0, -0x2,
18617 0x5, 0x6, -0x1, -0x5, 0x6, 0x7, 0x7, -0x6, -0x6, 0x0, 0x0, -0x6, -0x2, -0x7, -0x6, 0x3,
18618 -0x6, -0x6, 0x4, -0x4, 0x4, -0x5, 0x0, 0x6, 0x6, 0x7, 0x4, -0x5, 0x5, -0x7, -0x7, 0x6,
18619 -0x4, 0x4, -0x7, 0x4, 0x3, 0x2, -0x4, -0x1, -0x6, -0x2, 0x5, -0x2, 0x4, -0x7, -0x3, -0x3,
18620 0x4, 0x1, -0x1, 0x2, -0x1, 0x4, -0x5, -0x3, -0x1, -0x3, 0x3, 0x7, 0x5, -0x1, -0x1, -0x4,
18621 0x2, 0x1, -0x3, 0x7, -0x6, -0x7, -0x6, -0x4, -0x5, -0x2, 0x5, 0x0, -0x5, 0x7, -0x7, 0x5,
18037 }, .{18622 }, .{
18038 0x5, 0x1, 0x5, 0x7, 0x1, -0x3, 0x3, 0x3, 0x5, 0x4, 0x1, 0x5, 0x4, -0x8, -0x3, -0x6,18623 -0x6, -0x5, -0x1, 0x4, 0x6, 0x4, -0x1, -0x7, -0x3, 0x4, -0x6, -0x2, -0x3, 0x1, 0x6, 0x2,
18039 -0x2, 0x3, 0x1, 0x2, 0x4, 0x4, -0x8, 0x2, 0x6, -0x1, 0x1, 0x3, -0x1, -0x3, 0x7, -0x7,18624 -0x1, -0x3, -0x4, 0x2, 0x3, 0x6, -0x7, 0x3, 0x7, -0x6, 0x1, -0x7, -0x5, 0x6, 0x7, -0x4,
18625 0x7, -0x4, 0x2, -0x5, 0x4, 0x5, 0x5, -0x3, -0x1, 0x6, -0x6, -0x2, -0x4, 0x3, -0x4, -0x4,
18626 -0x5, 0x6, -0x6, 0x3, -0x6, -0x3, 0x6, 0x5, 0x6, -0x6, -0x3, 0x1, -0x4, -0x5, -0x8, -0x3,
18627 -0x4, 0x7, -0x2, -0x1, 0x4, 0x2, -0x3, 0x6, 0x4, 0x6, -0x3, 0x6, 0x5, -0x2, -0x1, 0x5,
18628 0x6, -0x6, -0x8, -0x2, -0x3, 0x6, -0x6, 0x5, -0x2, -0x6, 0x5, -0x6, 0x2, 0x1, 0x3, -0x3,
18629 0x7, 0x7, 0x3, -0x1, 0x5, -0x2, -0x3, 0x4, 0x7, -0x7, 0x7, 0x6, -0x2, -0x5, 0x4, -0x5,
18630 -0x1, -0x2, 0x1, 0x4, -0x2, 0x1, -0x3, 0x1, -0x4, 0x3, -0x2, -0x6, -0x4, -0x2, -0x8, 0x2,
18040 });18631 });
1804118632
18042 try testArgs(@Vector(1, u4), .{18633 try testArgs(@Vector(1, u4), .{
18043 0xe,18634 0x2,
18044 }, .{18635 }, .{
18045 0xc,18636 0xa,
18046 });18637 });
18047 try testArgs(@Vector(2, u4), .{18638 try testArgs(@Vector(2, u4), .{
18048 0x2, 0x5,18639 0x0, 0xa,
18049 }, .{18640 }, .{
18050 0x9, 0xe,18641 0xb, 0xa,
18051 });18642 });
18052 try testArgs(@Vector(4, u4), .{18643 try testArgs(@Vector(4, u4), .{
18053 0x2, 0xb, 0xc, 0x7,18644 0xb, 0x7, 0x0, 0xd,
18054 }, .{18645 }, .{
18055 0x2, 0xa, 0x8, 0x1,18646 0x4, 0x5, 0xf, 0x3,
18056 });18647 });
18057 try testArgs(@Vector(8, u4), .{18648 try testArgs(@Vector(8, u4), .{
18058 0xf, 0x9, 0x0, 0x6, 0x8, 0x7, 0xd, 0x7,18649 0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7,
18059 }, .{18650 }, .{
18060 0xb, 0xb, 0x3, 0x6, 0x1, 0x5, 0x4, 0xd,18651 0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2,
18061 });18652 });
18062 try testArgs(@Vector(16, u4), .{18653 try testArgs(@Vector(16, u4), .{
18063 0x5, 0x1, 0xa, 0x6, 0xb, 0x3, 0x0, 0x7, 0x8, 0x0, 0x9, 0xe, 0x2, 0x9, 0x2, 0x5,18654 0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf,
18064 }, .{18655 }, .{
18065 0x4, 0x9, 0x4, 0x8, 0x5, 0x7, 0xf, 0x8, 0x3, 0xc, 0x6, 0x9, 0xd, 0xd, 0x2, 0xd,18656 0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe,
18066 });18657 });
18067 try testArgs(@Vector(32, u4), .{18658 try testArgs(@Vector(32, u4), .{
18068 0xa, 0x5, 0xd, 0x4, 0xe, 0xf, 0xf, 0x2, 0xb, 0x3, 0x9, 0x2, 0x1, 0x9, 0x6, 0x8,18659 0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6,
18069 0x7, 0xc, 0x3, 0x5, 0x4, 0xb, 0x5, 0x4, 0x8, 0x2, 0x5, 0x9, 0xf, 0x6, 0x7, 0x7,18660 0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0,
18661 }, .{
18662 0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3,
18663 0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6,
18664 });
18665 try testArgs(@Vector(64, u4), .{
18666 0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9,
18667 0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4,
18668 0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb,
18669 0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd,
18070 }, .{18670 }, .{
18071 0xb, 0xf, 0xf, 0xf, 0xb, 0xf, 0xd, 0xc, 0x1, 0xa, 0x1, 0xd, 0x7, 0x4, 0x4, 0x8,18671 0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7,
18072 0x2, 0xb, 0xb, 0x4, 0xa, 0x7, 0x6, 0xd, 0xb, 0xb, 0x6, 0xb, 0x1, 0x8, 0xa, 0x6,18672 0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2,
18673 0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6,
18674 0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8,
18675 });
18676 try testArgs(@Vector(128, u4), .{
18677 0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6,
18678 0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3,
18679 0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4,
18680 0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa,
18681 0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7,
18682 0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc,
18683 0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8,
18684 0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1,
18685 }, .{
18686 0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4,
18687 0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6,
18688 0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe,
18689 0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5,
18690 0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7,
18691 0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa,
18692 0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8,
18693 0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4,
18694 });
18695
18696 // workaround https://github.com/ziglang/zig/issues/22914
18697 // TODO: try testArgs(@Vector(1, i5), .{
18698 // 0x03,
18699 // }, .{
18700 // 0x0a,
18701 // });
18702 // try testArgs(@Vector(2, i5), .{
18703 // 0x0c, -0x0e,
18704 // }, .{
18705 // -0x0f, -0x0e,
18706 // });
18707 // try testArgs(@Vector(4, i5), .{
18708 // -0x0a, 0x06, -0x05, 0x09,
18709 // }, .{
18710 // -0x0f, 0x05, 0x05, 0x09,
18711 // });
18712 // try testArgs(@Vector(8, i5), .{
18713 // -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e,
18714 // }, .{
18715 // -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03,
18716 // });
18717 // try testArgs(@Vector(16, i5), .{
18718 // -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10,
18719 // }, .{
18720 // 0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03,
18721 // });
18722 // try testArgs(@Vector(32, i5), .{
18723 // -0x08, -0x05, 0x09, -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f, -0x0b, 0x01, -0x03, 0x03, 0x08, 0x04,
18724 // 0x02, 0x0f, -0x0b, -0x0b, 0x0d, 0x00, 0x09, 0x00, -0x06, -0x08, -0x01, 0x0b, 0x05, 0x03, -0x05, -0x07,
18725 // }, .{
18726 // -0x0c, 0x07, 0x0d, -0x09, 0x0a, 0x06, -0x0b, -0x07, -0x0a, 0x08, 0x07, -0x0d, 0x08, 0x07, 0x09, -0x07,
18727 // 0x0b, -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a, -0x0a, 0x02, -0x07, -0x0a, 0x0d, -0x07, -0x05, -0x0e, 0x05,
18728 // });
18729 // try testArgs(@Vector(64, i5), .{
18730 // 0x04, -0x0d, 0x0d, -0x01, 0x07, 0x0c, 0x00, 0x01, -0x07, 0x0a, -0x01, -0x01, 0x08, -0x0b, -0x03, -0x06,
18731 // -0x03, -0x03, -0x0c, 0x0e, -0x0c, -0x02, 0x07, -0x03, 0x0e, -0x0a, -0x0e, -0x06, -0x08, 0x0a, -0x0c, -0x0c,
18732 // 0x06, -0x04, 0x04, 0x00, 0x05, 0x07, 0x04, 0x06, -0x01, 0x0a, 0x07, -0x08, 0x00, 0x0f, 0x0f, 0x0d,
18733 // -0x07, 0x0f, 0x05, -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e, 0x02, 0x06, 0x0d, 0x06, 0x00, 0x0a,
18734 // }, .{
18735 // 0x02, -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02, 0x0e, 0x07, -0x01, -0x0a, -0x0b, 0x05, -0x0e,
18736 // -0x09, 0x03, 0x08, -0x0d, 0x0d, 0x03, -0x02, 0x0e, 0x0c, 0x03, 0x0b, -0x0d, -0x04, -0x10, 0x0e, 0x0d,
18737 // 0x09, -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08, -0x06, 0x08, -0x0e, 0x02, -0x10, 0x01, 0x01, -0x0a,
18738 // 0x01, -0x09, 0x03, -0x01, 0x05, 0x09, 0x06, -0x03, -0x0a, 0x08, -0x0e, 0x0e, 0x07, -0x05, -0x0c, -0x10,
18739 // });
18740 // try testArgs(@Vector(128, i5), .{
18741 // 0x01, 0x0b, -0x01, -0x10, -0x05, 0x05, -0x09, 0x0e, -0x0e, 0x04, 0x0f, -0x06, 0x0f, 0x04, -0x02, 0x0a,
18742 // -0x08, -0x06, 0x08, -0x07, -0x08, 0x0e, 0x06, 0x0d, -0x07, -0x04, 0x04, -0x0b, 0x02, -0x06, 0x07, -0x10,
18743 // 0x0d, 0x09, 0x0b, -0x04, 0x0e, -0x06, -0x0a, 0x01, 0x06, 0x08, 0x01, -0x0b, -0x09, -0x08, -0x0c, -0x0b,
18744 // 0x07, 0x06, 0x0d, 0x0c, -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05, 0x0b, 0x08, -0x01, 0x00, 0x01, 0x0a,
18745 // 0x00, 0x0a, 0x06, 0x06, -0x10, -0x05, -0x05, -0x0f, 0x02, -0x06, -0x08, -0x08, 0x0f, 0x09, -0x07, -0x05,
18746 // 0x07, 0x06, 0x03, 0x05, 0x02, 0x0f, 0x0d, -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09, 0x05,
18747 // -0x07, -0x07, -0x08, 0x0c, -0x0e, 0x09, -0x0c, -0x0d, 0x07, 0x04, 0x07, -0x03, 0x09, 0x0e, 0x04, 0x02,
18748 // 0x0f, -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c, -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d, -0x0e, 0x04, 0x03,
18749 // }, .{
18750 // -0x08, -0x09, -0x04, 0x0f, -0x0f, -0x08, -0x04, 0x0b, 0x09, -0x0b, -0x02, 0x0f, 0x01, -0x01, -0x0a, -0x0a,
18751 // 0x08, 0x09, 0x0d, -0x06, 0x0f, -0x02, 0x0c, 0x01, 0x0c, 0x02, -0x04, 0x0b, 0x05, 0x02, -0x08, -0x09,
18752 // 0x01, 0x0f, -0x0b, 0x02, -0x06, 0x08, -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c, 0x09, -0x04, 0x08, -0x0a,
18753 // 0x09, -0x05, 0x08, 0x0e, 0x05, 0x03, -0x0a, 0x0d, -0x03, 0x06, 0x0f, -0x09, 0x0a, 0x03, 0x02, 0x0c,
18754 // 0x08, -0x0a, 0x06, 0x0e, 0x08, 0x02, 0x08, -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a, 0x0c, -0x03, 0x04,
18755 // 0x0b, -0x0c, -0x0e, 0x01, 0x07, -0x01, 0x09, 0x0f, -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a, -0x0a, -0x0d,
18756 // -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e, 0x04, -0x01, -0x0b,
18757 // -0x06, 0x0a, 0x0a, -0x0c, -0x0c, 0x0b, -0x02, 0x0c, -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b,
18758 // });
18759 try testArgs(@Vector(1, i5), .{
18760 -0x0f,
18761 }, .{
18762 -0x03,
18763 });
18764 try testArgs(@Vector(2, i5), .{
18765 0x0b, -0x04,
18766 }, .{
18767 -0x05, -0x08,
18768 });
18769 try testArgs(@Vector(4, i5), .{
18770 0x08, 0x0f, -0x06, -0x0d,
18771 }, .{
18772 -0x03, -0x0a, -0x05, -0x03,
18773 });
18774 try testArgs(@Vector(8, i5), .{
18775 0x08, 0x0c, 0x07, 0x00, -0x06, 0x08, 0x08, 0x0d,
18776 }, .{
18777 0x07, 0x09, 0x05, -0x08, 0x08, -0x0e, -0x0e, -0x0e,
18778 });
18779 try testArgs(@Vector(16, i5), .{
18780 0x06, 0x0b, 0x07, 0x0e, 0x0e, 0x02, -0x08, -0x0b, -0x03, 0x09, -0x08, 0x0e, -0x03, -0x0a, 0x01, 0x0b,
18781 }, .{
18782 -0x05, 0x0f, -0x08, -0x10, -0x07, 0x06, 0x08, 0x01, 0x0a, 0x06, 0x05, -0x0f, 0x03, 0x05, 0x0b, -0x06,
18783 });
18784 try testArgs(@Vector(32, i5), .{
18785 0x0e, 0x07, -0x08, 0x0b, 0x04, -0x05, 0x0f, 0x02, 0x04, -0x0c, 0x0d, 0x09, 0x0e, -0x02, -0x0f, 0x04,
18786 -0x03, -0x02, 0x09, -0x0d, 0x01, 0x00, -0x0e, -0x0a, 0x02, -0x06, 0x0c, 0x03, 0x06, 0x0e, 0x06, -0x07,
18787 }, .{
18788 -0x0a, 0x01, 0x0a, -0x10, 0x06, 0x09, 0x0e, 0x03, 0x0e, -0x09, 0x08, -0x08, 0x06, 0x0c, -0x0a, -0x07,
18789 0x04, -0x02, -0x09, 0x0b, 0x0e, -0x03, -0x01, -0x0d, 0x0e, -0x0a, -0x02, 0x08, 0x0e, 0x02, -0x04, -0x05,
18790 });
18791 try testArgs(@Vector(64, i5), .{
18792 0x04, 0x02, -0x04, -0x0a, -0x0b, -0x0b, -0x0c, -0x08, -0x0b, -0x05, 0x0c, 0x0b, 0x05, 0x02, -0x01, -0x06,
18793 -0x09, -0x06, 0x0a, 0x0f, -0x06, -0x0d, 0x0c, 0x05, 0x0b, -0x06, -0x02, 0x09, 0x0e, -0x09, 0x05, 0x0a,
18794 -0x0c, 0x0b, -0x01, -0x04, 0x01, 0x0c, 0x0f, -0x0f, -0x07, 0x0a, 0x04, 0x02, 0x08, -0x01, -0x03, 0x0a,
18795 -0x0e, -0x04, -0x03, -0x0b, -0x01, 0x02, -0x05, 0x08, -0x03, 0x02, -0x01, -0x05, 0x07, -0x09, 0x0f, 0x00,
18796 }, .{
18797 -0x09, -0x02, -0x0a, -0x05, -0x05, -0x0d, 0x04, -0x05, 0x0e, -0x01, -0x07, 0x04, 0x0d, -0x0f, -0x09, -0x04,
18798 -0x0b, -0x0b, 0x0e, 0x01, 0x06, -0x0f, -0x0b, 0x03, -0x04, 0x05, -0x03, -0x09, 0x0a, 0x04, 0x04, -0x06,
18799 -0x02, 0x01, 0x0e, 0x0c, -0x10, 0x0f, -0x09, -0x08, -0x10, -0x02, -0x07, -0x0d, 0x08, 0x07, -0x03, 0x01,
18800 -0x0d, -0x10, -0x07, 0x08, 0x0d, 0x07, 0x09, 0x0f, 0x04, 0x06, -0x05, -0x09, 0x04, -0x04, -0x04, 0x0d,
18801 });
18802 try testArgs(@Vector(128, i5), .{
18803 -0x02, -0x07, -0x03, 0x08, -0x0b, -0x09, -0x0c, 0x0d, -0x0e, 0x08, -0x03, -0x09, 0x0a, 0x02, -0x0d, 0x05,
18804 -0x04, -0x0c, -0x07, 0x08, -0x0a, 0x04, 0x08, -0x07, 0x0c, 0x03, 0x0e, 0x0f, 0x08, -0x08, -0x02, -0x0a,
18805 -0x08, 0x04, -0x0c, -0x09, 0x0a, -0x0e, -0x04, -0x05, 0x02, 0x0d, -0x04, -0x0f, -0x0d, -0x02, 0x05, -0x07,
18806 0x06, 0x0b, -0x0b, -0x04, -0x04, -0x0e, -0x0c, 0x09, 0x02, -0x0c, 0x0e, 0x09, 0x02, -0x04, 0x05, 0x04,
18807 -0x0e, -0x02, -0x08, 0x05, 0x00, 0x0f, -0x0a, 0x0a, 0x0b, 0x0b, 0x02, -0x02, -0x0d, -0x08, -0x0d, 0x03,
18808 0x0b, -0x0b, 0x02, 0x05, -0x06, -0x07, -0x08, -0x0a, -0x09, -0x03, -0x0e, -0x0f, -0x0b, 0x03, 0x00, 0x09,
18809 0x07, 0x0a, -0x0b, 0x06, 0x01, -0x03, -0x0a, -0x09, -0x07, -0x0d, 0x0a, -0x0c, 0x01, -0x09, -0x01, -0x01,
18810 -0x09, 0x00, 0x0f, 0x05, -0x0b, 0x0c, 0x04, 0x0c, 0x0b, -0x08, 0x01, -0x05, -0x04, 0x02, 0x0c, 0x04,
18811 }, .{
18812 -0x08, -0x05, -0x0a, 0x06, -0x06, -0x04, 0x01, 0x07, 0x0d, -0x0a, -0x02, 0x0b, -0x01, -0x0c, -0x04, 0x0c,
18813 -0x06, 0x0d, 0x04, 0x0b, 0x07, 0x0c, 0x02, 0x02, -0x02, 0x09, 0x0d, -0x07, -0x08, 0x07, -0x04, 0x06,
18814 -0x0a, 0x07, 0x01, 0x07, -0x0d, 0x02, 0x09, -0x02, 0x0e, -0x08, -0x03, -0x07, 0x07, 0x0a, -0x0e, -0x06,
18815 0x0b, -0x0d, 0x0c, -0x06, -0x07, 0x0a, 0x0b, -0x0a, 0x05, 0x01, -0x0d, -0x08, -0x0e, -0x08, -0x07, -0x01,
18816 -0x10, 0x07, 0x03, 0x06, 0x03, 0x0a, 0x08, -0x0a, 0x04, -0x09, 0x0c, 0x01, -0x10, 0x02, 0x09, 0x0d,
18817 0x0f, -0x01, -0x06, -0x0a, 0x04, 0x01, 0x07, 0x07, 0x0e, 0x0e, -0x04, -0x0a, -0x03, 0x07, 0x07, -0x10,
18818 -0x04, 0x0e, -0x09, -0x0f, -0x0b, -0x0e, 0x0c, -0x0d, 0x0b, -0x06, 0x0f, -0x0d, 0x0b, 0x04, -0x10, -0x10,
18819 -0x0e, 0x09, 0x0d, -0x02, -0x0e, -0x06, -0x0b, -0x0f, -0x08, -0x0f, -0x0d, -0x0a, -0x02, 0x03, 0x0b, -0x0a,
18820 });
18821
18822 try testArgs(@Vector(1, u5), .{
18823 0x0a,
18824 }, .{
18825 0x1c,
18826 });
18827 try testArgs(@Vector(2, u5), .{
18828 0x01, 0x07,
18829 }, .{
18830 0x03, 0x1d,
18831 });
18832 try testArgs(@Vector(4, u5), .{
18833 0x1c, 0x0d, 0x1f, 0x0a,
18834 }, .{
18835 0x14, 0x03, 0x07, 0x02,
18836 });
18837 try testArgs(@Vector(8, u5), .{
18838 0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10,
18839 }, .{
18840 0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a,
18841 });
18842 try testArgs(@Vector(16, u5), .{
18843 0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05,
18844 }, .{
18845 0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05,
18846 });
18847 try testArgs(@Vector(32, u5), .{
18848 0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00,
18849 0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16,
18850 }, .{
18851 0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b,
18852 0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e,
18853 });
18854 try testArgs(@Vector(64, u5), .{
18855 0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03,
18856 0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06,
18857 0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16,
18858 0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b,
18859 }, .{
18860 0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03,
18861 0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06,
18862 0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f,
18863 0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c,
18864 });
18865 try testArgs(@Vector(128, u5), .{
18866 0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b,
18867 0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f,
18868 0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01,
18869 0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05,
18870 0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d,
18871 0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02,
18872 0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10,
18873 0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01,
18874 }, .{
18875 0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12,
18876 0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07,
18877 0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f,
18878 0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07,
18879 0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a,
18880 0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04,
18881 0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c,
18882 0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09,
18883 });
18884
18885 try testArgs(@Vector(1, i7), .{
18886 0x3b,
18887 }, .{
18888 0x0d,
18889 });
18890 try testArgs(@Vector(2, i7), .{
18891 -0x3e, -0x06,
18892 }, .{
18893 -0x37, -0x0f,
18894 });
18895 try testArgs(@Vector(4, i7), .{
18896 0x35, 0x29, -0x17, 0x39,
18897 }, .{
18898 -0x2c, -0x02, -0x29, -0x1a,
18899 });
18900 try testArgs(@Vector(8, i7), .{
18901 0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c,
18902 }, .{
18903 0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05,
18904 });
18905 try testArgs(@Vector(16, i7), .{
18906 -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31,
18907 }, .{
18908 -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09,
18909 });
18910 try testArgs(@Vector(32, i7), .{
18911 0x04, 0x09, 0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11, -0x2a, 0x29, -0x16, -0x3b, -0x1e,
18912 0x3a, -0x0d, 0x11, 0x16, 0x27, 0x0f, 0x2f, 0x14, 0x3b, -0x2f, -0x3d, 0x1d, -0x08, -0x2e, -0x2a, -0x33,
18913 }, .{
18914 -0x09, 0x3c, 0x15, -0x25, -0x03, 0x0a, 0x11, 0x03, 0x12, -0x1d, -0x23, 0x29, -0x30, -0x35, -0x0e, -0x15,
18915 -0x1c, -0x14, 0x07, 0x29, -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22, -0x15, -0x2d, 0x04, 0x19, 0x14, -0x1d,
18916 });
18917 try testArgs(@Vector(64, i7), .{
18918 0x23, 0x09, -0x13, 0x03, 0x19, -0x35, -0x06, -0x3c, -0x31, 0x12, 0x09, 0x22, -0x15, -0x1c, -0x25, -0x31,
18919 0x3a, -0x31, 0x05, 0x0b, -0x14, 0x38, 0x39, 0x15, 0x15, -0x11, 0x11, -0x21, 0x2f, 0x3d, -0x2e, -0x33,
18920 -0x38, 0x1b, 0x14, 0x1d, 0x0d, -0x16, 0x10, -0x0a, 0x25, 0x0d, 0x1e, 0x1a, -0x15, 0x21, 0x3e, -0x0c,
18921 0x03, 0x3f, 0x1f, 0x17, 0x2c, -0x0a, -0x2b, 0x1f, 0x32, 0x09, 0x0f, -0x15, 0x24, -0x35, 0x27, -0x13,
18922 }, .{
18923 -0x20, 0x25, 0x38, -0x28, 0x06, -0x2f, -0x0b, -0x2b, 0x21, -0x23, -0x08, 0x06, -0x2a, -0x26, 0x33, -0x2f,
18924 0x06, -0x1b, 0x3c, -0x3d, 0x3e, 0x1f, 0x27, 0x28, -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e,
18925 0x0e, -0x2c, -0x0f, -0x3b, 0x1b, 0x17, 0x3f, -0x3a, 0x21, -0x16, 0x11, -0x0a, 0x1b, 0x2a, 0x27, 0x3e,
18926 -0x09, -0x34, 0x20, 0x3e, -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21, 0x13, 0x22, 0x0c, -0x1f, 0x38, 0x21,
18927 });
18928 try testArgs(@Vector(128, i7), .{
18929 -0x38, -0x10, 0x08, -0x2b, 0x3e, -0x19, 0x39, -0x1f, -0x27, -0x10, -0x0c, 0x02, 0x07, 0x10, -0x1a, 0x0b,
18930 0x3c, -0x2e, 0x1b, -0x17, 0x3e, -0x1b, -0x04, 0x35, 0x2d, 0x0d, 0x33, 0x0f, 0x18, 0x0b, 0x1a, -0x09,
18931 0x25, -0x0b, -0x21, 0x3a, -0x28, 0x12, 0x16, 0x03, -0x1f, 0x1d, -0x1c, -0x1a, -0x38, 0x32, 0x3d, -0x2a,
18932 -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02, -0x13, -0x23, 0x2f, 0x0a, -0x22, 0x15, 0x34, -0x06,
18933 -0x2e, -0x3b, 0x26, 0x38, 0x33, -0x29, -0x0c, 0x2e, 0x07, -0x19, 0x3c, -0x35, -0x33, 0x39, 0x3c, 0x37,
18934 -0x07, -0x13, 0x16, 0x05, -0x27, 0x28, -0x2b, -0x07, -0x25, -0x01, 0x1d, -0x0a, -0x01, 0x1d, -0x2a, -0x30,
18935 0x31, 0x0a, -0x24, 0x0c, 0x35, -0x1c, -0x04, 0x21, -0x35, 0x12, 0x19, 0x3d, -0x0c, 0x20, 0x28, -0x22,
18936 -0x3c, 0x09, 0x11, -0x0c, -0x14, -0x39, 0x0f, -0x40, -0x0a, 0x0f, 0x1b, 0x34, -0x27, 0x35, 0x0e, -0x3d,
18937 }, .{
18938 -0x1a, 0x06, 0x1f, -0x24, -0x21, -0x3d, 0x1f, -0x18, 0x2f, -0x38, 0x2f, -0x0f, 0x20, 0x2d, 0x31, -0x09,
18939 -0x1d, 0x3a, 0x24, -0x09, 0x0c, -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29, 0x23, -0x37, -0x05, 0x27, -0x12,
18940 0x23, -0x14, 0x26, 0x36, -0x33, -0x1d, -0x0f, 0x32, 0x2a, -0x34, -0x31, 0x0a, -0x33, -0x34, 0x30, 0x3d,
18941 -0x1a, 0x0f, 0x16, 0x07, 0x2d, -0x2b, 0x2c, -0x2d, 0x34, -0x07, 0x32, 0x3a, 0x2e, -0x1c, 0x2e, 0x0f,
18942 0x02, 0x33, -0x1e, -0x05, -0x40, -0x0a, 0x3d, -0x28, -0x21, -0x2b, -0x18, 0x02, 0x01, -0x2c, -0x16, -0x3b,
18943 0x27, 0x23, -0x19, 0x13, -0x2c, 0x3c, -0x1a, 0x0e, -0x25, -0x19, 0x06, 0x1b, -0x3f, 0x26, 0x30, 0x0d,
18944 -0x0e, -0x2f, -0x28, 0x3b, -0x0e, 0x2d, 0x3d, 0x03, 0x0d, -0x23, 0x02, 0x26, 0x0c, 0x31, -0x10, -0x10,
18945 0x37, -0x38, -0x0f, 0x20, -0x17, 0x02, 0x3e, -0x40, 0x37, 0x22, 0x06, 0x14, -0x31, -0x1e, -0x36, -0x2c,
18946 });
18947
18948 try testArgs(@Vector(1, u7), .{
18949 0x72,
18950 }, .{
18951 0x0c,
18952 });
18953 try testArgs(@Vector(2, u7), .{
18954 0x0c, 0x3a,
18955 }, .{
18956 0x72, 0x0b,
18957 });
18958 try testArgs(@Vector(4, u7), .{
18959 0x68, 0x2b, 0x52, 0x6e,
18960 }, .{
18961 0x74, 0x79, 0x10, 0x67,
18962 });
18963 try testArgs(@Vector(8, u7), .{
18964 0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b,
18965 }, .{
18966 0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c,
18967 });
18968 try testArgs(@Vector(16, u7), .{
18969 0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69,
18970 }, .{
18971 0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b,
18972 });
18973 try testArgs(@Vector(32, u7), .{
18974 0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73,
18975 0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b,
18976 }, .{
18977 0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68,
18978 0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c,
18979 });
18980 try testArgs(@Vector(64, u7), .{
18981 0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75,
18982 0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e,
18983 0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f,
18984 0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b,
18985 }, .{
18986 0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a,
18987 0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05,
18988 0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34,
18989 0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c,
18990 });
18991 try testArgs(@Vector(128, u7), .{
18992 0x5c,
18993 0x65,
18994 0x65,
18995 0x34,
18996 0x31,
18997 0x03,
18998 0x7a,
18999 0x56,
19000 0x16,
19001 0x74,
19002 0x5c,
19003 0x7f,
19004 0x2a,
19005 0x46,
19006 0x2a,
19007 0x5f,
19008 0x62,
19009 0x06,
19010 0x51,
19011 0x23,
19012 0x58,
19013 0x1f,
19014 0x5a,
19015 0x2d,
19016 0x29,
19017 0x21,
19018 0x26,
19019 0x5a,
19020 0x5a,
19021 0x13,
19022 0x13,
19023 0x46,
19024 0x26,
19025 0x1c,
19026 0x06,
19027 0x2d,
19028 0x08,
19029 0x52,
19030 0x5b,
19031 0x6f,
19032 0x2d,
19033 0x4a,
19034 0x00,
19035 0x40,
19036 0x68,
19037 0x27,
19038 0x00,
19039 0x4a,
19040 0x3a,
19041 0x22,
19042 0x2d,
19043 0x5b,
19044 0x05,
19045 0x26,
19046 0x4e,
19047 0x6f,
19048 0x46,
19049 0x4d,
19050 0x14,
19051 0x70,
19052 0x51,
19053 0x04,
19054 0x66,
19055 0x13,
19056 0x4c,
19057 0x7c,
19058 0x67,
19059 0x23,
19060 0x13,
19061 0x55,
19062 0x1b,
19063 0x30,
19064 0x7d,
19065 0x04,
19066 0x47,
19067 0x78,
19068 0x05,
19069 0x09,
19070 0x5a,
19071 0x20,
19072 0x2e,
19073 0x17,
19074 0x11,
19075 0x49,
19076 0x6c,
19077 0x5e,
19078 0x34,
19079 0x3e,
19080 0x66,
19081 0x60,
19082 0x5d,
19083 0x75,
19084 0x48,
19085 0x1d,
19086 0x69,
19087 0x67,
19088 0x40,
19089 0x2d,
19090 0x7b,
19091 0x31,
19092 0x13,
19093 0x60,
19094 0x19,
19095 0x2f,
19096 0x3e,
19097 0x7d,
19098 0x23,
19099 0x6a,
19100 0x0e,
19101 0x16,
19102 0x44,
19103 0x34,
19104 0x5d,
19105 0x5a,
19106 0x2a,
19107 0x0b,
19108 0x64,
19109 0x07,
19110 0x22,
19111 0x5b,
19112 0x24,
19113 0x22,
19114 0x3b,
19115 0x46,
19116 0x23,
19117 0x65,
19118 0x5d,
19119 0x34,
19120 }, .{
19121 0x4b,
19122 0x36,
19123 0x7a,
19124 0x13,
19125 0x5a,
19126 0x4b,
19127 0x69,
19128 0x4b,
19129 0x1d,
19130 0x02,
19131 0x1b,
19132 0x3f,
19133 0x61,
19134 0x21,
19135 0x45,
19136 0x48,
19137 0x44,
19138 0x61,
19139 0x25,
19140 0x42,
19141 0x57,
19142 0x7d,
19143 0x7a,
19144 0x45,
19145 0x22,
19146 0x2e,
19147 0x44,
19148 0x3f,
19149 0x3a,
19150 0x14,
19151 0x07,
19152 0x6e,
19153 0x68,
19154 0x51,
19155 0x03,
19156 0x6b,
19157 0x11,
19158 0x32,
19159 0x6d,
19160 0x6f,
19161 0x44,
19162 0x5a,
19163 0x61,
19164 0x6d,
19165 0x71,
19166 0x66,
19167 0x54,
19168 0x14,
19169 0x5d,
19170 0x56,
19171 0x22,
19172 0x5c,
19173 0x3a,
19174 0x72,
19175 0x16,
19176 0x39,
19177 0x59,
19178 0x3e,
19179 0x27,
19180 0x4d,
19181 0x3d,
19182 0x44,
19183 0x72,
19184 0x2c,
19185 0x71,
19186 0x74,
19187 0x3b,
19188 0x6c,
19189 0x70,
19190 0x39,
19191 0x0f,
19192 0x5c,
19193 0x71,
19194 0x04,
19195 0x67,
19196 0x02,
19197 0x2c,
19198 0x18,
19199 0x0f,
19200 0x14,
19201 0x2d,
19202 0x24,
19203 0x51,
19204 0x34,
19205 0x6d,
19206 0x0c,
19207 0x19,
19208 0x0f,
19209 0x73,
19210 0x79,
19211 0x3d,
19212 0x74,
19213 0x20,
19214 0x15,
19215 0x22,
19216 0x25,
19217 0x09,
19218 0x14,
19219 0x09,
19220 0x71,
19221 0x2d,
19222 0x6f,
19223 0x09,
19224 0x2e,
19225 0x27,
19226 0x75,
19227 0x57,
19228 0x62,
19229 0x4d,
19230 0x07,
19231 0x62,
19232 0x01,
19233 0x41,
19234 0x2d,
19235 0x5d,
19236 0x4c,
19237 0x77,
19238 0x10,
19239 0x7f,
19240 0x30,
19241 0x0f,
19242 0x50,
19243 0x15,
19244 0x39,
19245 0x34,
19246 0x7c,
19247 0x33,
19248 0x16,
18073 });19249 });
1807419250
18075 try testArgs(@Vector(1, i8), .{19251 try testArgs(@Vector(1, i8), .{
...@@ -18198,6 +19374,248 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18198,6 +19374,248 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18198 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3,19374 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3,
18199 });19375 });
1820019376
19377 try testArgs(@Vector(1, i9), .{
19378 0x002,
19379 }, .{
19380 0x0bd,
19381 });
19382 try testArgs(@Vector(2, i9), .{
19383 0x00c, 0x0b1,
19384 }, .{
19385 -0x00b, -0x009,
19386 });
19387 try testArgs(@Vector(4, i9), .{
19388 0x0b2, 0x02b, -0x09d, -0x03c,
19389 }, .{
19390 0x031, 0x078, 0x016, -0x08a,
19391 });
19392 try testArgs(@Vector(8, i9), .{
19393 0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8,
19394 }, .{
19395 0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003,
19396 });
19397 try testArgs(@Vector(16, i9), .{
19398 0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a,
19399 }, .{
19400 0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0,
19401 });
19402 try testArgs(@Vector(32, i9), .{
19403 -0x003, 0x01b, 0x0b6, -0x009, 0x090, 0x047, -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf, 0x06a, -0x0e0, 0x03f, 0x007, 0x0a1,
19404 0x009, -0x0fb, 0x034, 0x0ba, 0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029, -0x076, 0x044, 0x0d4, 0x083, -0x002, 0x04e,
19405 }, .{
19406 -0x0cb, 0x0e3, 0x014, 0x02f, -0x0da, -0x06a, 0x07f, 0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017, -0x00d, 0x041, 0x03e,
19407 -0x096, -0x008, 0x075, -0x0bc, 0x0f9, -0x0fc, -0x0a7, 0x0ef, 0x0f9, 0x066, 0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6,
19408 });
19409 try testArgs(@Vector(64, i9), .{
19410 -0x016, -0x0ae, 0x08b, -0x0eb, -0x0b2, 0x02f, 0x039, -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb, 0x0ca, -0x049, 0x04e,
19411 -0x019, -0x0d9, -0x0bd, 0x0ae, -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9, 0x02c, 0x0cc, 0x093, -0x022, 0x07a, -0x093,
19412 0x0e5, -0x011, -0x003, 0x070, -0x042, -0x0ad, 0x0be, -0x038, -0x0bf, 0x098, 0x090, -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039,
19413 -0x035, -0x0e5, -0x054, 0x04c, 0x04b, -0x09f, 0x091, -0x039, 0x09b, -0x029, 0x014, -0x0d3, 0x06b, 0x0ae, 0x091, 0x082,
19414 }, .{
19415 -0x0bb, -0x0ec, 0x0fa, 0x055, 0x06f, 0x011, -0x09d, 0x083, -0x066, 0x014, 0x007, 0x002, -0x0ee, -0x0d9, 0x0c3, -0x087,
19416 0x03c, -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b, -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001, -0x0ba, 0x0c4, 0x0bb,
19417 0x032, 0x01e, -0x074, -0x058, -0x040, 0x0aa, 0x077, 0x028, -0x061, 0x076, -0x04e, 0x01a, -0x05f, -0x073, 0x0ea, 0x06e,
19418 -0x069, -0x0a1, -0x041, 0x013, -0x01c, -0x0f8, 0x053, 0x0f8, -0x0c3, 0x058, -0x02d, 0x0f1, -0x045, 0x04b, -0x0b1, -0x0f3,
19419 });
19420 try testArgs(@Vector(128, i9), .{
19421 0x0d4, 0x036, 0x0bd, -0x046, -0x0a7, 0x09e, 0x0dd, 0x043, 0x098, -0x09a, -0x06f, 0x0bb, -0x0b7, 0x021, 0x0a3, 0x0f0,
19422 0x069, -0x08b, 0x0da, 0x016, -0x049, 0x0d0, 0x07b, 0x004, 0x0ad, -0x07c, -0x04e, -0x011, 0x01f, -0x035, 0x028, -0x0c9,
19423 -0x0eb, 0x077, 0x08b, -0x009, 0x024, -0x058, 0x04e, -0x0c0, -0x01d, -0x0a7, 0x088, 0x01b, -0x0f3, -0x0c5, -0x08e, 0x0dc,
19424 0x07d, 0x086, -0x032, 0x0a9, -0x00c, -0x06a, 0x06c, 0x032, 0x083, 0x0ec, 0x0ec, -0x0a6, 0x029, 0x044, -0x07f, 0x068,
19425 -0x038, 0x0f6, 0x0b5, -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c, -0x037, 0x0cc, -0x033, 0x08a, -0x0b4, -0x039,
19426 0x01e, 0x06c, 0x015, -0x081, -0x029, 0x017, -0x080, -0x01e, -0x081, 0x04f, -0x071, -0x073, 0x0c3, 0x079, 0x0ad, 0x087,
19427 -0x072, 0x067, -0x064, -0x0d4, 0x0b4, 0x003, 0x0b1, 0x0bb, 0x0cc, -0x0e9, 0x0e7, 0x015, 0x07b, 0x0e4, -0x0ee, -0x07f,
19428 -0x0bf, 0x0cd, -0x056, 0x0ea, 0x0e5, 0x0fa, 0x0e1, -0x087, 0x0fe, 0x017, 0x071, -0x0d1, -0x053, -0x088, -0x0ef, 0x01b,
19429 }, .{
19430 0x0ea, -0x018, 0x0ab, 0x039, 0x0ec, 0x0cc, -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc, 0x099, -0x03c, -0x0b4,
19431 -0x0fe, -0x0ce, 0x0d6, -0x084, 0x08f, 0x04b, 0x0cc, -0x023, 0x01e, -0x09c, 0x058, 0x0f4, -0x0a7, 0x085, -0x049, -0x050,
19432 0x0f3, -0x036, -0x0fe, 0x070, -0x0a2, -0x081, -0x066, 0x057, -0x017, -0x0c8, 0x070, 0x09b, -0x0e4, -0x03b, -0x0d9, 0x081,
19433 0x041, 0x0ec, -0x062, 0x0b9, -0x0d2, -0x02a, 0x0ab, 0x072, 0x001, -0x082, -0x0cd, 0x0c8, 0x017, -0x09d, 0x094, -0x027,
19434 0x09c, 0x024, -0x0ec, 0x02f, 0x066, -0x08e, 0x0ee, 0x099, 0x08e, -0x0e5, -0x094, 0x0bb, 0x02f, -0x0fe, -0x07e, -0x0ad,
19435 0x05c, 0x066, 0x07e, -0x0a9, 0x0fe, -0x0e3, -0x068, 0x058, -0x007, 0x0d6, -0x0e8, -0x0d6, 0x038, 0x0b8, -0x0b2, 0x0c1,
19436 0x09a, 0x02f, 0x0d9, 0x07d, 0x0fc, 0x0f7, -0x005, -0x01c, 0x0c2, 0x066, 0x064, -0x096, -0x040, 0x065, -0x00d, -0x063,
19437 0x031, -0x088, 0x090, -0x077, 0x0e2, 0x0a8, -0x0e0, -0x077, 0x0eb, 0x0c3, -0x0ad, 0x008, 0x04e, -0x095, -0x041, -0x0a6,
19438 });
19439
19440 try testArgs(@Vector(1, u9), .{
19441 0x09e,
19442 }, .{
19443 0x171,
19444 });
19445 try testArgs(@Vector(2, u9), .{
19446 0x0bf, 0x042,
19447 }, .{
19448 0x154, 0x14b,
19449 });
19450 try testArgs(@Vector(4, u9), .{
19451 0x0a5, 0x1ba, 0x1ef, 0x0b3,
19452 }, .{
19453 0x15d, 0x1d3, 0x00e, 0x13b,
19454 });
19455 try testArgs(@Vector(8, u9), .{
19456 0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f,
19457 }, .{
19458 0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052,
19459 });
19460 try testArgs(@Vector(16, u9), .{
19461 0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c,
19462 }, .{
19463 0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d,
19464 });
19465 try testArgs(@Vector(32, u9), .{
19466 0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f,
19467 0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2,
19468 }, .{
19469 0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad,
19470 0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2,
19471 });
19472 try testArgs(@Vector(64, u9), .{
19473 0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066,
19474 0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e,
19475 0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170,
19476 0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a,
19477 }, .{
19478 0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e,
19479 0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d,
19480 0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe,
19481 0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b,
19482 });
19483 try testArgs(@Vector(128, u9), .{
19484 0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098,
19485 0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097,
19486 0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c,
19487 0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199,
19488 0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c,
19489 0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe,
19490 0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180,
19491 0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152,
19492 }, .{
19493 0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029,
19494 0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7,
19495 0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e,
19496 0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032,
19497 0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7,
19498 0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec,
19499 0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196,
19500 0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2,
19501 });
19502
19503 try testArgs(@Vector(1, i15), .{
19504 0x1309,
19505 }, .{
19506 0x1422,
19507 });
19508 try testArgs(@Vector(2, i15), .{
19509 0x32e8, 0x3d81,
19510 }, .{
19511 0x195c, 0x13e8,
19512 });
19513 try testArgs(@Vector(4, i15), .{
19514 -0x3485, 0x2320, -0x1725, 0x1e6e,
19515 }, .{
19516 0x2910, 0x3293, 0x3144, -0x3bbc,
19517 });
19518 try testArgs(@Vector(8, i15), .{
19519 0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace,
19520 }, .{
19521 -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f,
19522 });
19523 try testArgs(@Vector(16, i15), .{
19524 -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2,
19525 0x25ec, 0x3cf1, 0x07ea, 0x3972, 0x09d8, -0x18a6, 0x06dd, -0x1c34,
19526 }, .{
19527 -0x0ec7, 0x1144, -0x1a94, 0x255f, -0x1fbb, -0x1500, -0x0e4f, 0x0b67,
19528 0x1352, -0x0d6b, 0x2f3e, -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6,
19529 });
19530 try testArgs(@Vector(32, i15), .{
19531 -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778, 0x394a,
19532 -0x0383, -0x2fb7, 0x04cf, 0x033a, 0x2bff, 0x3997, -0x112c, 0x3a1a,
19533 0x1adf, 0x270b, 0x182e, -0x23f6, 0x1a33, 0x2644, -0x0b41, -0x1c48,
19534 0x1c2d, -0x2a40, 0x007c, 0x1a62, 0x30d9, 0x0e4b, 0x32ee, 0x2b46,
19535 }, .{
19536 0x1af0, 0x286f, -0x14fe, 0x2318, 0x002a, -0x26b2, 0x350b, 0x0884,
19537 0x3011, 0x276a, 0x2b2a, 0x22d3, -0x1ece, 0x0143, 0x2f5b, -0x0fa2,
19538 0x2412, -0x3d86, -0x3774, -0x09a5, 0x0fbf, 0x32f7, -0x0a23, -0x3d5a,
19539 -0x1523, -0x27c5, 0x097f, 0x2923, 0x3060, 0x113e, -0x0643, -0x1287,
19540 });
19541 try testArgs(@Vector(64, i15), .{
19542 0x0419, 0x1803, -0x3897, 0x2b0c, 0x08a3, -0x39d0, 0x174e, -0x29c6,
19543 0x0152, -0x1078, 0x1113, 0x23bf, 0x0990, -0x2777, 0x2ba4, -0x058b,
19544 -0x2d4a, -0x23ba, 0x3875, -0x1720, -0x2625, -0x1c8f, 0x1f7c, 0x3f73,
19545 0x3780, -0x3043, -0x0d8d, 0x2ced, 0x091a, 0x3481, -0x1917, -0x352f,
19546 0x34c7, 0x322f, -0x20ae, -0x0653, 0x1c82, 0x09a8, -0x1a0b, -0x1dff,
19547 -0x24c2, -0x2592, -0x3ff7, 0x1515, -0x3d32, 0x1e9e, -0x334d, 0x352b,
19548 -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c, -0x2bad, -0x2682, 0x32cf,
19549 0x31e4, -0x085c, -0x0c84, -0x2f11, 0x03ba, -0x0111, -0x2634, 0x344f,
19550 }, .{
19551 0x011a, 0x186c, -0x2d7e, 0x29b1, 0x2cfb, -0x077b, 0x3e8c, -0x3a62,
19552 0x3575, 0x35f0, -0x2529, -0x3040, 0x398e, -0x0c56, 0x2aa5, 0x0a72,
19553 -0x0c36, -0x2c53, 0x275b, -0x1155, 0x1a9d, -0x34af, -0x3d4f, 0x14a0,
19554 -0x0b88, 0x0b34, 0x2d60, 0x19ee, -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b,
19555 -0x23f4, 0x0472, 0x1977, -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f,
19556 -0x2dcb, 0x2e99, 0x0dd1, 0x0377, -0x3f91, -0x3719, 0x0248, 0x3c40,
19557 -0x08d4, -0x2f12, -0x12ee, 0x3bc0, 0x3c4a, 0x1ff3, -0x1096, -0x37e0,
19558 -0x0879, -0x354f, -0x2277, 0x1ced, 0x0833, -0x0f7e, 0x2070, 0x0d81,
19559 });
19560
19561 try testArgs(@Vector(1, u15), .{
19562 0x18c0,
19563 }, .{
19564 0x0c85,
19565 });
19566 try testArgs(@Vector(2, u15), .{
19567 0x3697, 0x744b,
19568 }, .{
19569 0x60d5, 0x4172,
19570 });
19571 try testArgs(@Vector(4, u15), .{
19572 0x7c31, 0x62c3, 0x7fe9, 0x4a52,
19573 }, .{
19574 0x28bf, 0x58a9, 0x09d5, 0x111f,
19575 });
19576 try testArgs(@Vector(8, u15), .{
19577 0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665,
19578 }, .{
19579 0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66,
19580 });
19581 try testArgs(@Vector(16, u15), .{
19582 0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43,
19583 0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f,
19584 }, .{
19585 0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2,
19586 0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3,
19587 });
19588 try testArgs(@Vector(32, u15), .{
19589 0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074,
19590 0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc,
19591 0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850,
19592 0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c,
19593 }, .{
19594 0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89,
19595 0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda,
19596 0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6,
19597 0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960,
19598 });
19599 try testArgs(@Vector(64, u15), .{
19600 0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a,
19601 0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7,
19602 0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0,
19603 0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6,
19604 0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98,
19605 0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2,
19606 0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e,
19607 0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d,
19608 }, .{
19609 0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1,
19610 0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849,
19611 0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f,
19612 0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97,
19613 0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3,
19614 0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2,
19615 0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc,
19616 0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29,
19617 });
19618
18201 try testArgs(@Vector(1, i16), .{19619 try testArgs(@Vector(1, i16), .{
18202 -0x7b9c,19620 -0x7b9c,
18203 }, .{19621 }, .{
...@@ -18317,6 +19735,228 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18317,6 +19735,228 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18317 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc,19735 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc,
18318 });19736 });
1831919737
19738 try testArgs(@Vector(1, i17), .{
19739 0x0538f,
19740 }, .{
19741 0x01de0,
19742 });
19743 try testArgs(@Vector(2, i17), .{
19744 0x0cb5d, 0x00c0b,
19745 }, .{
19746 -0x0ef1d, -0x0797c,
19747 });
19748 try testArgs(@Vector(4, i17), .{
19749 -0x06cbb, 0x08fcd, 0x05d91, -0x05824,
19750 }, .{
19751 0x0714b, 0x09218, -0x0c0d8, 0x000dd,
19752 });
19753 try testArgs(@Vector(8, i17), .{
19754 0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79,
19755 }, .{
19756 0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f,
19757 });
19758 try testArgs(@Vector(16, i17), .{
19759 -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d,
19760 0x042d2, 0x06121, 0x0241f, 0x06833, 0x0a33b, 0x0f526, 0x0671a, 0x0c2a3,
19761 }, .{
19762 0x02be2, -0x08589, 0x0d95c, -0x001cc, -0x03183, 0x08c1a, -0x001db, 0x07604,
19763 0x08d92, 0x094ad, -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e,
19764 });
19765 try testArgs(@Vector(32, i17), .{
19766 0x01222, 0x022bc, 0x042df, 0x02205, -0x06de8, -0x0aaaf, 0x0fa4c, -0x0c708,
19767 -0x06edd, -0x0acbe, 0x0b01f, 0x003f5, -0x0b82a, 0x0a189, -0x04f4b, 0x02122,
19768 -0x0debd, -0x0b05f, 0x091b6, -0x074ff, 0x054e5, -0x03355, 0x08ab0, 0x0c3c8,
19769 -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99, -0x0f096, 0x0e064,
19770 }, .{
19771 0x0d1c0, 0x02f93, 0x0e28c, 0x0862d, -0x09e1e, -0x02247, -0x01b56, 0x06633,
19772 0x0fdcc, -0x0731f, 0x0e084, 0x0b865, 0x089ac, -0x09e31, 0x0c730, 0x0af1d,
19773 0x0c9b2, -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593, -0x02c83, -0x04e28, 0x0f375,
19774 -0x0e805, 0x0390f, 0x042a3, -0x02aed, 0x03a5a, 0x070d3, -0x0ed6a, 0x02b14,
19775 });
19776 try testArgs(@Vector(64, i17), .{
19777 0x0be66, 0x0e4fb, -0x0b918, -0x029b8, 0x019e8, 0x00621, 0x0e380, 0x040f6,
19778 -0x0d095, 0x0b4d8, -0x0a3ad, -0x0eaf2, 0x03bd3, 0x0635c, 0x02444, -0x0830f,
19779 0x01239, -0x037ed, -0x071d1, 0x057e7, -0x02cdb, 0x0504c, 0x0612c, -0x005bf,
19780 -0x04793, 0x03909, 0x0061c, -0x06423, 0x040d6, 0x0bc6a, -0x09204, 0x0e890,
19781 0x04b98, 0x00257, 0x0dc85, -0x0af2b, -0x0a1e7, 0x04ff6, 0x0b680, -0x07c61,
19782 -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8, 0x06b52, -0x0d619, -0x09344,
19783 -0x09b96, 0x0b81e, 0x04df8, -0x012f6, -0x0c3bd, 0x067cc, -0x0fa47, -0x05e93,
19784 0x07d29, 0x00d87, 0x0de1f, 0x0d24f, -0x0aede, -0x03414, -0x09a6c, 0x094dc,
19785 }, .{
19786 0x03d8e, -0x0f297, -0x0d810, 0x05b8e, -0x0630e, -0x0656f, 0x02f56, 0x0190b,
19787 0x0a1e6, -0x0783a, -0x00bde, 0x01bb2, -0x093a5, -0x02b3f, 0x0198c, 0x0cc55,
19788 0x04ec1, -0x0ed31, -0x00a80, -0x0be6d, 0x0712b, 0x0451b, 0x067a4, 0x061cd,
19789 0x0e799, -0x06c74, -0x09b05, 0x0dc73, -0x0a87d, -0x0cf60, -0x00f07, 0x0b101,
19790 0x06d5b, 0x09d61, -0x01092, 0x002ee, 0x0f192, 0x0024b, 0x04778, 0x06d05,
19791 -0x0e460, 0x08524, -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5,
19792 0x071fe, 0x016d5, -0x076e2, -0x035d8, 0x02763, -0x0676f, -0x0a9aa, -0x0ab0b,
19793 0x012de, -0x00d05, 0x0f528, 0x07837, 0x0fc4e, -0x06304, 0x0616f, -0x0b10d,
19794 });
19795
19796 try testArgs(@Vector(1, u17), .{
19797 0x17ba6,
19798 }, .{
19799 0x1ac3a,
19800 });
19801 try testArgs(@Vector(2, u17), .{
19802 0x1d26d, 0x18548,
19803 }, .{
19804 0x0c0eb, 0x1bbc8,
19805 });
19806 try testArgs(@Vector(4, u17), .{
19807 0x1a01c, 0x12671, 0x175cc, 0x0ed36,
19808 }, .{
19809 0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18,
19810 });
19811 try testArgs(@Vector(8, u17), .{
19812 0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df,
19813 }, .{
19814 0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5,
19815 });
19816 try testArgs(@Vector(16, u17), .{
19817 0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254,
19818 0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38,
19819 }, .{
19820 0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6,
19821 0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a,
19822 });
19823 try testArgs(@Vector(32, u17), .{
19824 0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560,
19825 0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5,
19826 0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb,
19827 0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299,
19828 }, .{
19829 0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831,
19830 0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684,
19831 0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1,
19832 0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee,
19833 });
19834 try testArgs(@Vector(64, u17), .{
19835 0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc,
19836 0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c,
19837 0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355,
19838 0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388,
19839 0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136,
19840 0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428,
19841 0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7,
19842 0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7,
19843 }, .{
19844 0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6,
19845 0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18,
19846 0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884,
19847 0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43,
19848 0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791,
19849 0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1,
19850 0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146,
19851 0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5,
19852 });
19853
19854 try testArgs(@Vector(1, i31), .{
19855 0x2b94a60e,
19856 }, .{
19857 0x20451023,
19858 });
19859 try testArgs(@Vector(2, i31), .{
19860 0x21d4d18c, -0x1f73454a,
19861 }, .{
19862 -0x18dcc667, -0x2e81b7f1,
19863 });
19864 try testArgs(@Vector(4, i31), .{
19865 -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669,
19866 }, .{
19867 -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3,
19868 });
19869 try testArgs(@Vector(8, i31), .{
19870 0x0ffaa22c, 0x15914f94, -0x20cec195, -0x35e7b06a,
19871 -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e,
19872 }, .{
19873 -0x178ffdb4, -0x10934a93, 0x08c3b058, -0x1579a89f,
19874 0x2340c302, 0x00280e85, -0x38983c31, 0x0349891e,
19875 });
19876 try testArgs(@Vector(16, i31), .{
19877 -0x11bc6f72, 0x1ca1ca00, 0x0b49c711, -0x07fd7d21,
19878 0x20ab59d2, -0x07f45e94, -0x0d33151d, 0x065b8bff,
19879 0x2231354e, 0x21ff00a7, -0x35061bb0, -0x1135899e,
19880 0x2ed1c690, -0x1c1b598f, -0x19157726, -0x11c4d2c7,
19881 }, .{
19882 0x304dbbfb, -0x3e59fd39, 0x1029151a, -0x1e4d2063,
19883 -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749,
19884 0x380ae142, 0x357f1b30, -0x17ccaa0d, -0x32cd12b4,
19885 0x305256f7, -0x298ce473, 0x244faaf4, 0x23450241,
19886 });
19887 try testArgs(@Vector(32, i31), .{
19888 -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f, 0x2a4f2d06,
19889 -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7,
19890 0x357e8c45, 0x0434b6b9, 0x28a3c5f9, 0x2d5b9944,
19891 0x316614a1, 0x0c12a228, 0x0422665d, 0x33c0dec9,
19892 0x0a7ede17, -0x02e88ae9, -0x39e76560, 0x1e4b90af,
19893 0x0a1527bb, 0x3a9f0405, 0x163b6eae, -0x3ff84429,
19894 0x1eb85fcc, 0x265f1f44, 0x2536ec34, -0x30c952a2,
19895 -0x1f7864e5, 0x033737cd, -0x20b5718a, -0x0aad3a2f,
19896 }, .{
19897 -0x2455af85, 0x210b1040, 0x39915c7d, 0x2d56c08e,
19898 0x1f318b8d, -0x1e125926, -0x3faaabbb, -0x254d4da5,
19899 -0x1b2ded0f, -0x27fa4874, 0x02c0d73b, 0x123e9344,
19900 0x0351c023, 0x14cca255, -0x2072b9d7, 0x1e624059,
19901 -0x07d014a1, 0x2eda3228, -0x300ff9b4, 0x333f25ad,
19902 -0x3c653e21, 0x04b4a50e, -0x20f17e80, 0x29063cd1,
19903 0x2d52f6ad, -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c,
19904 0x397162ee, -0x2aa6708b, -0x0ef146b4, 0x04f36039,
19905 });
19906
19907 try testArgs(@Vector(1, u31), .{
19908 0x3ed1fb2d,
19909 }, .{
19910 0x1b75c3fd,
19911 });
19912 try testArgs(@Vector(2, u31), .{
19913 0x38754d45, 0x04a454d9,
19914 }, .{
19915 0x7d06646d, 0x228e6c44,
19916 });
19917 try testArgs(@Vector(4, u31), .{
19918 0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c,
19919 }, .{
19920 0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1,
19921 });
19922 try testArgs(@Vector(8, u31), .{
19923 0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682,
19924 0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e,
19925 }, .{
19926 0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd,
19927 0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78,
19928 });
19929 try testArgs(@Vector(16, u31), .{
19930 0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc,
19931 0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2,
19932 0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9,
19933 0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f,
19934 }, .{
19935 0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0,
19936 0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3,
19937 0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71,
19938 0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57,
19939 });
19940 try testArgs(@Vector(32, u31), .{
19941 0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477,
19942 0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc,
19943 0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27,
19944 0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994,
19945 0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be,
19946 0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0,
19947 0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73,
19948 0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737,
19949 }, .{
19950 0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42,
19951 0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53,
19952 0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77,
19953 0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b,
19954 0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d,
19955 0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db,
19956 0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4,
19957 0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338,
19958 });
19959
18320 try testArgs(@Vector(1, i32), .{19960 try testArgs(@Vector(1, i32), .{
18321 0x7aef7b1e,19961 0x7aef7b1e,
18322 }, .{19962 }, .{
...@@ -18423,6 +20063,208 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18423,6 +20063,208 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18423 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5,20063 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5,
18424 });20064 });
1842520065
20066 try testArgs(@Vector(1, i33), .{
20067 0x0a9a3088e,
20068 }, .{
20069 0x06c76b26e,
20070 });
20071 try testArgs(@Vector(2, i33), .{
20072 0x0a9bd1d56, 0x05b0b9015,
20073 }, .{
20074 -0x05af6217c, 0x0227b5d3a,
20075 });
20076 try testArgs(@Vector(4, i33), .{
20077 -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663,
20078 }, .{
20079 -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9,
20080 });
20081 try testArgs(@Vector(8, i33), .{
20082 0x09d4fea1c, 0x0cd4254ba, 0x008d5f732, 0x0566c6f55,
20083 -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146,
20084 }, .{
20085 0x02c01d901, 0x04407fcae, -0x0e6a223a6, -0x0bd9499f8,
20086 0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e,
20087 });
20088 try testArgs(@Vector(16, i33), .{
20089 -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d,
20090 -0x0d502b660, 0x0dd465278, 0x042a7e451, 0x03c1c3671,
20091 0x00eb6f4a9, 0x08982dbc4, 0x0421b8852, 0x015ee0e53,
20092 0x0e6924014, 0x0c6ddbc65, 0x00260ea59, 0x0d98aaedf,
20093 }, .{
20094 -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47,
20095 -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861,
20096 -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9, 0x0b0064ff1,
20097 -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd, -0x06af4f476,
20098 });
20099 try testArgs(@Vector(32, i33), .{
20100 0x07b887609, -0x004a23b00, 0x09b664a97, -0x0d4932ed0,
20101 -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a,
20102 0x03d12175b, -0x0463cd854, 0x0cf448f1d, 0x0d1d02e2e,
20103 -0x0da681c00, 0x0d1173267, 0x08faa4e2c, 0x0634c9df5,
20104 0x037e682e2, 0x0db055022, -0x0641f3daa, 0x053852c9b,
20105 0x035822a2b, -0x0b12bfe53, 0x084f704c9, 0x018cfacee,
20106 -0x07130725b, -0x0b301dece, 0x00e1765b3, -0x0e0f0c97c,
20107 0x0ccd5e7fd, -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3,
20108 }, .{
20109 0x0df3d6e88, 0x00b4748ff, -0x0d0381c05, -0x093d68cb5,
20110 -0x027834cc7, 0x05aa9ca20, -0x04bc88f40, 0x080f0d937,
20111 0x06699a6b8, -0x0fed64f1d, 0x0a79fe089, -0x016a9c385,
20112 0x0186e6b5b, -0x0a3c83fe6, 0x09a4f87ec, 0x011ce03bf,
20113 -0x0f742cb8c, 0x066be2e66, -0x03b0beb52, 0x059bfda10,
20114 0x04bc221c0, 0x07d8b0344, -0x0c6e34f34, -0x0de0338ce,
20115 -0x09571f80c, 0x0d36e8ea7, -0x052c44147, 0x0072ce503,
20116 -0x0ef8dec64, 0x0b5956cb3, -0x02b72b4b1, 0x0f2585167,
20117 });
20118
20119 try testArgs(@Vector(1, u33), .{
20120 0x197ead992,
20121 }, .{
20122 0x0be595917,
20123 });
20124 try testArgs(@Vector(2, u33), .{
20125 0x1485499a5, 0x1e12b23e3,
20126 }, .{
20127 0x1431cd300, 0x0762a7b51,
20128 });
20129 try testArgs(@Vector(4, u33), .{
20130 0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed,
20131 }, .{
20132 0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2,
20133 });
20134 try testArgs(@Vector(8, u33), .{
20135 0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f,
20136 0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a,
20137 }, .{
20138 0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c,
20139 0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e,
20140 });
20141 try testArgs(@Vector(16, u33), .{
20142 0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53,
20143 0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6,
20144 0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac,
20145 0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275,
20146 }, .{
20147 0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22,
20148 0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef,
20149 0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906,
20150 0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948,
20151 });
20152 try testArgs(@Vector(32, u33), .{
20153 0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99,
20154 0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4,
20155 0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01,
20156 0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218,
20157 0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333,
20158 0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9,
20159 0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d,
20160 0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079,
20161 }, .{
20162 0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c,
20163 0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6,
20164 0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b,
20165 0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58,
20166 0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1,
20167 0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22,
20168 0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33,
20169 0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97,
20170 });
20171
20172 try testArgs(@Vector(1, i63), .{
20173 -0x2d99033c3223ad4f,
20174 }, .{
20175 0x023c8c6807737a0e,
20176 });
20177 try testArgs(@Vector(2, i63), .{
20178 -0x08fe3255607ce099, -0x3bf678cfa16a59d2,
20179 }, .{
20180 -0x1b8733d130c49d54, 0x39deb4fe6c836b3f,
20181 });
20182 try testArgs(@Vector(4, i63), .{
20183 0x1e81cf3e0f9eae80, -0x0886f09bd1723b08,
20184 0x16e84b8d985e5b82, 0x0fa327538c09a281,
20185 }, .{
20186 -0x2594908bb49f963f, -0x29639632db767665,
20187 0x012d5330f966e1be, -0x1143fddd48bf9752,
20188 });
20189 try testArgs(@Vector(8, i63), .{
20190 -0x08e352cf330c1852, -0x17bc1f760120ff85,
20191 -0x0f180e5c748c0e20, 0x07ee9290e2d53335,
20192 -0x33945ea070fbb445, 0x104802af8984525d,
20193 0x36d27ad0f35fcfd8, 0x292141a0133227a0,
20194 }, .{
20195 0x2adad30092da2886, -0x1694bcdda9b82c45,
20196 0x1f5a019d638ba22c, -0x2e7853134888b613,
20197 -0x2bb77a420f280a6d, -0x377771e94e493751,
20198 0x1dd5373311160f2f, -0x02bb5248b7e0c55e,
20199 });
20200 try testArgs(@Vector(16, i63), .{
20201 0x2d930d47aa078416, 0x1edf9abe8d562bd5,
20202 0x3ef3a5266f822396, -0x102f82f23c5608e1,
20203 -0x38755dccf6c87ae1, 0x09f11b107d033f85,
20204 0x079829e968213db8, 0x17248ef600ddb53d,
20205 0x19e16a7a4e6aa0cc, 0x11e21ddfb7b5b946,
20206 0x26ad3768e80b1258, 0x3672a14b31cb7f1a,
20207 0x3235b83f829966b4, 0x3b4009ac38f728b8,
20208 -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42,
20209 }, .{
20210 -0x1428b8c4947715ea, -0x0a5626024843736e,
20211 0x075a1a0d0d47f0af, 0x0ea460d282e8dcc0,
20212 -0x124b2a6e2957dc53, -0x0d2602075af449d5,
20213 -0x0db76b825400293c, -0x17c13cd693d2db13,
20214 0x0ad907bb94e64687, -0x05fd33e10be897ad,
20215 -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510,
20216 0x0106683b57f2cf9e, 0x353bea8a4c199155,
20217 0x3942af4e40b65cb0, 0x3da0254a739aa17a,
20218 });
20219
20220 try testArgs(@Vector(1, u63), .{
20221 0x17beef25621255fb,
20222 }, .{
20223 0x79bc7e82d16c5e15,
20224 });
20225 try testArgs(@Vector(2, u63), .{
20226 0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659,
20227 }, .{
20228 0x5df7aae04a4a1126, 0x53568966decbd14f,
20229 });
20230 try testArgs(@Vector(4, u63), .{
20231 0x3d50a0f4755d87e3, 0x722e93c0b1355665,
20232 0x3c8325a3e3640be1, 0x34eef2706884b9ab,
20233 }, .{
20234 0x2671797fd253520d, 0x22f81938e525536e,
20235 0x08ca256b0b348d57, 0x1cdbe1867f422280,
20236 });
20237 try testArgs(@Vector(8, u63), .{
20238 0x49ab492d75830041, 0x28f4065197f361cf,
20239 0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803,
20240 0x7f517fcfc0451068, 0x05eaa5d2f93407b2,
20241 0x0fe06447fdbec4d6, 0x34862504232f73d8,
20242 }, .{
20243 0x64a1796fe76dcc4d, 0x159bd1a9228a8c41,
20244 0x093a4794b5759276, 0x40a740fa4d288585,
20245 0x5d2d1aede616f40e, 0x7e7af17ddce8e03e,
20246 0x7555fb4a1c18d5ff, 0x11b45e151e8724d0,
20247 });
20248 try testArgs(@Vector(16, u63), .{
20249 0x456de088589c1035, 0x23239ed26d0e198f,
20250 0x4f3c4ae380a12430, 0x1cb11ef73131a6f4,
20251 0x6e51a370969ec7ae, 0x38bed7b267bb163d,
20252 0x2fcfab012fb79669, 0x45e203406a43fe95,
20253 0x38468cff64a44f74, 0x3cc86f1d717e8c60,
20254 0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8,
20255 0x1a7493c9bb7b265c, 0x6e8536e5f32317d8,
20256 0x634701c32688fd34, 0x7a4e4a7f35ef9651,
20257 }, .{
20258 0x3da82f0beb7a091d, 0x040c9bbf428787fa,
20259 0x795418c55742e8d2, 0x700f9b62c01cdf30,
20260 0x78d567c18e7ce16d, 0x300da37dc14b6705,
20261 0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d,
20262 0x00e8c13b3acf4557, 0x19adb837145a0267,
20263 0x594889dd8e1ff4c2, 0x561da6bd7e2ba593,
20264 0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc,
20265 0x68ec40831cb6b863, 0x2862d922ed7a78eb,
20266 });
20267
18426 try testArgs(@Vector(1, i64), .{20268 try testArgs(@Vector(1, i64), .{
18427 0x4a31679b316d8b59,20269 0x4a31679b316d8b59,
18428 }, .{20270 }, .{
...@@ -18519,6 +20361,188 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18519,6 +20361,188 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18519 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957,20361 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957,
18520 });20362 });
1852120363
20364 try testArgs(@Vector(1, i65), .{
20365 0x0ca0853f57c0686c8,
20366 }, .{
20367 -0x05c79d7369ef879fd,
20368 });
20369 try testArgs(@Vector(2, i65), .{
20370 0x0c65f685f4839bc8d, -0x079057ad04859d897,
20371 }, .{
20372 -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa,
20373 });
20374 try testArgs(@Vector(4, i65), .{
20375 0x0d6a03163f101695e, -0x0ebe991e54e61156d,
20376 -0x0715adf48176985dc, 0x01e57dbe6ea50b22f,
20377 }, .{
20378 -0x0b308d8311a45a38d, 0x07c292cc15044b1f5,
20379 0x0e69e3eae81046bc8, 0x053b75d6a544ca0db,
20380 });
20381 try testArgs(@Vector(8, i65), .{
20382 0x0066315a88896ba00, 0x026c8109f087eb4e3,
20383 -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff,
20384 0x0dcdd248c4575dbb1, -0x09db7d03c38a83255,
20385 -0x097bc9d5397c57594, 0x0e6af866eed43b462,
20386 }, .{
20387 -0x06ac0448a06876866, 0x0f89dbafcbbb065d7,
20388 -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0,
20389 -0x085a4a7b09dcec260, -0x0068e92e14823a98a,
20390 -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71,
20391 });
20392 try testArgs(@Vector(16, i65), .{
20393 -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36,
20394 -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8,
20395 0x0dbebb830228d2945, -0x02133deab2ebd8699,
20396 -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc,
20397 -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a,
20398 -0x04e1094b79391df4a, 0x03b3fbc230416592d,
20399 0x08799db1379e6b1ba, -0x0fa7c7aed60863358,
20400 -0x0c44dd44a770610bd, -0x0349cdc54719b2e37,
20401 }, .{
20402 0x03146cdf203a80cfd, 0x0e22a03fe80f3e2ed,
20403 0x07fa7a66dbe252222, 0x000a3bc923a32648a,
20404 -0x078bac9e36d66da71, -0x03055804cd3b73168,
20405 0x0d9280808858f006d, -0x09415dfb2fd33fe5a,
20406 -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82,
20407 -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157,
20408 0x0ac0128bbf7a5200e, -0x009e0b2ab770e711b,
20409 0x05473b5629f372ee9, -0x02eda67313ff7fa47,
20410 });
20411
20412 try testArgs(@Vector(1, u65), .{
20413 0x1879059aca94dd383,
20414 }, .{
20415 0x0051da1f25078e919,
20416 });
20417 try testArgs(@Vector(2, u65), .{
20418 0x18f39bb41f03223f5, 0x16a59f6838a63e737,
20419 }, .{
20420 0x105aa15beae036a1a, 0x1b47ef7ef744b70fe,
20421 });
20422 try testArgs(@Vector(4, u65), .{
20423 0x18c685254b3c7170c, 0x0de8048a66902ebfd,
20424 0x02bc97f62163e7e31, 0x152b6eba67c1e76db,
20425 }, .{
20426 0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee,
20427 0x1db62793f956492ba, 0x0e4262599ec54c2a4,
20428 });
20429 try testArgs(@Vector(8, u65), .{
20430 0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b,
20431 0x1fd2f93384860df65, 0x01827fcdb6c715d64,
20432 0x03869c173a922b018, 0x0addd48a4671a2f6b,
20433 0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38,
20434 }, .{
20435 0x159e9494fc84ed452, 0x0834f6aaa7666a22b,
20436 0x066765389e84150b4, 0x1e722ae23908c7e96,
20437 0x0d64ec725397e6ee0, 0x19f3a147a355baa22,
20438 0x02f1b100538b6dbc3, 0x175885a34aefca91b,
20439 });
20440 try testArgs(@Vector(16, u65), .{
20441 0x105647e12b2b76daa, 0x04dcca29537263f6a,
20442 0x16c112620be731a4e, 0x0d6c088da3c158fa0,
20443 0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c,
20444 0x05703068045915d95, 0x07cc42e0bb216b310,
20445 0x08a15a16e4247ad98, 0x1c17b2292e34aa369,
20446 0x14c9808748fa615c3, 0x187449666c2f5375b,
20447 0x133fcb93a31d2f369, 0x047729af594c8c1c1,
20448 0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4,
20449 }, .{
20450 0x0d65b8b643703ef96, 0x1c55c2e0816c5d056,
20451 0x0390a06d3ec60e632, 0x0d543d346db055847,
20452 0x017e27c7d663d7005, 0x112f7b98a78014ea3,
20453 0x030136142f19042d7, 0x059f9b6e576f79ef7,
20454 0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde,
20455 0x1e26cd964c656292a, 0x0579c10261478da1d,
20456 0x0406f2849ab5ad15c, 0x024b15c729f2211b7,
20457 0x10f0505cc2f7f110c, 0x133cfa11f995e0afc,
20458 });
20459
20460 try testArgs(@Vector(1, i127), .{
20461 0x226b8faf65414a9a0ffcd438c7fa9eea,
20462 }, .{
20463 0x2c582610b08531ca208fef1c2b839bdc,
20464 });
20465 try testArgs(@Vector(2, i127), .{
20466 0x35e8caffc9fc8e1b3b6d3667cb6a128c,
20467 -0x070d99d51807ae2314ea61e4f0166145,
20468 }, .{
20469 -0x3a59d011c2a385a6dcf00a40efd85b77,
20470 0x3b5f506c3fa0c8552fba624d1b5debec,
20471 });
20472 try testArgs(@Vector(4, i127), .{
20473 0x191594cc2356ffeac739f1841b06adcf,
20474 0x1f45176996076de7c3891f14f831e192,
20475 0x1c9047002e0a4f00656556fffeb50349,
20476 -0x38049f47bcc36ab26600bc475295389f,
20477 }, .{
20478 -0x2f8c1618324c60c40f65d216943d59d2,
20479 -0x21429f90bd9dff7b5d49c9d7f2655928,
20480 0x3baeef72d0d168fb50564c9f6eb5d778,
20481 0x3affe6f2eddfc6a69206c357633d0eeb,
20482 });
20483 try testArgs(@Vector(8, i127), .{
20484 -0x00c48629a415129f66e74a1a215d683a,
20485 0x3920a425cbec4c9af649a00d5747136a,
20486 0x11f53b9db15a12814c948c6a809b96f8,
20487 -0x1f7e272db97efc88762dedf54978e795,
20488 0x13e56ca8ed41f64d04ef01019703f402,
20489 0x294014109f4313454d9994f1003b4572,
20490 0x0f3d6fe7adde96149ffcc5c0808b708f,
20491 0x2d9bcd407da37ff3d43cc5f6b64fd385,
20492 }, .{
20493 0x3f95f21d3bc39fe8e3fcc184d150a984,
20494 0x2a8c36a5986d8c245bbdd302737b7e29,
20495 0x37c61446e10efe6a94f797da05a28fae,
20496 -0x096b2f4e16aef099d623066e941d13d1,
20497 0x3df11d4af3229ed59c52628cac02f506,
20498 0x326f78cbf454566daa3bc235a1fb3fb8,
20499 -0x2cf6b4872dffea018c77892e433b6784,
20500 0x345dfdd52635c224c70949913255ab68,
20501 });
20502
20503 try testArgs(@Vector(1, u127), .{
20504 0x49a0cd1849f9adbed215770c6f97a584,
20505 }, .{
20506 0x5e10826a03aeb57d4a9a9ef2a8f02faa,
20507 });
20508 try testArgs(@Vector(2, u127), .{
20509 0x1c2544fbb76890de5c00f42c9a516846,
20510 0x324f292d72694d409152a311b5a0441c,
20511 }, .{
20512 0x01cc87106db8e357e85f875d46feac96,
20513 0x49e775cc0db88cf9725af13113d7d457,
20514 });
20515 try testArgs(@Vector(4, u127), .{
20516 0x3e82ddcd074646a0a489a4fd300c32c9,
20517 0x2a511ac041c17a68c5a71bc6d3cb3ba9,
20518 0x2dace4189083411634b753ae476579a8,
20519 0x4e1d5cb04d9681d806312d72d6dc5262,
20520 }, .{
20521 0x5f489e689ff15fcf38aad995b1796af2,
20522 0x49ee549bd8e20092c8ccebb992cde8b8,
20523 0x4e52d33281cba3fda6ae8d1f463c7a1f,
20524 0x0de0279b2dec3fffe44c1c7decc430f8,
20525 });
20526 try testArgs(@Vector(8, u127), .{
20527 0x636de193fbadb1984a0ed9969f88d38d,
20528 0x64426b7e468cb323b1d75656879fb9b2,
20529 0x48afb4cc5a11f2ca4b8609b057758312,
20530 0x176157ce93422bb4463d6f0dda275b94,
20531 0x746015d0e8cb5e36af43840a6df11aab,
20532 0x279b665776118bc2759134c19cbf1bb0,
20533 0x52cb4dc56d3935090fb7db710c8f9660,
20534 0x591884d8d8e2fe2f77b7f8508dddeaaa,
20535 }, .{
20536 0x42e00bc05d50ea63d546085642b8831b,
20537 0x4241ff07ce99ee055b48ed2939b8d6b7,
20538 0x45a5f53a5c5cb13f1a9e6621fec8cf4a,
20539 0x68d6938c1b348dc6cc98d4b6ab3a1c22,
20540 0x1f9448fc11e38500ec7ecf57a33a278b,
20541 0x7b331526d6fcfb958f3c88fc4656e123,
20542 0x4f1e8ddf41a7105cc1a1c815040a2693,
20543 0x31ac7bd68686d531d53ecca75e6d8b81,
20544 });
20545
18522 try testArgs(@Vector(1, i128), .{20546 try testArgs(@Vector(1, i128), .{
18523 -0x3bb56309fcad13fc1011dc671cf57bdc,20547 -0x3bb56309fcad13fc1011dc671cf57bdc,
18524 }, .{20548 }, .{
...@@ -18605,6 +20629,398 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18605,6 +20629,398 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18605 0xa858bce5ad0e48c13588a4e170e8667c,20629 0xa858bce5ad0e48c13588a4e170e8667c,
18606 });20630 });
1860720631
20632 try testArgs(@Vector(1, i129), .{
20633 -0x09c126c4e31389b174cb2b45e76c086dd,
20634 }, .{
20635 0x0d023f2566c56400f4b7edb9c4f364ecb,
20636 });
20637 try testArgs(@Vector(2, i129), .{
20638 -0x072be32e116741732f9422d9b20777db5,
20639 -0x010829386cc3d93283a83591bd994ca58,
20640 }, .{
20641 0x004671167d0681d46945832d16f70cfba,
20642 0x098550137341cbadfe8378987e3a83265,
20643 });
20644 try testArgs(@Vector(4, i129), .{
20645 0x04167620c7f5e094208fb204f06b9792c,
20646 0x07a6690c0b5f9de6c8955873f19b98f23,
20647 -0x06505997d01e5a971f820742210c7adc6,
20648 -0x07013921eab8d92559f17ad9e3712bc61,
20649 }, .{
20650 -0x0bdbf7ce4079fa628feb05f5814402e15,
20651 -0x0e6ee5464de547ce92ee5a6037f175e52,
20652 -0x009d079b88cdc765ab72758854b753d98,
20653 -0x085af31dd5243f61b46e6dc950728ff49,
20654 });
20655 try testArgs(@Vector(8, i129), .{
20656 0x0d85f471bdc56611e9187113f1489bd38,
20657 0x06e1e9cae044bb17b63c380fd6f2652b5,
20658 0x0921d649288a16481f2ec69747f443e5e,
20659 0x0e8db24d1aefd91cfab20bac61f560274,
20660 0x0187abef7578e5e02a396e4ebd5859c23,
20661 0x0d2dec5a6bd72afe18288ca428ec2b94d,
20662 0x0c52c111a077bffb1fa4483523cd044c3,
20663 -0x0b6a90c79d6230f271bf625c9a6c0dfc5,
20664 }, .{
20665 0x0d47c566bdedae2e9485f7aa381a98d30,
20666 -0x0e5d9573c01a9e56361b202c47f0e51f8,
20667 -0x0bdcafb1f08db4920121521b2d2679931,
20668 0x08de42eec43f2a5175f928f8a1812575d,
20669 0x0c3f57e712a7f8494e51b62d11573d9a0,
20670 -0x09287910d439c9bafd56bc8a6faf50cb3,
20671 0x07b494af9634c8f95bed2f50fcaf08dda,
20672 -0x0a150693d83af2e823dcc0765e4e331e2,
20673 });
20674
20675 try testArgs(@Vector(1, u129), .{
20676 0x1e51bd13747df8fae52f0471e9f1ad3f2,
20677 }, .{
20678 0x00aba9f2c80c71b1ed07201486ea44d00,
20679 });
20680 try testArgs(@Vector(2, u129), .{
20681 0x0c7967a19d13d4bd3f6ebfa0f8fdeab92,
20682 0x01614ee2c32757cc92e2efd97e94321a7,
20683 }, .{
20684 0x175803a2c0bf888bd01e2a5bae28e4523,
20685 0x07d05a98ec8f4e7e72aac2712bc09a23a,
20686 });
20687 try testArgs(@Vector(4, u129), .{
20688 0x1b18b768c5852bb1f0a7b34ceaeac4a0c,
20689 0x038fc1f995d9378fcf1043598810d7a56,
20690 0x06eebd77f9920e79932decf0f29ef658d,
20691 0x1f31a766145022050d0b16a4f5d06f1e3,
20692 }, .{
20693 0x033b20a528a722b6704bf5c8aea497e68,
20694 0x0ea05276fb8de4e77e4a8d4ef55f64bba,
20695 0x1c632cf252683b00faae6dcb7d73d8b90,
20696 0x11a7e1e98bb34fc7f5ed36c327476b122,
20697 });
20698 try testArgs(@Vector(8, u129), .{
20699 0x1b85991584b26492938854a6f6953b766,
20700 0x119472b0f4b7199f1267639f601833e3d,
20701 0x130d19e6ccfebce09c61c8c8fb526fec0,
20702 0x1379f4fa9d25e18ef5138c193b7ec9ef3,
20703 0x15fc62d9e21c2c0c63f9cab5ab0a8cf36,
20704 0x123ceb2a65f200a0b3e559c801bdbfa58,
20705 0x0e740ae3c7ab0cd24c5ff94d9367e3ebb,
20706 0x008c7dd67796949390355d866e4f171ef,
20707 }, .{
20708 0x0ffdda009048cf61476610425d5e55560,
20709 0x061bcb9d024d015891b5666e7b317cc84,
20710 0x060c013386fb8c129a3bd65b7909f2bc5,
20711 0x01c8efdd7ea806b1dc984c6183da53d8f,
20712 0x02fae7cee43d7f97448e82b907335bd45,
20713 0x0365e7cadcbd0a64decc1377339967c53,
20714 0x1a52793ba8a9689e1d7f5036e8cb613e1,
20715 0x1257d7cdd8f04058d285a5bce173b5262,
20716 });
20717
20718 try testArgs(@Vector(1, i191), .{
20719 -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d,
20720 }, .{
20721 0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512,
20722 });
20723 try testArgs(@Vector(2, i191), .{
20724 -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3,
20725 0x3f298efedf4269276db60344c2bed556ee25d24c5f887000,
20726 }, .{
20727 0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7,
20728 -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7,
20729 });
20730 try testArgs(@Vector(4, i191), .{
20731 -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7,
20732 -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef,
20733 0x1783dc9f0afa815051e6d338ef35da013e807da475815af5,
20734 0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916,
20735 }, .{
20736 0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd,
20737 0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29,
20738 0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86,
20739 0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546,
20740 });
20741 try testArgs(@Vector(8, i191), .{
20742 -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225,
20743 0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed,
20744 -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232,
20745 -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d,
20746 -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17,
20747 -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70,
20748 -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085,
20749 0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35,
20750 }, .{
20751 0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95,
20752 -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9,
20753 -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02,
20754 -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980,
20755 -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c,
20756 -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae,
20757 -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31,
20758 0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3,
20759 });
20760
20761 try testArgs(@Vector(1, u191), .{
20762 0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83,
20763 }, .{
20764 0x020334928f4583d332043b7aef15e832047dfd01b2933038,
20765 });
20766 try testArgs(@Vector(2, u191), .{
20767 0x67074e5315030f5c1a4d035100736de691b5589f6d349162,
20768 0x0e655397f96e3fd66b317294a37975d36478242fd6392259,
20769 }, .{
20770 0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf,
20771 0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd,
20772 });
20773 try testArgs(@Vector(4, u191), .{
20774 0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57,
20775 0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1,
20776 0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457,
20777 0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc,
20778 }, .{
20779 0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c,
20780 0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7,
20781 0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9,
20782 0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693,
20783 });
20784 try testArgs(@Vector(8, u191), .{
20785 0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca,
20786 0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052,
20787 0x7841b17a1c38e4066376e5ae204959c02c524635740a9013,
20788 0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77,
20789 0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788,
20790 0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e,
20791 0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3,
20792 0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a,
20793 }, .{
20794 0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614,
20795 0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc,
20796 0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90,
20797 0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7,
20798 0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1,
20799 0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434,
20800 0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2,
20801 0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934,
20802 });
20803
20804 try testArgs(@Vector(1, i192), .{
20805 0x5348bc83a6f352c931d06b9817458273408470e8ce312bef,
20806 }, .{
20807 -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d,
20808 });
20809 try testArgs(@Vector(2, i192), .{
20810 0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869,
20811 -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b,
20812 }, .{
20813 0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be,
20814 0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2,
20815 });
20816 try testArgs(@Vector(4, i192), .{
20817 -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf,
20818 -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f,
20819 0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc,
20820 0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce,
20821 }, .{
20822 0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06,
20823 0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993,
20824 -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255,
20825 0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114,
20826 });
20827 try testArgs(@Vector(8, i192), .{
20828 -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9,
20829 0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7,
20830 0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c,
20831 -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3,
20832 -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32,
20833 -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297,
20834 -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574,
20835 -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464,
20836 }, .{
20837 -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6,
20838 -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a,
20839 -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113,
20840 -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525,
20841 0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67,
20842 -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732,
20843 -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5,
20844 0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21,
20845 });
20846
20847 try testArgs(@Vector(1, u192), .{
20848 0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d,
20849 }, .{
20850 0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb,
20851 });
20852 try testArgs(@Vector(2, u192), .{
20853 0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2,
20854 0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d,
20855 }, .{
20856 0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0,
20857 0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e,
20858 });
20859 try testArgs(@Vector(4, u192), .{
20860 0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be,
20861 0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd,
20862 0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256,
20863 0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74,
20864 }, .{
20865 0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294,
20866 0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5,
20867 0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134,
20868 0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec,
20869 });
20870 try testArgs(@Vector(8, u192), .{
20871 0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066,
20872 0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099,
20873 0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4,
20874 0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3,
20875 0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7,
20876 0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a,
20877 0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb,
20878 0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e,
20879 }, .{
20880 0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d,
20881 0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e,
20882 0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b,
20883 0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9,
20884 0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09,
20885 0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d,
20886 0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c,
20887 0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1,
20888 });
20889
20890 try testArgs(@Vector(1, i193), .{
20891 -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66,
20892 }, .{
20893 0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5,
20894 });
20895 try testArgs(@Vector(2, i193), .{
20896 0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f,
20897 -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6,
20898 }, .{
20899 -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a,
20900 0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9,
20901 });
20902 try testArgs(@Vector(4, i193), .{
20903 -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac,
20904 -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda,
20905 0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a,
20906 -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72,
20907 }, .{
20908 0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d,
20909 0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199,
20910 -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a,
20911 -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f,
20912 });
20913 try testArgs(@Vector(8, i193), .{
20914 -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec,
20915 -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233,
20916 -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5,
20917 -0x065c502be097b15379af566a20c4ee93893718330c9a258ce,
20918 0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9,
20919 0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6,
20920 0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973,
20921 -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0,
20922 }, .{
20923 0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257,
20924 0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb,
20925 -0x060f3874a6f65b46738d0117db38b749aff45725000c06213,
20926 0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353,
20927 0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68,
20928 -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29,
20929 0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e,
20930 -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae,
20931 });
20932
20933 try testArgs(@Vector(1, u193), .{
20934 0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a,
20935 }, .{
20936 0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e,
20937 });
20938 try testArgs(@Vector(2, u193), .{
20939 0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c,
20940 0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947,
20941 }, .{
20942 0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20,
20943 0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac,
20944 });
20945 try testArgs(@Vector(4, u193), .{
20946 0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360,
20947 0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699,
20948 0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852,
20949 0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa,
20950 }, .{
20951 0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c,
20952 0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45,
20953 0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11,
20954 0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9,
20955 });
20956 try testArgs(@Vector(8, u193), .{
20957 0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3,
20958 0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b,
20959 0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece,
20960 0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1,
20961 0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921,
20962 0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361,
20963 0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f,
20964 0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0,
20965 }, .{
20966 0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b,
20967 0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa,
20968 0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82,
20969 0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b,
20970 0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7,
20971 0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100,
20972 0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa,
20973 0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e,
20974 });
20975
20976 try testArgs(@Vector(1, i255), .{
20977 -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11,
20978 }, .{
20979 -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625,
20980 });
20981 try testArgs(@Vector(2, i255), .{
20982 -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2,
20983 -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486,
20984 }, .{
20985 0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47,
20986 0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f,
20987 });
20988 try testArgs(@Vector(4, i255), .{
20989 -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4,
20990 0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1,
20991 0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a,
20992 0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d,
20993 }, .{
20994 0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd,
20995 0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6,
20996 0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a,
20997 -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68,
20998 });
20999
21000 try testArgs(@Vector(1, u255), .{
21001 0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9,
21002 }, .{
21003 0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381,
21004 });
21005 try testArgs(@Vector(2, u255), .{
21006 0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff,
21007 0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef,
21008 }, .{
21009 0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8,
21010 0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b,
21011 });
21012 try testArgs(@Vector(4, u255), .{
21013 0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982,
21014 0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626,
21015 0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4,
21016 0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce,
21017 }, .{
21018 0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61,
21019 0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36,
21020 0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49,
21021 0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7,
21022 });
21023
18608 try testArgs(@Vector(1, i256), .{21024 try testArgs(@Vector(1, i256), .{
18609 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce,21025 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce,
18610 }, .{21026 }, .{
...@@ -18653,6 +21069,80 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18653,6 +21069,80 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18653 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b,21069 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b,
18654 });21070 });
1865521071
21072 try testArgs(@Vector(1, i257), .{
21073 -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12,
21074 }, .{
21075 0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a,
21076 });
21077 try testArgs(@Vector(2, i257), .{
21078 -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3,
21079 -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01,
21080 }, .{
21081 0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9,
21082 -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1,
21083 });
21084 try testArgs(@Vector(4, i257), .{
21085 -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa,
21086 0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85,
21087 0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66,
21088 -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42,
21089 }, .{
21090 0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8,
21091 0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a,
21092 -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c,
21093 -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5,
21094 });
21095
21096 try testArgs(@Vector(1, u257), .{
21097 0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11,
21098 }, .{
21099 0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68,
21100 });
21101 try testArgs(@Vector(2, u257), .{
21102 0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9,
21103 0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98,
21104 }, .{
21105 0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb,
21106 0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6,
21107 });
21108 try testArgs(@Vector(4, u257), .{
21109 0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909,
21110 0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974,
21111 0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4,
21112 0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0,
21113 }, .{
21114 0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab,
21115 0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140,
21116 0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556,
21117 0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b,
21118 });
21119
21120 try testArgs(@Vector(1, i511), .{
21121 0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed,
21122 }, .{
21123 0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577,
21124 });
21125 try testArgs(@Vector(2, i511), .{
21126 0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268,
21127 0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4,
21128 }, .{
21129 -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1,
21130 -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854,
21131 });
21132
21133 try testArgs(@Vector(1, u511), .{
21134 0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10,
21135 }, .{
21136 0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84,
21137 });
21138 try testArgs(@Vector(2, u511), .{
21139 0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb,
21140 0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1,
21141 }, .{
21142 0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601,
21143 0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074,
21144 });
21145
18656 try testArgs(@Vector(1, i512), .{21146 try testArgs(@Vector(1, i512), .{
18657 -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2,21147 -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2,
18658 }, .{21148 }, .{
...@@ -18679,6 +21169,44 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18679,6 +21169,44 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18679 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90,21169 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90,
18680 });21170 });
1868121171
21172 try testArgs(@Vector(1, i513), .{
21173 0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b,
21174 }, .{
21175 -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808,
21176 });
21177 try testArgs(@Vector(2, i513), .{
21178 0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c,
21179 -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711,
21180 }, .{
21181 -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0,
21182 0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33,
21183 });
21184
21185 try testArgs(@Vector(1, u513), .{
21186 0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78,
21187 }, .{
21188 0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8,
21189 });
21190 try testArgs(@Vector(2, u513), .{
21191 0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e,
21192 0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e,
21193 }, .{
21194 0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef,
21195 0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723,
21196 });
21197
21198 try testArgs(@Vector(1, i1023), .{
21199 -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4,
21200 }, .{
21201 0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1,
21202 });
21203
21204 try testArgs(@Vector(1, u1023), .{
21205 0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0,
21206 }, .{
21207 0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209,
21208 });
21209
18682 try testArgs(@Vector(1, i1024), .{21210 try testArgs(@Vector(1, i1024), .{
18683 -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394,21211 -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394,
18684 }, .{21212 }, .{
...@@ -18690,6 +21218,18 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela...@@ -18690,6 +21218,18 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
18690 }, .{21218 }, .{
18691 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc,21219 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc,
18692 });21220 });
21221
21222 try testArgs(@Vector(1, i1025), .{
21223 -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18,
21224 }, .{
21225 -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081,
21226 });
21227
21228 try testArgs(@Vector(1, u1025), .{
21229 0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb,
21230 }, .{
21231 0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f,
21232 });
18693 }21233 }
18694 fn testFloatVectors() !void {21234 fn testFloatVectors() !void {
18695 @setEvalBranchQuota(21_700);21235 @setEvalBranchQuota(21_700);
...@@ -19096,6 +21636,15 @@ test addUnsafe {...@@ -19096,6 +21636,15 @@ test addUnsafe {
19096 try test_add_unsafe.testFloatVectors();21636 try test_add_unsafe.testFloatVectors();
19097}21637}
1909821638
21639inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
21640 return lhs +% rhs;
21641}
21642test addWrap {
21643 const test_add_wrap = binary(addWrap, .{});
21644 try test_add_wrap.testInts();
21645 try test_add_wrap.testIntVectors();
21646}
21647
19099inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {21648inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
19100 @setRuntimeSafety(false);21649 @setRuntimeSafety(false);
19101 switch (@typeInfo(Scalar(Type))) {21650 switch (@typeInfo(Scalar(Type))) {
...@@ -19116,6 +21665,15 @@ test subUnsafe {...@@ -19116,6 +21665,15 @@ test subUnsafe {
19116 try test_sub_unsafe.testFloatVectors();21665 try test_sub_unsafe.testFloatVectors();
19117}21666}
1911821667
21668inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
21669 return lhs -% rhs;
21670}
21671test subWrap {
21672 const test_sub_wrap = binary(subWrap, .{});
21673 try test_sub_wrap.testInts();
21674 try test_sub_wrap.testIntVectors();
21675}
21676
19119inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {21677inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
19120 @setRuntimeSafety(false);21678 @setRuntimeSafety(false);
19121 return @as(DoubleBits(Type), lhs) * rhs;21679 return @as(DoubleBits(Type), lhs) * rhs;