authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-01-30 22:06:18-05:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-01-31 23:09:36-05:00
logf0ac14ce97c4fa7f10ddd0d74a6dfade0a04cbc1
tree62c0e3cfebfb19f775063ba354e2870b7c282e34
parentb9531f5de6a36d016a551be68080a314b90eb154

x86_64: rewrite scalar `@intCast`


2 files changed, 2618 insertions(+), 2787 deletions(-)

src/arch/x86_64/CodeGen.zig+1074-396
......@@ -2499,7 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24992499 .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst),
25002500
25012501 .bitcast => try cg.airBitCast(inst),
2502 .intcast => try cg.airIntCast(inst),
25032502 .trunc => try cg.airTrunc(inst),
25042503 .is_non_null => try cg.airIsNonNull(inst),
25052504 .is_null => try cg.airIsNull(inst),
......@@ -2589,7 +2588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25892588 },
25902589 .dst_temps = .{.{ .rc = .general_purpose }},
25912590 .each = .{ .once = &.{
2592 .{ ._, ._, .lea, .dst0p, .leaa(.none, .src0, .add_src0_elem_size_times_src1), ._, ._ },
2591 .{ ._, ._, .lea, .dst0p, .leaa(.src0, .add_src0_elem_size_times_src1), ._, ._ },
25932592 } },
25942593 }, .{
25952594 .dst_constraints = .{.{ .elem_size_is = 1 }},
......@@ -2598,7 +2597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25982597 },
25992598 .dst_temps = .{.{ .rc = .general_purpose }},
26002599 .each = .{ .once = &.{
2601 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ },
2600 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
26022601 } },
26032602 }, .{
26042603 .dst_constraints = .{.{ .elem_size_is = 2 }},
......@@ -2607,7 +2606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26072606 },
26082607 .dst_temps = .{.{ .rc = .general_purpose }},
26092608 .each = .{ .once = &.{
2610 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"2", .src1), ._, ._ },
2609 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ },
26112610 } },
26122611 }, .{
26132612 .dst_constraints = .{.{ .elem_size_is = 2 + 1 }},
......@@ -2616,8 +2615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26162615 },
26172616 .dst_temps = .{.{ .rc = .general_purpose }},
26182617 .each = .{ .once = &.{
2619 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"2", .src1), ._, ._ },
2620 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2618 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ },
2619 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
26212620 } },
26222621 }, .{
26232622 .dst_constraints = .{.{ .elem_size_is = 4 }},
......@@ -2626,7 +2625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26262625 },
26272626 .dst_temps = .{.{ .rc = .general_purpose }},
26282627 .each = .{ .once = &.{
2629 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"4", .src1), ._, ._ },
2628 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ },
26302629 } },
26312630 }, .{
26322631 .dst_constraints = .{.{ .elem_size_is = 4 + 1 }},
......@@ -2635,8 +2634,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26352634 },
26362635 .dst_temps = .{.{ .ref = .src1 }},
26372636 .each = .{ .once = &.{
2638 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"4", .src1), ._, ._ },
2639 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2637 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ },
2638 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
26402639 } },
26412640 }, .{
26422641 .required_features = .{ .@"64bit", null, null, null },
......@@ -2646,7 +2645,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26462645 },
26472646 .dst_temps = .{.{ .rc = .general_purpose }},
26482647 .each = .{ .once = &.{
2649 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"8", .src1), ._, ._ },
2648 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ },
26502649 } },
26512650 }, .{
26522651 .required_features = .{ .@"64bit", null, null, null },
......@@ -2656,8 +2655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26562655 },
26572656 .dst_temps = .{.{ .ref = .src1 }},
26582657 .each = .{ .once = &.{
2659 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"8", .src1), ._, ._ },
2660 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2658 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ },
2659 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
26612660 } },
26622661 }, .{
26632662 .dst_constraints = .{.po2_elem_size},
......@@ -2668,7 +2667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26682667 .clobbers = .{ .eflags = true },
26692668 .each = .{ .once = &.{
26702669 .{ ._, ._l, .sh, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ },
2671 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ },
2670 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
26722671 } },
26732672 }, .{
26742673 .patterns = &.{
......@@ -2678,7 +2677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26782677 .clobbers = .{ .eflags = true },
26792678 .each = .{ .once = &.{
26802679 .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .add_src0_elem_size), ._ },
2681 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2680 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
26822681 } },
26832682 } }) catch |err| switch (err) {
26842683 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
......@@ -2705,7 +2704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27052704 },
27062705 .dst_temps = .{.{ .rc = .general_purpose }},
27072706 .each = .{ .once = &.{
2708 .{ ._, ._, .lea, .dst0p, .leaa(.none, .src0, .sub_src0_elem_size_times_src1), ._, ._ },
2707 .{ ._, ._, .lea, .dst0p, .leaa(.src0, .sub_src0_elem_size_times_src1), ._, ._ },
27092708 } },
27102709 }, .{
27112710 .dst_constraints = .{.{ .elem_size_is = 1 }},
......@@ -2716,7 +2715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27162715 .clobbers = .{ .eflags = true },
27172716 .each = .{ .once = &.{
27182717 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
2719 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ },
2718 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
27202719 } },
27212720 }, .{
27222721 .dst_constraints = .{.{ .elem_size_is = 2 }},
......@@ -2727,7 +2726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27272726 .clobbers = .{ .eflags = true },
27282727 .each = .{ .once = &.{
27292728 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
2730 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"2", .src1), ._, ._ },
2729 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ },
27312730 } },
27322731 }, .{
27332732 .dst_constraints = .{.{ .elem_size_is = 2 + 1 }},
......@@ -2737,9 +2736,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27372736 .dst_temps = .{.{ .rc = .general_purpose }},
27382737 .clobbers = .{ .eflags = true },
27392738 .each = .{ .once = &.{
2740 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"2", .src1), ._, ._ },
2739 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ },
27412740 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
2742 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2741 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
27432742 } },
27442743 }, .{
27452744 .dst_constraints = .{.{ .elem_size_is = 4 }},
......@@ -2750,7 +2749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27502749 .clobbers = .{ .eflags = true },
27512750 .each = .{ .once = &.{
27522751 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
2753 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"4", .src1), ._, ._ },
2752 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ },
27542753 } },
27552754 }, .{
27562755 .dst_constraints = .{.{ .elem_size_is = 4 + 1 }},
......@@ -2760,9 +2759,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27602759 .dst_temps = .{.{ .rc = .general_purpose }},
27612760 .clobbers = .{ .eflags = true },
27622761 .each = .{ .once = &.{
2763 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"4", .src1), ._, ._ },
2762 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ },
27642763 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
2765 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2764 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
27662765 } },
27672766 }, .{
27682767 .required_features = .{ .@"64bit", null, null, null },
......@@ -2774,7 +2773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27742773 .clobbers = .{ .eflags = true },
27752774 .each = .{ .once = &.{
27762775 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
2777 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"8", .src1), ._, ._ },
2776 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ },
27782777 } },
27792778 }, .{
27802779 .required_features = .{ .@"64bit", null, null, null },
......@@ -2785,9 +2784,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27852784 .dst_temps = .{.{ .rc = .general_purpose }},
27862785 .clobbers = .{ .eflags = true },
27872786 .each = .{ .once = &.{
2788 .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"8", .src1), ._, ._ },
2787 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ },
27892788 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
2790 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2789 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
27912790 } },
27922791 }, .{
27932792 .dst_constraints = .{.po2_elem_size},
......@@ -2799,7 +2798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27992798 .each = .{ .once = &.{
28002799 .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ },
28012800 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
2802 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ },
2801 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
28032802 } },
28042803 }, .{
28052804 .patterns = &.{
......@@ -2809,7 +2808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
28092808 .clobbers = .{ .eflags = true },
28102809 .each = .{ .once = &.{
28112810 .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ },
2812 .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ },
2811 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
28132812 } },
28142813 } }) catch |err| switch (err) {
28152814 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
......@@ -4540,7 +4539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45404539 .dst_temps = .{.{ .rc = .sse }},
45414540 .each = .{ .once = &.{
45424541 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
4543 .{ ._, ._dqa, .mov, .dst0x, .lea(.xword, .tmp0), ._, ._ },
4542 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
45444543 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
45454544 .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ },
45464545 .{ ._, .p_, .xor, .tmp2x, .src1x, ._, ._ },
......@@ -4678,7 +4677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46784677 .clobbers = .{ .eflags = true },
46794678 .each = .{ .once = &.{
46804679 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
4681 .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
4680 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
46824681 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
46834682 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
46844683 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
......@@ -4997,7 +4996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49974996 .dst_temps = .{.{ .rc = .sse }},
49984997 .each = .{ .once = &.{
49994998 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5000 .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
4999 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
50015000 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
50025001 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },
50035002 .{ ._, .vp_q, .cmpgt, .dst0x, .tmp2x, .dst0x, ._ },
......@@ -5028,7 +5027,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50285027 .dst_temps = .{.{ .ref = .src0 }},
50295028 .each = .{ .once = &.{
50305029 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5031 .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
5030 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
50325031 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
50335032 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
50345033 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },
......@@ -5060,7 +5059,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50605059 .dst_temps = .{.{ .rc = .sse }},
50615060 .each = .{ .once = &.{
50625061 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5063 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ },
5062 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
50645063 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
50655064 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
50665065 .{ ._, .vp_q, .cmpgt, .dst0y, .tmp2y, .dst0y, ._ },
......@@ -5090,7 +5089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50905089 .clobbers = .{ .eflags = true },
50915090 .each = .{ .once = &.{
50925091 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5093 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ },
5092 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
50945093 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
50955094 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
50965095 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
......@@ -5126,7 +5125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
51265125 .clobbers = .{ .eflags = true },
51275126 .each = .{ .once = &.{
51285127 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5129 .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
5128 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
51305129 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
51315130 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
51325131 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
......@@ -5162,7 +5161,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
51625161 .clobbers = .{ .eflags = true },
51635162 .each = .{ .once = &.{
51645163 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
5165 .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
5164 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
51665165 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
51675166 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },
51685167 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },
......@@ -5264,7 +5263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
52645263 .{ ._, ._c, .cl, ._, ._, ._, ._ },
52655264 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
52665265 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
5267 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
5266 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
52685267 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
52695268 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
52705269 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
......@@ -5303,7 +5302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
53035302 .{ ._, ._c, .cl, ._, ._, ._, ._ },
53045303 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
53055304 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
5306 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
5305 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
53075306 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
53085307 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
53095308 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
......@@ -5342,7 +5341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
53425341 .{ ._, ._c, .cl, ._, ._, ._, ._ },
53435342 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
53445343 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
5345 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
5344 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
53465345 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
53475346 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
53485347 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },
......@@ -5379,7 +5378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
53795378 .{ ._, ._c, .cl, ._, ._, ._, ._ },
53805379 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
53815380 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
5382 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
5381 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
53835382 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
53845383 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
53855384 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },
......@@ -8380,7 +8379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83808379 .dst_temps = .{.{ .rc = .sse }},
83818380 .each = .{ .once = &.{
83828381 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8383 .{ ._, ._dqa, .mov, .dst0x, .lea(.xword, .tmp0), ._, ._ },
8382 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
83848383 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
83858384 .{ ._, .p_, .xor, .dst0x, .src1x, ._, ._ },
83868385 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
......@@ -8518,7 +8517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
85188517 .clobbers = .{ .eflags = true },
85198518 .each = .{ .once = &.{
85208519 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8521 .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
8520 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
85228521 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
85238522 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
85248523 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
......@@ -8841,7 +8840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
88418840 .dst_temps = .{.{ .rc = .sse }},
88428841 .each = .{ .once = &.{
88438842 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8844 .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
8843 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
88458844 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
88468845 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },
88478846 .{ ._, .vp_q, .cmpgt, .dst0x, .dst0x, .tmp2x, ._ },
......@@ -8872,7 +8871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
88728871 .dst_temps = .{.{ .ref = .src0 }},
88738872 .each = .{ .once = &.{
88748873 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8875 .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
8874 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
88768875 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
88778876 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
88788877 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },
......@@ -8904,7 +8903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89048903 .dst_temps = .{.{ .rc = .sse }},
89058904 .each = .{ .once = &.{
89068905 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8907 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ },
8906 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
89088907 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
89098908 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
89108909 .{ ._, .vp_q, .cmpgt, .dst0y, .dst0y, .tmp2y, ._ },
......@@ -8934,7 +8933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89348933 .clobbers = .{ .eflags = true },
89358934 .each = .{ .once = &.{
89368935 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8937 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ },
8936 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
89388937 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
89398938 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
89408939 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
......@@ -8970,7 +8969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89708969 .clobbers = .{ .eflags = true },
89718970 .each = .{ .once = &.{
89728971 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
8973 .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
8972 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
89748973 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
89758974 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
89768975 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
......@@ -9006,7 +9005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
90069005 .clobbers = .{ .eflags = true },
90079006 .each = .{ .once = &.{
90089007 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9009 .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ },
9008 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
90109009 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
90119010 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },
90129011 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },
......@@ -9108,7 +9107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
91089107 .{ ._, ._c, .cl, ._, ._, ._, ._ },
91099108 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
91109109 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
9111 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
9110 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
91129111 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
91139112 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
91149113 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
......@@ -9147,7 +9146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
91479146 .{ ._, ._c, .cl, ._, ._, ._, ._ },
91489147 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
91499148 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
9150 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
9149 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
91519150 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
91529151 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
91539152 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
......@@ -9186,7 +9185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
91869185 .{ ._, ._c, .cl, ._, ._, ._, ._ },
91879186 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
91889187 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
9189 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
9188 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
91909189 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
91919190 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
91929191 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },
......@@ -9223,7 +9222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
92239222 .{ ._, ._c, .cl, ._, ._, ._, ._ },
92249223 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
92259224 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
9226 .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ },
9225 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
92279226 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
92289227 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
92299228 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ },
......@@ -10997,7 +10996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1099710996 .dst_temps = .{.{ .ref = .src0 }},
1099810997 .each = .{ .once = &.{
1099910998 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11000 .{ ._, .p_, .xor, .dst0q, .lea(.qword, .tmp0), ._, ._ },
10999 .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ },
1100111000 } },
1100211001 }, .{
1100311002 .required_features = .{ .avx, null, null, null },
......@@ -11031,7 +11030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1103111030 .dst_temps = .{.{ .rc = .sse }},
1103211031 .each = .{ .once = &.{
1103311032 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11034 .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.xword, .tmp0), ._ },
11033 .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ },
1103511034 } },
1103611035 }, .{
1103711036 .required_features = .{ .sse2, null, null, null },
......@@ -11065,7 +11064,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1106511064 .dst_temps = .{.{ .ref = .src0 }},
1106611065 .each = .{ .once = &.{
1106711066 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11068 .{ ._, .p_, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ },
11067 .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
1106911068 } },
1107011069 }, .{
1107111070 .required_features = .{ .sse, null, null, null },
......@@ -11087,7 +11086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1108711086 .dst_temps = .{.{ .ref = .src0 }},
1108811087 .each = .{ .once = &.{
1108911088 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11090 .{ ._, ._ps, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ },
11089 .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
1109111090 } },
1109211091 }, .{
1109311092 .required_features = .{ .avx2, null, null, null },
......@@ -11121,7 +11120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1112111120 .dst_temps = .{.{ .rc = .sse }},
1112211121 .each = .{ .once = &.{
1112311122 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11124 .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
11123 .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ },
1112511124 } },
1112611125 }, .{
1112711126 .required_features = .{ .avx, null, null, null },
......@@ -11155,7 +11154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1115511154 .dst_temps = .{.{ .rc = .sse }},
1115611155 .each = .{ .once = &.{
1115711156 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11158 .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
11157 .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ },
1115911158 } },
1116011159 }, .{
1116111160 .required_features = .{ .avx2, null, null, null },
......@@ -11812,7 +11811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1181211811 .dst_temps = .{.{ .ref = .src0 }},
1181311812 .each = .{ .once = &.{
1181411813 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11815 .{ ._, .p_, .xor, .dst0q, .lea(.qword, .tmp0), ._, ._ },
11814 .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ },
1181611815 } },
1181711816 }, .{
1181811817 .required_features = .{ .avx, null, null, null },
......@@ -11846,7 +11845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1184611845 .dst_temps = .{.{ .rc = .sse }},
1184711846 .each = .{ .once = &.{
1184811847 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11849 .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.xword, .tmp0), ._ },
11848 .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ },
1185011849 } },
1185111850 }, .{
1185211851 .required_features = .{ .sse2, null, null, null },
......@@ -11880,7 +11879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1188011879 .dst_temps = .{.{ .ref = .src0 }},
1188111880 .each = .{ .once = &.{
1188211881 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11883 .{ ._, .p_, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ },
11882 .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
1188411883 } },
1188511884 }, .{
1188611885 .required_features = .{ .sse, null, null, null },
......@@ -11902,7 +11901,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1190211901 .dst_temps = .{.{ .ref = .src0 }},
1190311902 .each = .{ .once = &.{
1190411903 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11905 .{ ._, ._ps, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ },
11904 .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ },
1190611905 } },
1190711906 }, .{
1190811907 .required_features = .{ .avx2, null, null, null },
......@@ -11936,7 +11935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1193611935 .dst_temps = .{.{ .rc = .sse }},
1193711936 .each = .{ .once = &.{
1193811937 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11939 .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
11938 .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ },
1194011939 } },
1194111940 }, .{
1194211941 .required_features = .{ .avx, null, null, null },
......@@ -11970,7 +11969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1197011969 .dst_temps = .{.{ .rc = .sse }},
1197111970 .each = .{ .once = &.{
1197211971 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
11973 .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
11972 .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ },
1197411973 } },
1197511974 }, .{
1197611975 .required_features = .{ .@"64bit", null, null, null },
......@@ -11993,9 +11992,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1199311992 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1199411993 .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ },
1199511994 .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp0), ._, ._ },
11996 .{ ._, ._, .xor, .tmp2q, .leai(.qword, .tmp1, .tmp0), ._, ._ },
11995 .{ ._, ._, .xor, .tmp2q, .leai(.tmp1q, .tmp0), ._, ._ },
1199711996 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
11998 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 8), ._, ._ },
11997 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 8), ._, ._ },
1199911998 .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ },
1200011999 .{ ._, ._b, .j, .@"0b", ._, ._, ._ },
1200112000 } },
......@@ -12019,9 +12018,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1201912018 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1202012019 .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ },
1202112020 .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp0), ._, ._ },
12022 .{ ._, ._, .xor, .tmp2d, .leai(.dword, .tmp1, .tmp0), ._, ._ },
12021 .{ ._, ._, .xor, .tmp2d, .leai(.tmp1d, .tmp0), ._, ._ },
1202312022 .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp2d, ._, ._ },
12024 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 4), ._, ._ },
12023 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 4), ._, ._ },
1202512024 .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ },
1202612025 .{ ._, ._b, .j, .@"0b", ._, ._, ._ },
1202712026 } },
......@@ -13161,7 +13160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1316113160 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1316213161 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1316313162 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13164 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13163 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1316513164 } },
1316613165 }, .{
1316713166 .required_features = .{ .@"64bit", .lzcnt, null, null },
......@@ -13190,7 +13189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1319013189 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1319113190 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1319213191 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13193 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13192 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1319413193 } },
1319513194 }, .{
1319613195 .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null },
......@@ -13220,7 +13219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1322013219 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1322113220 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
1322213221 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13223 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13222 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1322413223 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1322513224 } },
1322613225 }, .{
......@@ -13250,7 +13249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1325013249 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
1325113250 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1325213251 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13253 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13252 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1325413253 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1325513254 } },
1325613255 }, .{
......@@ -13281,7 +13280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1328113280 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1328213281 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1328313282 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13284 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13283 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1328513284 } },
1328613285 }, .{
1328713286 .required_features = .{ .@"64bit", .lzcnt, null, null },
......@@ -13310,7 +13309,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1331013309 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1331113310 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1331213311 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13313 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13312 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1331413313 } },
1331513314 }, .{
1331613315 .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null },
......@@ -13340,7 +13339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1334013339 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1334113340 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
1334213341 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13343 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13342 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1334413343 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1334513344 } },
1334613345 }, .{
......@@ -13370,7 +13369,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1337013369 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
1337113370 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1337213371 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13373 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13372 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1337413373 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1337513374 } },
1337613375 }, .{
......@@ -13404,7 +13403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1340413403 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1340513404 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1340613405 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13407 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13406 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1340813407 } },
1340913408 }, .{
1341013409 .required_features = .{ .@"64bit", .lzcnt, null, null },
......@@ -13436,7 +13435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1343613435 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1343713436 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1343813437 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13439 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13438 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1344013439 } },
1344113440 }, .{
1344213441 .required_features = .{ .@"64bit", null, null, null },
......@@ -13467,7 +13466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1346713466 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
1346813467 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1346913468 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13470 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13469 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1347113470 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1347213471 } },
1347313472 }, .{
......@@ -13501,7 +13500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1350113500 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1350213501 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1350313502 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13504 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13503 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1350513504 } },
1350613505 }, .{
1350713506 .required_features = .{ .@"64bit", .lzcnt, null, null },
......@@ -13533,7 +13532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1353313532 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1353413533 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
1353513534 .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
13536 .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
13535 .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
1353713536 } },
1353813537 }, .{
1353913538 .required_features = .{ .@"64bit", null, null, null },
......@@ -13564,7 +13563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1356413563 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
1356513564 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1356613565 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
13567 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
13566 .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
1356813567 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
1356913568 } },
1357013569 }, .{
......@@ -14581,7 +14580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1458114580 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1458214581 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1458314582 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14584 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14583 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1458514584 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
1458614585 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1458714586 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
......@@ -14590,9 +14589,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1459014589 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1459114590 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1459214591 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14593 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14592 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1459414593 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14595 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14594 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1459614595 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1459714596 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1459814597 } },
......@@ -14621,7 +14620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1462114620 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1462214621 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1462314622 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14624 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14623 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1462514624 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1462614625 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
1462714626 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
......@@ -14629,9 +14628,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1462914628 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1463014629 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1463114630 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14632 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14631 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1463314632 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14634 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14633 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1463514634 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1463614635 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1463714636 } },
......@@ -14660,17 +14659,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1466014659 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1466114660 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1466214661 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14663 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14662 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1466414663 .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
1466514664 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1466614665 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
1466714666 .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
1466814667 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1466914668 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
14670 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
14669 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
1467114670 .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
1467214671 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14673 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14672 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1467414673 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1467514674 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1467614675 } },
......@@ -14699,7 +14698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1469914698 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1470014699 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1470114700 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14702 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14701 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1470314702 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
1470414703 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1470514704 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
......@@ -14708,9 +14707,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1470814707 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1470914708 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1471014709 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14711 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14710 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1471214711 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14713 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14712 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1471414713 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1471514714 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1471614715 } },
......@@ -14739,7 +14738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1473914738 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1474014739 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1474114740 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14742 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14741 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1474314742 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1474414743 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
1474514744 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
......@@ -14747,9 +14746,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1474714746 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1474814747 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1474914748 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14750 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14749 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1475114750 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14752 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14751 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1475314752 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1475414753 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1475514754 } },
......@@ -14778,17 +14777,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1477814777 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1477914778 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1478014779 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14781 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14780 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1478214781 .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
1478314782 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1478414783 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
1478514784 .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
1478614785 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1478714786 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
14788 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
14787 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
1478914788 .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
1479014789 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
14791 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14790 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1479214791 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1479314792 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1479414793 } },
......@@ -14817,7 +14816,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1481714816 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1481814817 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1481914818 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14820 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14819 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1482114820 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
1482214821 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1482314822 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
......@@ -14826,9 +14825,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1482614825 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1482714826 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1482814827 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14829 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14828 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1483014829 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
14831 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14830 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1483214831 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1483314832 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1483414833 } },
......@@ -14857,7 +14856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1485714856 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1485814857 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1485914858 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14860 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14859 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1486114860 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1486214861 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
1486314862 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
......@@ -14865,9 +14864,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1486514864 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1486614865 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1486714866 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14868 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14867 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1486914868 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
14870 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14869 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1487114870 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1487214871 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1487314872 } },
......@@ -14896,17 +14895,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1489614895 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1489714896 .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
1489814897 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14899 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14898 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1490014899 .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
1490114900 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1490214901 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
1490314902 .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
1490414903 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1490514904 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
14906 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
14905 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
1490714906 .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
1490814907 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
14909 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14908 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1491014909 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1491114910 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1491214911 } },
......@@ -14935,7 +14934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1493514934 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1493614935 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1493714936 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14938 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14937 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1493914938 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
1494014939 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1494114940 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
......@@ -14944,9 +14943,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1494414943 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1494514944 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1494614945 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14947 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14946 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1494814947 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
14949 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14948 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1495014949 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1495114950 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1495214951 } },
......@@ -14975,7 +14974,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1497514974 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1497614975 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1497714976 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
14978 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
14977 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1497914978 .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
1498014979 .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
1498114980 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
......@@ -14983,9 +14982,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1498314982 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1498414983 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
1498514984 .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
14986 .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
14985 .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
1498714986 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
14988 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
14987 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1498914988 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1499014989 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1499114990 } },
......@@ -15014,17 +15013,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1501415013 .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
1501515014 .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
1501615015 .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
15017 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ },
15016 .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
1501815017 .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
1501915018 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1502015019 .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
1502115020 .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
1502215021 .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
1502315022 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
15024 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
15023 .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
1502515024 .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
1502615025 .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
15027 .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ },
15026 .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
1502815027 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
1502915028 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1503015029 } },
......@@ -15524,7 +15523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1552415523 .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
1552515524 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1552615525 .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ },
15527 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15526 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1552815527 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1552915528 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1553015529 },
......@@ -15536,7 +15535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1553615535 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1553715536 .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
1553815537 .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ },
15539 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15538 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1554015539 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1554115540 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1554215541 },
......@@ -15570,7 +15569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1557015569 .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ },
1557115570 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1557215571 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15573 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15572 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1557415573 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1557515574 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1557615575 },
......@@ -15583,7 +15582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1558315582 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1558415583 .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
1558515584 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15586 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15585 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1558715586 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1558815587 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1558915588 },
......@@ -15616,7 +15615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1561615615 .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
1561715616 .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1561815617 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
15619 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
15618 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1562015619 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1562115620 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1562215621 },
......@@ -15628,7 +15627,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1562815627 .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
1562915628 .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
1563015629 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
15631 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
15630 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1563215631 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1563315632 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1563415633 },
......@@ -15663,7 +15662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1566315662 .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ },
1566415663 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1566515664 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15666 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15665 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1566715666 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1566815667 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1566915668 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15687,7 +15686,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1568715686 .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ },
1568815687 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1568915688 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15690 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15689 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1569115690 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1569215691 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1569315692 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15730,7 +15729,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1573015729 .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ },
1573115730 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1573215731 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15733 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15732 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1573415733 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1573515734 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1573615735 },
......@@ -15742,7 +15741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1574215741 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1574315742 .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
1574415743 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15745 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15744 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1574615745 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1574715746 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1574815747 },
......@@ -15776,7 +15775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1577615775 .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ },
1577715776 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1577815777 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
15779 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
15778 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1578015779 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1578115780 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1578215781 },
......@@ -15789,7 +15788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1578915788 .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1579015789 .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
1579115790 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
15792 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
15791 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1579315792 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1579415793 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1579515794 },
......@@ -15824,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1582415823 .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
1582515824 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1582615825 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15827 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15826 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1582815827 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1582915828 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1583015829 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15848,7 +15847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1584815847 .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ },
1584915848 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1585015849 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15851 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
15850 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1585215851 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1585315852 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1585415853 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15893,7 +15892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1589315892 .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
1589415893 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1589515894 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15896 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15895 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1589715896 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1589815897 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1589915898 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15917,7 +15916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1591715916 .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ },
1591815917 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1591915918 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
15920 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15919 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1592115920 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1592215921 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1592315922 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -15960,7 +15959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1596015959 .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
1596115960 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1596215961 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15963 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15962 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1596415963 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1596515964 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1596615965 },
......@@ -15972,7 +15971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1597215971 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1597315972 .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
1597415973 .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
15975 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
15974 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1597615975 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1597715976 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1597815977 },
......@@ -16006,7 +16005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1600616005 .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ },
1600716006 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1600816007 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
16009 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
16008 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1601016009 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1601116010 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1601216011 },
......@@ -16019,7 +16018,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1601916018 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
1602016019 .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
1602116020 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
16022 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
16021 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1602316022 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1602416023 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1602516024 },
......@@ -16054,7 +16053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1605416053 .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
1605516054 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1605616055 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
16057 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
16056 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1605816057 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1605916058 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1606016059 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -16078,7 +16077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1607816077 .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ },
1607916078 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1608016079 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
16081 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
16080 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1608216081 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1608316082 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1608416083 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -16123,7 +16122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1612316122 .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
1612416123 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1612516124 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
16126 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
16125 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1612716126 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1612816127 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1612916128 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -16147,7 +16146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1614716146 .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ },
1614816147 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1614916148 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
16150 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
16149 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1615116150 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1615216151 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1615316152 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -16190,7 +16189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1619016189 .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
1619116190 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
1619216191 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
16193 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
16192 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1619416193 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
1619516194 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1619616195 },
......@@ -16202,7 +16201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1620216201 .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
1620316202 .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
1620416203 .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
16205 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
16204 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1620616205 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
1620716206 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1620816207 },
......@@ -16239,7 +16238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1623916238 .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
1624016239 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1624116240 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
16242 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
16241 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1624316242 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1624416243 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1624516244 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -16265,7 +16264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1626516264 .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ },
1626616265 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1626716266 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
16268 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
16267 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1626916268 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1627016269 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1627116270 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -16313,7 +16312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1631316312 .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
1631416313 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1631516314 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
16316 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
16315 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1631716316 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1631816317 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1631916318 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -16340,7 +16339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1634016339 .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ },
1634116340 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1634216341 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
16343 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
16342 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1634416343 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1634516344 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1634616345 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -17281,8 +17280,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1728117280 .ne => .neq,
1728217281 }) },
1728317282 .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ },
17284 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ },
17285 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
17283 .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ },
17284 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1728617285 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1728717286 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1728817287 } },
......@@ -17319,7 +17318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1731917318 .ne => .neq,
1732017319 }) },
1732117320 .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ },
17322 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ },
17321 .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ },
1732317322 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },
1732417323 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1732517324 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
......@@ -17642,7 +17641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1764217641 .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ },
1764317642 .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ },
1764417643 .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ },
17645 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ },
17644 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ },
1764617645 .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ },
1764717646 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1764817647 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
......@@ -17751,7 +17750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1775117750 .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ },
1775217751 .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ },
1775317752 .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ },
17754 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ },
17753 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ },
1775517754 .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ },
1775617755 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1775717756 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
......@@ -17863,7 +17862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1786317862 .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ },
1786417863 .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ },
1786517864 .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ },
17866 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ },
17865 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ },
1786717866 .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ },
1786817867 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1786917868 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
......@@ -17966,8 +17965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1796617965 .ne => .neq,
1796717966 }) },
1796817967 .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ },
17969 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ },
17970 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
17968 .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ },
17969 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1797117970 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1797217971 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1797317972 } },
......@@ -18003,7 +18002,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1800318002 .ne => .neq,
1800418003 }) },
1800518004 .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ },
18006 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ },
18005 .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ },
1800718006 .{ ._, ._c, .in, .tmp1q, ._, ._, ._ },
1800818007 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1800918008 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
......@@ -18048,8 +18047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1804818047 .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ },
1804918048 .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ },
1805018049 .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ },
18051 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ },
18052 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
18050 .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ },
18051 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1805318052 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1805418053 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1805518054 } },
......@@ -18094,8 +18093,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1809418093 .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ },
1809518094 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
1809618095 .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ },
18097 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ },
18098 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
18096 .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ },
18097 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1809918098 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1810018099 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1810118100 } },
......@@ -18134,8 +18133,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1813418133 .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ },
1813518134 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
1813618135 .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ },
18137 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ },
18138 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
18136 .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ },
18137 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1813918138 .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
1814018139 .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .vp(switch (cc) {
1814118140 else => unreachable,
......@@ -18145,7 +18144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1814518144 .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ },
1814618145 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
1814718146 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18148 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ },
18147 .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ },
1814918148 } },
1815018149 }, .{
1815118150 .required_features = .{ .avx, .slow_incdec, null, null },
......@@ -18188,8 +18187,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1818818187 .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ },
1818918188 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
1819018189 .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ },
18191 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ },
18192 .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ },
18190 .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ },
18191 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ },
1819318192 .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ },
1819418193 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1819518194 } },
......@@ -18234,7 +18233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1823418233 .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ },
1823518234 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
1823618235 .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ },
18237 .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ },
18236 .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ },
1823818237 .{ ._, ._c, .in, .tmp1q, ._, ._, ._ },
1823918238 .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ },
1824018239 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
......@@ -18274,7 +18273,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1827418273 .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ },
1827518274 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1827618275 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
18277 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
18276 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ },
1827818277 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1827918278 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1828018279 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -18323,7 +18322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1832318322 .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ },
1832418323 .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
1832518324 .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
18326 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
18325 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ },
1832718326 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1832818327 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1832918328 .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
......@@ -18382,7 +18381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1838218381 }, .tmp3b, .tmp4b, ._, ._ },
1838318382 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1838418383 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
18385 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18384 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1838618385 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1838718386 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1838818387 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -18550,7 +18549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1855018549 }, .tmp3b, .tmp4b, ._, ._ },
1855118550 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
1855218551 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
18553 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18552 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1855418553 .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ },
1855518554 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1855618555 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
......@@ -18714,7 +18713,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1871418713 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
1871518714 .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ },
1871618715 .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ },
18717 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18716 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1871818717 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1871918718 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1872018719 } },
......@@ -18804,7 +18803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1880418803 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
1880518804 .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ },
1880618805 .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ },
18807 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18806 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1880818807 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1880918808 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1881018809 } },
......@@ -18894,7 +18893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1889418893 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
1889518894 .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ },
1889618895 .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ },
18897 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18896 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1889818897 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
1889918898 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
1890018899 } },
......@@ -18983,7 +18982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1898318982 .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ },
1898418983 .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ },
1898518984 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
18986 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
18985 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1898718986 .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ },
1898818987 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1898918988 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
......@@ -19091,7 +19090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1909119090 .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ },
1909219091 .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ },
1909319092 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
19094 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
19093 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1909519094 .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ },
1909619095 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1909719096 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
......@@ -19199,7 +19198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
1919919198 .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ },
1920019199 .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ },
1920119200 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
19202 .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
19201 .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ },
1920319202 .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ },
1920419203 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
1920519204 .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ },
......@@ -20245,7 +20244,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2024520244 .{ ._, ._, .sbb, .tmp4q, .tmp2q, ._, ._ },
2024620245 .{ ._, ._c, .set, .tmp3b, ._, ._, ._ },
2024720246 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ },
20248 .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 8), ._, ._ },
20247 .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 8), ._, ._ },
2024920248 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
2025020249 .{ ._, ._a, .j, .@"1b", ._, ._, ._ },
2025120250 .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ },
......@@ -20271,7 +20270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2027120270 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2027220271 .each = .{ .once = &.{
2027320272 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20274 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ },
20273 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
2027520274 } },
2027620275 }, .{
2027720276 .required_features = .{ .sse, null, null, null },
......@@ -20293,7 +20292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2029320292 .dst_temps = .{.{ .ref = .src0 }},
2029420293 .each = .{ .once = &.{
2029520294 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20296 .{ ._, ._ps, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ },
20295 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
2029720296 } },
2029820297 }, .{
2029920298 .required_features = .{ .avx, null, null, null },
......@@ -20315,7 +20314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2031520314 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2031620315 .each = .{ .once = &.{
2031720316 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20318 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
20317 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
2031920318 } },
2032020319 }, .{
2032120320 .required_features = .{ .avx, null, null, null },
......@@ -20337,7 +20336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2033720336 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2033820337 .each = .{ .once = &.{
2033920338 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20340 .{ ._, .v_pd, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ },
20339 .{ ._, .v_pd, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
2034120340 } },
2034220341 }, .{
2034320342 .required_features = .{ .sse2, null, null, null },
......@@ -20359,7 +20358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2035920358 .dst_temps = .{.{ .ref = .src0 }},
2036020359 .each = .{ .once = &.{
2036120360 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20362 .{ ._, ._pd, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ },
20361 .{ ._, ._pd, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
2036320362 } },
2036420363 }, .{
2036520364 .required_features = .{ .avx, null, null, null },
......@@ -20381,7 +20380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2038120380 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2038220381 .each = .{ .once = &.{
2038320382 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20384 .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
20383 .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
2038520384 } },
2038620385 }, .{
2038720386 .required_features = .{ .x87, null, null, null },
......@@ -20427,7 +20426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2042720426 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2042820427 .each = .{ .once = &.{
2042920428 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20430 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ },
20429 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
2043120430 } },
2043220431 }, .{
2043320432 .required_features = .{ .sse2, null, null, null },
......@@ -20449,7 +20448,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2044920448 .dst_temps = .{.{ .ref = .src0 }},
2045020449 .each = .{ .once = &.{
2045120450 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20452 .{ ._, .p_, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ },
20451 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
2045320452 } },
2045420453 }, .{
2045520454 .required_features = .{ .sse, null, null, null },
......@@ -20471,7 +20470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2047120470 .dst_temps = .{.{ .ref = .src0 }},
2047220471 .each = .{ .once = &.{
2047320472 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20474 .{ ._, ._ps, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ },
20473 .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
2047520474 } },
2047620475 }, .{
2047720476 .required_features = .{ .avx2, null, null, null },
......@@ -20493,7 +20492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2049320492 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2049420493 .each = .{ .once = &.{
2049520494 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20496 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
20495 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
2049720496 } },
2049820497 }, .{
2049920498 .required_features = .{ .avx, null, null, null },
......@@ -20515,7 +20514,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2051520514 .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }},
2051620515 .each = .{ .once = &.{
2051720516 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20518 .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ },
20517 .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
2051920518 } },
2052020519 }, .{
2052120520 .required_features = .{ .avx, null, null, null },
......@@ -20537,7 +20536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2053720536 .dst_temps = .{.mem},
2053820537 .each = .{ .once = &.{
2053920538 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20540 .{ ._, .v_ps, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ },
20539 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
2054120540 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2054220541 .{ .@"0:", .v_ps, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ },
2054320542 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
......@@ -20564,7 +20563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2056420563 .dst_temps = .{.mem},
2056520564 .each = .{ .once = &.{
2056620565 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20567 .{ ._, ._ps, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
20566 .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ },
2056820567 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2056920568 .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
2057020569 .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
......@@ -20592,7 +20591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2059220591 .dst_temps = .{.mem},
2059320592 .each = .{ .once = &.{
2059420593 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20595 .{ ._, .v_pd, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ },
20594 .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
2059620595 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2059720596 .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ },
2059820597 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
......@@ -20619,7 +20618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2061920618 .dst_temps = .{.mem},
2062020619 .each = .{ .once = &.{
2062120620 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20622 .{ ._, ._pd, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
20621 .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ },
2062320622 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2062420623 .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },
2062520624 .{ ._, ._pd, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
......@@ -20647,7 +20646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2064720646 .dst_temps = .{.mem},
2064820647 .each = .{ .once = &.{
2064920648 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20650 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.yword, .tmp0), ._, ._ },
20649 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
2065120650 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2065220651 .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ },
2065320652 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
......@@ -20674,7 +20673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2067420673 .dst_temps = .{.mem},
2067520674 .each = .{ .once = &.{
2067620675 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20677 .{ ._, .v_pd, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ },
20676 .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
2067820677 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2067920678 .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ },
2068020679 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
......@@ -20701,7 +20700,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2070120700 .dst_temps = .{.mem},
2070220701 .each = .{ .once = &.{
2070320702 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20704 .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
20703 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
2070520704 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2070620705 .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
2070720706 .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
......@@ -20729,7 +20728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2072920728 .dst_temps = .{.mem},
2073020729 .each = .{ .once = &.{
2073120730 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
20732 .{ ._, ._ps, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ },
20731 .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ },
2073320732 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
2073420733 .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
2073520734 .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
......@@ -24537,6 +24536,683 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2453724536 };
2453824537 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
2453924538 },
24539 .intcast => |air_tag| if (use_old) try cg.airIntCast(inst) else fallback: {
24540 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
24541 const dst_ty = ty_op.ty.toType();
24542 if (dst_ty.isVector(zcu)) break :fallback try cg.airIntCast(inst);
24543 const src_ty = cg.typeOf(ty_op.operand);
24544 var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
24545 var res: [1]Temp = undefined;
24546 cg.select(&res, &.{dst_ty}, &ops, if (dst_ty.scalarType(zcu).abiSize(zcu) <= src_ty.scalarType(zcu).abiSize(zcu)) comptime &.{ .{
24547 .dst_constraints = .{.{ .int = .dword }},
24548 .patterns = &.{
24549 .{ .src = .{ .mem, .none } },
24550 .{ .src = .{ .to_gpr, .none } },
24551 },
24552 .dst_temps = .{.{ .rc = .general_purpose }},
24553 .each = .{ .once = &.{
24554 .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ },
24555 } },
24556 }, .{
24557 .required_features = .{ .@"64bit", null, null, null },
24558 .dst_constraints = .{.{ .int = .qword }},
24559 .patterns = &.{
24560 .{ .src = .{ .mem, .none } },
24561 .{ .src = .{ .to_gpr, .none } },
24562 },
24563 .dst_temps = .{.{ .rc = .general_purpose }},
24564 .each = .{ .once = &.{
24565 .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ },
24566 } },
24567 }, .{
24568 .dst_constraints = .{.{ .int = .byte }},
24569 .patterns = &.{
24570 .{ .src = .{ .to_mem, .none } },
24571 },
24572 .dst_temps = .{.{ .rc = .general_purpose }},
24573 .each = .{ .once = &.{
24574 .{ ._, ._, .mov, .dst0b, .mem(.src0b), ._, ._ },
24575 } },
24576 }, .{
24577 .dst_constraints = .{.{ .int = .word }},
24578 .patterns = &.{
24579 .{ .src = .{ .to_mem, .none } },
24580 },
24581 .dst_temps = .{.{ .rc = .general_purpose }},
24582 .each = .{ .once = &.{
24583 .{ ._, ._, .mov, .dst0w, .mem(.src0w), ._, ._ },
24584 } },
24585 }, .{
24586 .dst_constraints = .{.{ .int = .dword }},
24587 .patterns = &.{
24588 .{ .src = .{ .to_mem, .none } },
24589 },
24590 .dst_temps = .{.{ .rc = .general_purpose }},
24591 .each = .{ .once = &.{
24592 .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
24593 } },
24594 }, .{
24595 .required_features = .{ .@"64bit", null, null, null },
24596 .dst_constraints = .{.{ .int = .qword }},
24597 .patterns = &.{
24598 .{ .src = .{ .to_mem, .none } },
24599 },
24600 .dst_temps = .{.{ .rc = .general_purpose }},
24601 .each = .{ .once = &.{
24602 .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ },
24603 } },
24604 }, .{
24605 .required_features = .{ .@"64bit", null, null, null },
24606 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
24607 .patterns = &.{
24608 .{ .src = .{ .to_mem, .none } },
24609 },
24610 .extra_temps = .{
24611 .{ .type = .usize, .kind = .{ .reg = .rsi } },
24612 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24613 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24614 .unused,
24615 .unused,
24616 .unused,
24617 .unused,
24618 .unused,
24619 .unused,
24620 },
24621 .dst_temps = .{.mem},
24622 .clobbers = .{ .eflags = true },
24623 .each = .{ .once = &.{
24624 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
24625 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24626 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
24627 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
24628 } },
24629 } } else comptime &.{ .{
24630 .src_constraints = .{ .{ .signed_int = .byte }, .any },
24631 .dst_constraints = .{.{ .signed_int = .dword }},
24632 .patterns = &.{
24633 .{ .src = .{ .mem, .none } },
24634 .{ .src = .{ .to_gpr, .none } },
24635 },
24636 .dst_temps = .{.{ .rc = .general_purpose }},
24637 .each = .{ .once = &.{
24638 .{ ._, ._, .movsx, .dst0d, .src0b, ._, ._ },
24639 } },
24640 }, .{
24641 .src_constraints = .{ .{ .int = .byte }, .any },
24642 .dst_constraints = .{.{ .int = .dword }},
24643 .patterns = &.{
24644 .{ .src = .{ .mem, .none } },
24645 .{ .src = .{ .to_gpr, .none } },
24646 },
24647 .dst_temps = .{.{ .rc = .general_purpose }},
24648 .each = .{ .once = &.{
24649 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },
24650 } },
24651 }, .{
24652 .required_features = .{ .@"64bit", null, null, null },
24653 .src_constraints = .{ .{ .signed_int = .byte }, .any },
24654 .dst_constraints = .{.{ .signed_int = .qword }},
24655 .patterns = &.{
24656 .{ .src = .{ .mem, .none } },
24657 .{ .src = .{ .to_gpr, .none } },
24658 },
24659 .dst_temps = .{.{ .rc = .general_purpose }},
24660 .each = .{ .once = &.{
24661 .{ ._, ._, .movsx, .dst0q, .src0b, ._, ._ },
24662 } },
24663 }, .{
24664 .required_features = .{ .@"64bit", null, null, null },
24665 .src_constraints = .{ .{ .int = .byte }, .any },
24666 .dst_constraints = .{.{ .int = .qword }},
24667 .patterns = &.{
24668 .{ .src = .{ .mem, .none } },
24669 .{ .src = .{ .to_gpr, .none } },
24670 },
24671 .dst_temps = .{.{ .rc = .general_purpose }},
24672 .each = .{ .once = &.{
24673 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },
24674 } },
24675 }, .{
24676 .required_features = .{ .@"64bit", null, null, null },
24677 .src_constraints = .{ .{ .signed_int = .byte }, .any },
24678 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
24679 .patterns = &.{
24680 .{ .src = .{ .mem, .none } },
24681 .{ .src = .{ .to_gpr, .none } },
24682 },
24683 .extra_temps = .{
24684 .{ .type = .i64, .kind = .{ .reg = .rax } },
24685 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24686 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24687 .unused,
24688 .unused,
24689 .unused,
24690 .unused,
24691 .unused,
24692 .unused,
24693 },
24694 .dst_temps = .{.mem},
24695 .clobbers = .{ .eflags = true },
24696 .each = .{ .once = &.{
24697 .{ ._, ._, .movsx, .tmp0q, .src0b, ._, ._ },
24698 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24699 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
24700 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
24701 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
24702 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24703 } },
24704 }, .{
24705 .required_features = .{ .@"64bit", null, null, null },
24706 .src_constraints = .{ .{ .int = .byte }, .any },
24707 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
24708 .patterns = &.{
24709 .{ .src = .{ .mem, .none } },
24710 .{ .src = .{ .to_gpr, .none } },
24711 },
24712 .extra_temps = .{
24713 .{ .type = .u64, .kind = .{ .reg = .rax } },
24714 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24715 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24716 .unused,
24717 .unused,
24718 .unused,
24719 .unused,
24720 .unused,
24721 .unused,
24722 },
24723 .dst_temps = .{.mem},
24724 .clobbers = .{ .eflags = true },
24725 .each = .{ .once = &.{
24726 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },
24727 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24728 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
24729 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
24730 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
24731 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24732 } },
24733 }, .{
24734 .src_constraints = .{ .{ .signed_int = .byte }, .any },
24735 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
24736 .patterns = &.{
24737 .{ .src = .{ .mem, .none } },
24738 .{ .src = .{ .to_gpr, .none } },
24739 },
24740 .extra_temps = .{
24741 .{ .type = .i32, .kind = .{ .reg = .eax } },
24742 .{ .type = .usize, .kind = .{ .reg = .edi } },
24743 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24744 .unused,
24745 .unused,
24746 .unused,
24747 .unused,
24748 .unused,
24749 .unused,
24750 },
24751 .dst_temps = .{.mem},
24752 .clobbers = .{ .eflags = true },
24753 .each = .{ .once = &.{
24754 .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ },
24755 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24756 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
24757 .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ },
24758 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
24759 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24760 } },
24761 }, .{
24762 .src_constraints = .{ .{ .int = .byte }, .any },
24763 .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }},
24764 .patterns = &.{
24765 .{ .src = .{ .mem, .none } },
24766 .{ .src = .{ .to_gpr, .none } },
24767 },
24768 .extra_temps = .{
24769 .{ .type = .u32, .kind = .{ .reg = .eax } },
24770 .{ .type = .usize, .kind = .{ .reg = .edi } },
24771 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24772 .unused,
24773 .unused,
24774 .unused,
24775 .unused,
24776 .unused,
24777 .unused,
24778 },
24779 .dst_temps = .{.mem},
24780 .clobbers = .{ .eflags = true },
24781 .each = .{ .once = &.{
24782 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },
24783 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24784 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
24785 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
24786 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
24787 .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ },
24788 } },
24789 }, .{
24790 .src_constraints = .{ .{ .signed_int = .word }, .any },
24791 .dst_constraints = .{.{ .signed_int = .dword }},
24792 .patterns = &.{
24793 .{ .src = .{ .mem, .none } },
24794 .{ .src = .{ .to_gpr, .none } },
24795 },
24796 .dst_temps = .{.{ .rc = .general_purpose }},
24797 .each = .{ .once = &.{
24798 .{ ._, ._, .movsx, .dst0d, .src0w, ._, ._ },
24799 } },
24800 }, .{
24801 .src_constraints = .{ .{ .int = .word }, .any },
24802 .dst_constraints = .{.{ .int = .dword }},
24803 .patterns = &.{
24804 .{ .src = .{ .mem, .none } },
24805 .{ .src = .{ .to_gpr, .none } },
24806 },
24807 .dst_temps = .{.{ .rc = .general_purpose }},
24808 .each = .{ .once = &.{
24809 .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ },
24810 } },
24811 }, .{
24812 .required_features = .{ .@"64bit", null, null, null },
24813 .src_constraints = .{ .{ .signed_int = .word }, .any },
24814 .dst_constraints = .{.{ .signed_int = .qword }},
24815 .patterns = &.{
24816 .{ .src = .{ .mem, .none } },
24817 .{ .src = .{ .to_gpr, .none } },
24818 },
24819 .dst_temps = .{.{ .rc = .general_purpose }},
24820 .each = .{ .once = &.{
24821 .{ ._, ._, .movsx, .dst0q, .src0w, ._, ._ },
24822 } },
24823 }, .{
24824 .required_features = .{ .@"64bit", null, null, null },
24825 .src_constraints = .{ .{ .int = .word }, .any },
24826 .dst_constraints = .{.{ .int = .qword }},
24827 .patterns = &.{
24828 .{ .src = .{ .mem, .none } },
24829 .{ .src = .{ .to_gpr, .none } },
24830 },
24831 .dst_temps = .{.{ .rc = .general_purpose }},
24832 .each = .{ .once = &.{
24833 .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ },
24834 } },
24835 }, .{
24836 .required_features = .{ .@"64bit", null, null, null },
24837 .src_constraints = .{ .{ .signed_int = .word }, .any },
24838 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
24839 .patterns = &.{
24840 .{ .src = .{ .mem, .none } },
24841 .{ .src = .{ .to_gpr, .none } },
24842 },
24843 .extra_temps = .{
24844 .{ .type = .i64, .kind = .{ .reg = .rax } },
24845 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24846 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24847 .unused,
24848 .unused,
24849 .unused,
24850 .unused,
24851 .unused,
24852 .unused,
24853 },
24854 .dst_temps = .{.mem},
24855 .clobbers = .{ .eflags = true },
24856 .each = .{ .once = &.{
24857 .{ ._, ._, .movsx, .tmp0q, .src0w, ._, ._ },
24858 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24859 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
24860 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
24861 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
24862 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24863 } },
24864 }, .{
24865 .required_features = .{ .@"64bit", null, null, null },
24866 .src_constraints = .{ .{ .int = .word }, .any },
24867 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
24868 .patterns = &.{
24869 .{ .src = .{ .mem, .none } },
24870 .{ .src = .{ .to_gpr, .none } },
24871 },
24872 .extra_temps = .{
24873 .{ .type = .u64, .kind = .{ .reg = .rax } },
24874 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24875 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24876 .unused,
24877 .unused,
24878 .unused,
24879 .unused,
24880 .unused,
24881 .unused,
24882 },
24883 .dst_temps = .{.mem},
24884 .clobbers = .{ .eflags = true },
24885 .each = .{ .once = &.{
24886 .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ },
24887 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24888 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
24889 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
24890 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
24891 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24892 } },
24893 }, .{
24894 .src_constraints = .{ .{ .signed_int = .word }, .any },
24895 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
24896 .patterns = &.{
24897 .{ .src = .{ .mem, .none } },
24898 .{ .src = .{ .to_gpr, .none } },
24899 },
24900 .extra_temps = .{
24901 .{ .type = .i32, .kind = .{ .reg = .eax } },
24902 .{ .type = .usize, .kind = .{ .reg = .edi } },
24903 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24904 .unused,
24905 .unused,
24906 .unused,
24907 .unused,
24908 .unused,
24909 .unused,
24910 },
24911 .dst_temps = .{.mem},
24912 .clobbers = .{ .eflags = true },
24913 .each = .{ .once = &.{
24914 .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ },
24915 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24916 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
24917 .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ },
24918 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
24919 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
24920 } },
24921 }, .{
24922 .src_constraints = .{ .{ .int = .word }, .any },
24923 .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }},
24924 .patterns = &.{
24925 .{ .src = .{ .mem, .none } },
24926 .{ .src = .{ .to_gpr, .none } },
24927 },
24928 .extra_temps = .{
24929 .{ .type = .u32, .kind = .{ .reg = .eax } },
24930 .{ .type = .usize, .kind = .{ .reg = .edi } },
24931 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24932 .unused,
24933 .unused,
24934 .unused,
24935 .unused,
24936 .unused,
24937 .unused,
24938 },
24939 .dst_temps = .{.mem},
24940 .clobbers = .{ .eflags = true },
24941 .each = .{ .once = &.{
24942 .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ },
24943 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24944 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
24945 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
24946 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
24947 .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ },
24948 } },
24949 }, .{
24950 .required_features = .{ .@"64bit", null, null, null },
24951 .src_constraints = .{ .{ .signed_int = .dword }, .any },
24952 .dst_constraints = .{.{ .signed_int = .qword }},
24953 .patterns = &.{
24954 .{ .src = .{ .mem, .none } },
24955 .{ .src = .{ .to_gpr, .none } },
24956 },
24957 .dst_temps = .{.{ .rc = .general_purpose }},
24958 .each = .{ .once = &.{
24959 .{ ._, ._d, .movsx, .dst0q, .src0d, ._, ._ },
24960 } },
24961 }, .{
24962 .required_features = .{ .@"64bit", null, null, null },
24963 .src_constraints = .{ .{ .int = .dword }, .any },
24964 .dst_constraints = .{.{ .int = .qword }},
24965 .patterns = &.{
24966 .{ .src = .{ .mem, .none } },
24967 .{ .src = .{ .to_gpr, .none } },
24968 },
24969 .dst_temps = .{.{ .rc = .general_purpose }},
24970 .each = .{ .once = &.{
24971 .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ },
24972 } },
24973 }, .{
24974 .required_features = .{ .@"64bit", null, null, null },
24975 .src_constraints = .{ .{ .signed_int = .dword }, .any },
24976 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
24977 .patterns = &.{
24978 .{ .src = .{ .mem, .none } },
24979 .{ .src = .{ .to_gpr, .none } },
24980 },
24981 .extra_temps = .{
24982 .{ .type = .i64, .kind = .{ .reg = .rax } },
24983 .{ .type = .usize, .kind = .{ .reg = .rdi } },
24984 .{ .type = .u32, .kind = .{ .reg = .ecx } },
24985 .unused,
24986 .unused,
24987 .unused,
24988 .unused,
24989 .unused,
24990 .unused,
24991 },
24992 .dst_temps = .{.mem},
24993 .clobbers = .{ .eflags = true },
24994 .each = .{ .once = &.{
24995 .{ ._, ._d, .movsx, .tmp0q, .src0d, ._, ._ },
24996 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24997 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
24998 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
24999 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
25000 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25001 } },
25002 }, .{
25003 .required_features = .{ .@"64bit", null, null, null },
25004 .src_constraints = .{ .{ .int = .dword }, .any },
25005 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
25006 .patterns = &.{
25007 .{ .src = .{ .mem, .none } },
25008 .{ .src = .{ .to_gpr, .none } },
25009 },
25010 .extra_temps = .{
25011 .{ .type = .u64, .kind = .{ .reg = .rax } },
25012 .{ .type = .usize, .kind = .{ .reg = .rdi } },
25013 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25014 .unused,
25015 .unused,
25016 .unused,
25017 .unused,
25018 .unused,
25019 .unused,
25020 },
25021 .dst_temps = .{.mem},
25022 .clobbers = .{ .eflags = true },
25023 .each = .{ .once = &.{
25024 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
25025 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25026 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
25027 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
25028 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
25029 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25030 } },
25031 }, .{
25032 .src_constraints = .{ .{ .signed_int = .dword }, .any },
25033 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
25034 .patterns = &.{
25035 .{ .src = .{ .mem, .none } },
25036 .{ .src = .{ .to_gpr, .none } },
25037 },
25038 .extra_temps = .{
25039 .{ .type = .i32, .kind = .{ .reg = .eax } },
25040 .{ .type = .usize, .kind = .{ .reg = .edi } },
25041 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25042 .unused,
25043 .unused,
25044 .unused,
25045 .unused,
25046 .unused,
25047 .unused,
25048 },
25049 .dst_temps = .{.mem},
25050 .clobbers = .{ .eflags = true },
25051 .each = .{ .once = &.{
25052 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
25053 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25054 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
25055 .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ },
25056 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
25057 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25058 } },
25059 }, .{
25060 .src_constraints = .{ .{ .int = .dword }, .any },
25061 .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }},
25062 .patterns = &.{
25063 .{ .src = .{ .mem, .none } },
25064 .{ .src = .{ .to_gpr, .none } },
25065 },
25066 .extra_temps = .{
25067 .{ .type = .u32, .kind = .{ .reg = .eax } },
25068 .{ .type = .usize, .kind = .{ .reg = .edi } },
25069 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25070 .unused,
25071 .unused,
25072 .unused,
25073 .unused,
25074 .unused,
25075 .unused,
25076 },
25077 .dst_temps = .{.mem},
25078 .clobbers = .{ .eflags = true },
25079 .each = .{ .once = &.{
25080 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
25081 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25082 .{ ._, ._sd, .sto, ._, ._, ._, ._ },
25083 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
25084 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ },
25085 .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ },
25086 } },
25087 }, .{
25088 .required_features = .{ .@"64bit", null, null, null },
25089 .src_constraints = .{ .{ .signed_int = .qword }, .any },
25090 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
25091 .patterns = &.{
25092 .{ .src = .{ .mem, .none } },
25093 .{ .src = .{ .to_gpr, .none } },
25094 },
25095 .extra_temps = .{
25096 .{ .type = .i64, .kind = .{ .reg = .rax } },
25097 .{ .type = .usize, .kind = .{ .reg = .rdi } },
25098 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25099 .unused,
25100 .unused,
25101 .unused,
25102 .unused,
25103 .unused,
25104 .unused,
25105 },
25106 .dst_temps = .{.mem},
25107 .clobbers = .{ .eflags = true },
25108 .each = .{ .once = &.{
25109 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
25110 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25111 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
25112 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
25113 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
25114 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25115 } },
25116 }, .{
25117 .required_features = .{ .@"64bit", null, null, null },
25118 .src_constraints = .{ .{ .int = .qword }, .any },
25119 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
25120 .patterns = &.{
25121 .{ .src = .{ .mem, .none } },
25122 .{ .src = .{ .to_gpr, .none } },
25123 },
25124 .extra_temps = .{
25125 .{ .type = .u64, .kind = .{ .reg = .rax } },
25126 .{ .type = .usize, .kind = .{ .reg = .rdi } },
25127 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25128 .unused,
25129 .unused,
25130 .unused,
25131 .unused,
25132 .unused,
25133 .unused,
25134 },
25135 .dst_temps = .{.mem},
25136 .clobbers = .{ .eflags = true },
25137 .each = .{ .once = &.{
25138 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
25139 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25140 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
25141 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
25142 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
25143 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25144 } },
25145 }, .{
25146 .required_features = .{ .@"64bit", null, null, null },
25147 .src_constraints = .{ .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }, .any },
25148 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
25149 .patterns = &.{
25150 .{ .src = .{ .to_mem, .none } },
25151 },
25152 .extra_temps = .{
25153 .{ .type = .usize, .kind = .{ .reg = .rsi } },
25154 .{ .type = .usize, .kind = .{ .reg = .rdi } },
25155 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25156 .{ .type = .i64, .kind = .{ .reg = .rax } },
25157 .unused,
25158 .unused,
25159 .unused,
25160 .unused,
25161 .unused,
25162 },
25163 .dst_temps = .{.mem},
25164 .clobbers = .{ .eflags = true },
25165 .each = .{ .once = &.{
25166 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
25167 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25168 .{ ._, ._, .mov, .tmp2d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
25169 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
25170 .{ ._, ._sq, .lod, ._, ._, ._, ._ },
25171 .{ ._, ._sq, .sto, ._, ._, ._, ._ },
25172 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
25173 .{ ._, ._, .mov, .tmp2d, .sa2(.dst0, .src0, .add_delta_size_div_8), ._, ._ },
25174 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25175 } },
25176 }, .{
25177 .required_features = .{ .@"64bit", null, null, null },
25178 .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
25179 .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }},
25180 .patterns = &.{
25181 .{ .src = .{ .to_mem, .none } },
25182 },
25183 .extra_temps = .{
25184 .{ .type = .usize, .kind = .{ .reg = .rsi } },
25185 .{ .type = .usize, .kind = .{ .reg = .rdi } },
25186 .{ .type = .u32, .kind = .{ .reg = .ecx } },
25187 .{ .type = .u64, .kind = .{ .reg = .rax } },
25188 .unused,
25189 .unused,
25190 .unused,
25191 .unused,
25192 .unused,
25193 },
25194 .dst_temps = .{.mem},
25195 .clobbers = .{ .eflags = true },
25196 .each = .{ .once = &.{
25197 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
25198 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
25199 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
25200 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
25201 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
25202 .{ ._, ._, .mov, .tmp2d, .sa2(.dst0, .src0, .add_delta_size_div_8), ._, ._ },
25203 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
25204 } },
25205 } }) catch |err| switch (err) {
25206 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
25207 @tagName(air_tag),
25208 dst_ty.fmt(pt),
25209 src_ty.fmt(pt),
25210 ops[0].tracking(cg),
25211 }),
25212 else => |e| return e,
25213 };
25214 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
25215 },
2454025216 .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else {
2454125217 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
2454225218 const ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
......@@ -24716,7 +25392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2471625392 },
2471725393 .dst_temps = .{.{ .rc = .general_purpose }},
2471825394 .each = .{ .once = &.{
24719 .{ ._, ._, .movzx, .dst0d, .leaa(.byte, .src0, .add_src0_elem_size_times_src1), ._, ._ },
25395 .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_times_src1), ._, ._ },
2472025396 } },
2472125397 }, .{
2472225398 .dst_constraints = .{.{ .int = .byte }},
......@@ -24725,7 +25401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2472525401 },
2472625402 .dst_temps = .{.{ .rc = .general_purpose }},
2472725403 .each = .{ .once = &.{
24728 .{ ._, ._, .movzx, .dst0d, .leai(.byte, .src0, .src1), ._, ._ },
25404 .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ },
2472925405 } },
2473025406 }, .{
2473125407 .dst_constraints = .{.{ .int = .word }},
......@@ -24734,7 +25410,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2473425410 },
2473525411 .dst_temps = .{.{ .rc = .general_purpose }},
2473625412 .each = .{ .once = &.{
24737 .{ ._, ._, .movzx, .dst0d, .leaa(.word, .src0, .add_src0_elem_size_times_src1), ._, ._ },
25413 .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_times_src1), ._, ._ },
2473825414 } },
2473925415 }, .{
2474025416 .dst_constraints = .{.{ .int = .word }},
......@@ -24743,7 +25419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2474325419 },
2474425420 .dst_temps = .{.{ .rc = .general_purpose }},
2474525421 .each = .{ .once = &.{
24746 .{ ._, ._, .movzx, .dst0d, .leasi(.word, .src0, .@"2", .src1), ._, ._ },
25422 .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ },
2474725423 } },
2474825424 }, .{
2474925425 .dst_constraints = .{.{ .int = .dword }},
......@@ -24752,7 +25428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2475225428 },
2475325429 .dst_temps = .{.{ .rc = .general_purpose }},
2475425430 .each = .{ .once = &.{
24755 .{ ._, ._, .mov, .dst0d, .leaa(.dword, .src0, .add_src0_elem_size_times_src1), ._, ._ },
25431 .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_times_src1), ._, ._ },
2475625432 } },
2475725433 }, .{
2475825434 .dst_constraints = .{.{ .int = .dword }},
......@@ -24761,7 +25437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2476125437 },
2476225438 .dst_temps = .{.{ .rc = .general_purpose }},
2476325439 .each = .{ .once = &.{
24764 .{ ._, ._, .mov, .dst0d, .leasi(.dword, .src0, .@"4", .src1), ._, ._ },
25440 .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ },
2476525441 } },
2476625442 }, .{
2476725443 .dst_constraints = .{.{ .int = .qword }},
......@@ -24770,7 +25446,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2477025446 },
2477125447 .dst_temps = .{.{ .rc = .general_purpose }},
2477225448 .each = .{ .once = &.{
24773 .{ ._, ._, .mov, .dst0q, .leaa(.qword, .src0, .add_src0_elem_size_times_src1), ._, ._ },
25449 .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_times_src1), ._, ._ },
2477425450 } },
2477525451 }, .{
2477625452 .required_features = .{ .@"64bit", null, null, null },
......@@ -24780,7 +25456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2478025456 },
2478125457 .dst_temps = .{.{ .rc = .general_purpose }},
2478225458 .each = .{ .once = &.{
24783 .{ ._, ._, .mov, .dst0q, .leasi(.qword, .src0, .@"8", .src1), ._, ._ },
25459 .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ },
2478425460 } },
2478525461 } }) catch |err| switch (err) {
2478625462 error.SelectFailed => {
......@@ -45924,16 +46600,19 @@ const Select = struct {
4592446600 };
4592546601 const Label = enum { @"0:", @"1:", @"2:", @"_", pseudo };
4592646602 const Operand = struct {
45927 tag: Tag,
46603 flags: packed struct(u16) {
46604 tag: Tag,
46605 adjust: Adjust = .none,
46606 unused: u4 = 0,
46607 },
4592846608 base: Ref.Sized = .none,
4592946609 index: packed struct(u6) {
4593046610 ref: Ref,
45931 scale: Memory.Scale,
45932 } = .{ .ref = .none, .scale = .@"1" },
45933 adjust: Adjust = .none,
46611 scale: Memory.Scale = .@"1",
46612 } = .{ .ref = .none },
4593446613 imm: i32 = 0,
4593546614
45936 const Tag = enum {
46615 const Tag = enum(u3) {
4593746616 none,
4593846617 backward_label,
4593946618 forward_label,
......@@ -45943,13 +46622,14 @@ const Select = struct {
4594346622 lea,
4594446623 mem,
4594546624 };
45946 const Adjust = packed struct(u8) {
46625 const Adjust = packed struct(u9) {
4594746626 sign: enum(u1) { neg, pos },
45948 lhs: enum(u4) {
46627 lhs: enum(u5) {
4594946628 none,
4595046629 ptr_size,
4595146630 ptr_bit_size,
4595246631 size,
46632 delta_size,
4595346633 size_sub_elem_size,
4595446634 unaligned_size,
4595546635 bit_size,
......@@ -45970,10 +46650,12 @@ const Select = struct {
4597046650 const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" };
4597146651 const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" };
4597246652 const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" };
46653 const add_size_div_4: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"4" };
4597346654 const add_size_div_8: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"8" };
4597446655 const sub_size_div_8: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"8" };
4597546656 const sub_size_div_4: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"4" };
4597646657 const sub_size: Adjust = .{ .sign = .neg, .lhs = .size, .op = .mul, .rhs = .@"1" };
46658 const add_delta_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_size, .op = .div, .rhs = .@"8" };
4597746659 const add_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_sub_elem_size, .op = .mul, .rhs = .@"1" };
4597846660 const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
4597946661 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
......@@ -46147,298 +46829,293 @@ const Select = struct {
4614746829 }
4614846830 };
4614946831
46150 const @"_": Select.Operand = .{ .tag = .none };
46151
46152 const @"0b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp0, .size = .none } };
46153 const @"0f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp0, .size = .none } };
46154 const @"1b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp1, .size = .none } };
46155 const @"1f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp1, .size = .none } };
46156 const @"2b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp2, .size = .none } };
46157 const @"2f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp2, .size = .none } };
46158
46159 const tmp0b: Select.Operand = .{ .tag = .ref, .base = .tmp0b };
46160 const tmp0w: Select.Operand = .{ .tag = .ref, .base = .tmp0w };
46161 const tmp0d: Select.Operand = .{ .tag = .ref, .base = .tmp0d };
46162 const tmp0p: Select.Operand = .{ .tag = .ref, .base = .tmp0p };
46163 const tmp0q: Select.Operand = .{ .tag = .ref, .base = .tmp0q };
46164 const tmp0t: Select.Operand = .{ .tag = .ref, .base = .tmp0t };
46165 const tmp0x: Select.Operand = .{ .tag = .ref, .base = .tmp0x };
46166 const tmp0y: Select.Operand = .{ .tag = .ref, .base = .tmp0y };
46167
46168 const tmp1b: Select.Operand = .{ .tag = .ref, .base = .tmp1b };
46169 const tmp1w: Select.Operand = .{ .tag = .ref, .base = .tmp1w };
46170 const tmp1d: Select.Operand = .{ .tag = .ref, .base = .tmp1d };
46171 const tmp1p: Select.Operand = .{ .tag = .ref, .base = .tmp1p };
46172 const tmp1q: Select.Operand = .{ .tag = .ref, .base = .tmp1q };
46173 const tmp1t: Select.Operand = .{ .tag = .ref, .base = .tmp1t };
46174 const tmp1x: Select.Operand = .{ .tag = .ref, .base = .tmp1x };
46175 const tmp1y: Select.Operand = .{ .tag = .ref, .base = .tmp1y };
46176
46177 const tmp2b: Select.Operand = .{ .tag = .ref, .base = .tmp2b };
46178 const tmp2w: Select.Operand = .{ .tag = .ref, .base = .tmp2w };
46179 const tmp2d: Select.Operand = .{ .tag = .ref, .base = .tmp2d };
46180 const tmp2p: Select.Operand = .{ .tag = .ref, .base = .tmp2p };
46181 const tmp2q: Select.Operand = .{ .tag = .ref, .base = .tmp2q };
46182 const tmp2t: Select.Operand = .{ .tag = .ref, .base = .tmp2t };
46183 const tmp2x: Select.Operand = .{ .tag = .ref, .base = .tmp2x };
46184 const tmp2y: Select.Operand = .{ .tag = .ref, .base = .tmp2y };
46185
46186 const tmp3b: Select.Operand = .{ .tag = .ref, .base = .tmp3b };
46187 const tmp3w: Select.Operand = .{ .tag = .ref, .base = .tmp3w };
46188 const tmp3d: Select.Operand = .{ .tag = .ref, .base = .tmp3d };
46189 const tmp3p: Select.Operand = .{ .tag = .ref, .base = .tmp3p };
46190 const tmp3q: Select.Operand = .{ .tag = .ref, .base = .tmp3q };
46191 const tmp3t: Select.Operand = .{ .tag = .ref, .base = .tmp3t };
46192 const tmp3x: Select.Operand = .{ .tag = .ref, .base = .tmp3x };
46193 const tmp3y: Select.Operand = .{ .tag = .ref, .base = .tmp3y };
46194
46195 const tmp4b: Select.Operand = .{ .tag = .ref, .base = .tmp4b };
46196 const tmp4w: Select.Operand = .{ .tag = .ref, .base = .tmp4w };
46197 const tmp4d: Select.Operand = .{ .tag = .ref, .base = .tmp4d };
46198 const tmp4p: Select.Operand = .{ .tag = .ref, .base = .tmp4p };
46199 const tmp4q: Select.Operand = .{ .tag = .ref, .base = .tmp4q };
46200 const tmp4t: Select.Operand = .{ .tag = .ref, .base = .tmp4t };
46201 const tmp4x: Select.Operand = .{ .tag = .ref, .base = .tmp4x };
46202 const tmp4y: Select.Operand = .{ .tag = .ref, .base = .tmp4y };
46203
46204 const tmp5b: Select.Operand = .{ .tag = .ref, .base = .tmp5b };
46205 const tmp5w: Select.Operand = .{ .tag = .ref, .base = .tmp5w };
46206 const tmp5d: Select.Operand = .{ .tag = .ref, .base = .tmp5d };
46207 const tmp5p: Select.Operand = .{ .tag = .ref, .base = .tmp5p };
46208 const tmp5q: Select.Operand = .{ .tag = .ref, .base = .tmp5q };
46209 const tmp5t: Select.Operand = .{ .tag = .ref, .base = .tmp5t };
46210 const tmp5x: Select.Operand = .{ .tag = .ref, .base = .tmp5x };
46211 const tmp5y: Select.Operand = .{ .tag = .ref, .base = .tmp5y };
46212
46213 const tmp6b: Select.Operand = .{ .tag = .ref, .base = .tmp6b };
46214 const tmp6w: Select.Operand = .{ .tag = .ref, .base = .tmp6w };
46215 const tmp6d: Select.Operand = .{ .tag = .ref, .base = .tmp6d };
46216 const tmp6p: Select.Operand = .{ .tag = .ref, .base = .tmp6p };
46217 const tmp6q: Select.Operand = .{ .tag = .ref, .base = .tmp6q };
46218 const tmp6t: Select.Operand = .{ .tag = .ref, .base = .tmp6t };
46219 const tmp6x: Select.Operand = .{ .tag = .ref, .base = .tmp6x };
46220 const tmp6y: Select.Operand = .{ .tag = .ref, .base = .tmp6y };
46221
46222 const tmp7b: Select.Operand = .{ .tag = .ref, .base = .tmp7b };
46223 const tmp7w: Select.Operand = .{ .tag = .ref, .base = .tmp7w };
46224 const tmp7d: Select.Operand = .{ .tag = .ref, .base = .tmp7d };
46225 const tmp7p: Select.Operand = .{ .tag = .ref, .base = .tmp7p };
46226 const tmp7q: Select.Operand = .{ .tag = .ref, .base = .tmp7q };
46227 const tmp7t: Select.Operand = .{ .tag = .ref, .base = .tmp7t };
46228 const tmp7x: Select.Operand = .{ .tag = .ref, .base = .tmp7x };
46229 const tmp7y: Select.Operand = .{ .tag = .ref, .base = .tmp7y };
46230
46231 const tmp8b: Select.Operand = .{ .tag = .ref, .base = .tmp8b };
46232 const tmp8w: Select.Operand = .{ .tag = .ref, .base = .tmp8w };
46233 const tmp8d: Select.Operand = .{ .tag = .ref, .base = .tmp8d };
46234 const tmp8p: Select.Operand = .{ .tag = .ref, .base = .tmp8p };
46235 const tmp8q: Select.Operand = .{ .tag = .ref, .base = .tmp8q };
46236 const tmp8t: Select.Operand = .{ .tag = .ref, .base = .tmp8t };
46237 const tmp8x: Select.Operand = .{ .tag = .ref, .base = .tmp8x };
46238 const tmp8y: Select.Operand = .{ .tag = .ref, .base = .tmp8y };
46239
46240 const dst0b: Select.Operand = .{ .tag = .ref, .base = .dst0b };
46241 const dst0w: Select.Operand = .{ .tag = .ref, .base = .dst0w };
46242 const dst0d: Select.Operand = .{ .tag = .ref, .base = .dst0d };
46243 const dst0p: Select.Operand = .{ .tag = .ref, .base = .dst0p };
46244 const dst0q: Select.Operand = .{ .tag = .ref, .base = .dst0q };
46245 const dst0t: Select.Operand = .{ .tag = .ref, .base = .dst0t };
46246 const dst0x: Select.Operand = .{ .tag = .ref, .base = .dst0x };
46247 const dst0y: Select.Operand = .{ .tag = .ref, .base = .dst0y };
46248
46249 const src0b: Select.Operand = .{ .tag = .ref, .base = .src0b };
46250 const src0w: Select.Operand = .{ .tag = .ref, .base = .src0w };
46251 const src0d: Select.Operand = .{ .tag = .ref, .base = .src0d };
46252 const src0p: Select.Operand = .{ .tag = .ref, .base = .src0p };
46253 const src0q: Select.Operand = .{ .tag = .ref, .base = .src0q };
46254 const src0t: Select.Operand = .{ .tag = .ref, .base = .src0t };
46255 const src0x: Select.Operand = .{ .tag = .ref, .base = .src0x };
46256 const src0y: Select.Operand = .{ .tag = .ref, .base = .src0y };
46257
46258 const src1b: Select.Operand = .{ .tag = .ref, .base = .src1b };
46259 const src1w: Select.Operand = .{ .tag = .ref, .base = .src1w };
46260 const src1d: Select.Operand = .{ .tag = .ref, .base = .src1d };
46261 const src1p: Select.Operand = .{ .tag = .ref, .base = .src1p };
46262 const src1q: Select.Operand = .{ .tag = .ref, .base = .src1q };
46263 const src1t: Select.Operand = .{ .tag = .ref, .base = .src1t };
46264 const src1x: Select.Operand = .{ .tag = .ref, .base = .src1x };
46265 const src1y: Select.Operand = .{ .tag = .ref, .base = .src1y };
46832 const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };
46833
46834 const @"0b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp0, .size = .none } };
46835 const @"0f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp0, .size = .none } };
46836 const @"1b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp1, .size = .none } };
46837 const @"1f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp1, .size = .none } };
46838 const @"2b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp2, .size = .none } };
46839 const @"2f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp2, .size = .none } };
46840
46841 const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0b };
46842 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };
46843 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };
46844 const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };
46845 const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };
46846 const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };
46847 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };
46848 const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0y };
46849
46850 const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1b };
46851 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };
46852 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };
46853 const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };
46854 const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };
46855 const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };
46856 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };
46857 const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1y };
46858
46859 const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2b };
46860 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };
46861 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };
46862 const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };
46863 const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };
46864 const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };
46865 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };
46866 const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2y };
46867
46868 const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3b };
46869 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };
46870 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };
46871 const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };
46872 const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };
46873 const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };
46874 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };
46875 const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3y };
46876
46877 const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4b };
46878 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };
46879 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };
46880 const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };
46881 const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };
46882 const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };
46883 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };
46884 const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4y };
46885
46886 const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5b };
46887 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };
46888 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };
46889 const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };
46890 const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };
46891 const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };
46892 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };
46893 const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5y };
46894
46895 const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6b };
46896 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };
46897 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };
46898 const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };
46899 const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };
46900 const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };
46901 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };
46902 const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6y };
46903
46904 const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7b };
46905 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };
46906 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };
46907 const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };
46908 const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };
46909 const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };
46910 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };
46911 const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7y };
46912
46913 const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8b };
46914 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };
46915 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };
46916 const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };
46917 const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };
46918 const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };
46919 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };
46920 const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8y };
46921
46922 const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0b };
46923 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };
46924 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };
46925 const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };
46926 const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };
46927 const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };
46928 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };
46929 const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0y };
46930
46931 const src0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0b };
46932 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };
46933 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };
46934 const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };
46935 const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };
46936 const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };
46937 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };
46938 const src0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0y };
46939
46940 const src1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1b };
46941 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };
46942 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };
46943 const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };
46944 const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };
46945 const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };
46946 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };
46947 const src1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1y };
4626646948
4626746949 fn si(imm: i32) Select.Operand {
46268 return .{ .tag = .simm, .imm = imm };
46950 return .{ .flags = .{ .tag = .simm }, .imm = imm };
4626946951 }
4627046952 fn sa(base: Ref.Sized, adjust: Adjust) Select.Operand {
46271 return .{ .tag = .simm, .base = base, .adjust = adjust };
46953 return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base };
46954 }
46955 fn sa2(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
46956 return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index } };
4627246957 }
4627346958 fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand {
46274 return .{ .tag = .simm, .base = base, .adjust = adjust, .imm = imm };
46959 return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm };
4627546960 }
4627646961 fn ui(imm: u32) Select.Operand {
46277 return .{ .tag = .uimm, .imm = @bitCast(imm) };
46962 return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) };
4627846963 }
4627946964 fn ua(base: Ref.Sized, adjust: Adjust) Select.Operand {
46280 return .{ .tag = .uimm, .base = base, .adjust = adjust };
46965 return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base };
4628146966 }
4628246967 fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand {
46283 return .{ .tag = .uimm, .base = base, .adjust = adjust, .imm = @bitCast(imm) };
46968 return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base, .imm = @bitCast(imm) };
4628446969 }
4628546970
4628646971 fn rm(mode: bits.RoundMode) Select.Operand {
46287 return .{ .tag = .uimm, .imm = @intCast(mode.imm().unsigned) };
46972 return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(mode.imm().unsigned) };
4628846973 }
4628946974 fn sp(pred: bits.SseFloatPredicate) Select.Operand {
46290 return .{ .tag = .uimm, .imm = @intCast(pred.imm().unsigned) };
46975 return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(pred.imm().unsigned) };
4629146976 }
4629246977 fn vp(pred: bits.VexFloatPredicate) Select.Operand {
46293 return .{ .tag = .uimm, .imm = @intCast(pred.imm().unsigned) };
46978 return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(pred.imm().unsigned) };
4629446979 }
4629546980
46296 fn lea(size: Memory.Size, base: Ref) Select.Operand {
46981 fn lea(base: Ref.Sized) Select.Operand {
4629746982 return .{
46298 .tag = .lea,
46299 .base = .{ .ref = base, .size = size },
46983 .flags = .{ .tag = .lea },
46984 .base = base,
4630046985 };
4630146986 }
46302 fn leaa(size: Memory.Size, base: Ref, adjust: Adjust) Select.Operand {
46987 fn leaa(base: Ref.Sized, adjust: Adjust) Select.Operand {
4630346988 return .{
46304 .tag = .lea,
46305 .base = .{ .ref = base, .size = size },
46306 .adjust = adjust,
46989 .flags = .{ .tag = .lea, .adjust = adjust },
46990 .base = base,
4630746991 };
4630846992 }
46309 fn lead(size: Memory.Size, base: Ref, disp: i32) Select.Operand {
46993 fn lead(base: Ref.Sized, disp: i32) Select.Operand {
4631046994 return .{
46311 .tag = .lea,
46312 .base = .{ .ref = base, .size = size },
46995 .flags = .{ .tag = .lea },
46996 .base = base,
4631346997 .imm = disp,
4631446998 };
4631546999 }
46316 fn leai(size: Memory.Size, base: Ref, index: Ref) Select.Operand {
47000 fn leai(base: Ref.Sized, index: Ref) Select.Operand {
4631747001 return .{
46318 .tag = .lea,
46319 .base = .{ .ref = base, .size = size },
46320 .index = .{ .ref = index, .scale = .@"1" },
47002 .flags = .{ .tag = .lea },
47003 .base = base,
47004 .index = .{ .ref = index },
4632147005 };
4632247006 }
46323 fn leaia(size: Memory.Size, base: Ref, index: Ref, adjust: Adjust) Select.Operand {
47007 fn leaia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
4632447008 return .{
46325 .tag = .lea,
46326 .base = .{ .ref = base, .size = size },
46327 .index = .{ .ref = index, .scale = .@"1" },
46328 .adjust = adjust,
47009 .flags = .{ .tag = .lea, .adjust = adjust },
47010 .base = base,
47011 .index = .{ .ref = index },
4632947012 };
4633047013 }
46331 fn leaid(size: Memory.Size, base: Ref, index: Ref, disp: i32) Select.Operand {
47014 fn leaid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand {
4633247015 return .{
46333 .tag = .lea,
46334 .base = .{ .ref = base, .size = size },
46335 .index = .{ .ref = index, .scale = .@"1" },
47016 .flags = .{ .tag = .lea },
47017 .base = base,
47018 .index = .{ .ref = index },
4633647019 .imm = disp,
4633747020 };
4633847021 }
46339 fn leasi(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref) Select.Operand {
47022 fn leasi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand {
4634047023 return .{
46341 .tag = .lea,
46342 .base = .{ .ref = base, .size = size },
47024 .flags = .{ .tag = .lea },
47025 .base = base,
4634347026 .index = .{ .ref = index, .scale = scale },
4634447027 };
4634547028 }
46346 fn leasid(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand {
47029 fn leasid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand {
4634747030 return .{
46348 .tag = .lea,
46349 .base = .{ .ref = base, .size = size },
47031 .flags = .{ .tag = .lea },
47032 .base = base,
4635047033 .index = .{ .ref = index, .scale = scale },
4635147034 .imm = disp,
4635247035 };
4635347036 }
46354 fn leasiad(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
47037 fn leasiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
4635547038 return .{
46356 .tag = .lea,
46357 .base = .{ .ref = base, .size = size },
47039 .flags = .{ .tag = .lea, .adjust = adjust },
47040 .base = base,
4635847041 .index = .{ .ref = index, .scale = scale },
46359 .adjust = adjust,
4636047042 .imm = disp,
4636147043 };
4636247044 }
4636347045
4636447046 fn mem(base: Ref.Sized) Select.Operand {
4636547047 return .{
46366 .tag = .mem,
47048 .flags = .{ .tag = .mem },
4636747049 .base = base,
4636847050 };
4636947051 }
4637047052 fn memd(base: Ref.Sized, disp: i32) Select.Operand {
4637147053 return .{
46372 .tag = .mem,
47054 .flags = .{ .tag = .mem },
4637347055 .base = base,
4637447056 .imm = disp,
4637547057 };
4637647058 }
4637747059 fn mema(base: Ref.Sized, adjust: Adjust) Select.Operand {
4637847060 return .{
46379 .tag = .mem,
47061 .flags = .{ .tag = .mem, .adjust = adjust },
4638047062 .base = base,
46381 .adjust = adjust,
4638247063 };
4638347064 }
4638447065 fn memad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand {
4638547066 return .{
46386 .tag = .mem,
47067 .flags = .{ .tag = .mem, .adjust = adjust },
4638747068 .base = base,
46388 .adjust = adjust,
4638947069 .imm = disp,
4639047070 };
4639147071 }
4639247072 fn memi(base: Ref.Sized, index: Ref) Select.Operand {
4639347073 return .{
46394 .tag = .mem,
47074 .flags = .{ .tag = .mem },
4639547075 .base = base,
46396 .index = .{ .ref = index, .scale = .@"1" },
47076 .index = .{ .ref = index },
4639747077 };
4639847078 }
4639947079 fn memia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
4640047080 return .{
46401 .tag = .mem,
47081 .flags = .{ .tag = .mem, .adjust = adjust },
4640247082 .base = base,
46403 .index = .{ .ref = index, .scale = .@"1" },
46404 .adjust = adjust,
47083 .index = .{ .ref = index },
4640547084 };
4640647085 }
4640747086 fn memiad(base: Ref.Sized, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
4640847087 return .{
46409 .tag = .mem,
47088 .flags = .{ .tag = .mem, .adjust = adjust },
4641047089 .base = base,
46411 .index = .{ .ref = index, .scale = .@"1" },
46412 .adjust = adjust,
47090 .index = .{ .ref = index },
4641347091 .imm = disp,
4641447092 };
4641547093 }
4641647094 fn memid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand {
4641747095 return .{
46418 .tag = .mem,
47096 .flags = .{ .tag = .mem },
4641947097 .base = base,
46420 .index = .{ .ref = index, .scale = .@"1" },
47098 .index = .{ .ref = index },
4642147099 .imm = disp,
4642247100 };
4642347101 }
4642447102 fn memsi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand {
4642547103 return .{
46426 .tag = .mem,
47104 .flags = .{ .tag = .mem },
4642747105 .base = base,
4642847106 .index = .{ .ref = index, .scale = scale },
4642947107 };
4643047108 }
4643147109 fn memsia(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust) Select.Operand {
4643247110 return .{
46433 .tag = .mem,
47111 .flags = .{ .tag = .mem, .adjust = adjust },
4643447112 .base = base,
4643547113 .index = .{ .ref = index, .scale = scale },
46436 .adjust = adjust,
4643747114 };
4643847115 }
4643947116 fn memsid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand {
4644047117 return .{
46441 .tag = .mem,
47118 .flags = .{ .tag = .mem },
4644247119 .base = base,
4644347120 .index = .{ .ref = index, .scale = scale },
4644447121 .imm = disp,
......@@ -46446,10 +47123,9 @@ const Select = struct {
4644647123 }
4644747124 fn memsiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
4644847125 return .{
46449 .tag = .mem,
47126 .flags = .{ .tag = .mem, .adjust = adjust },
4645047127 .base = base,
4645147128 .index = .{ .ref = index, .scale = scale },
46452 .adjust = adjust,
4645347129 .imm = disp,
4645447130 };
4645547131 }
......@@ -46458,11 +47134,13 @@ const Select = struct {
4645847134 const UnsignedImm = @Type(.{
4645947135 .int = .{ .signedness = .unsigned, .bits = @typeInfo(SignedImm).int.bits },
4646047136 });
46461 const lhs: SignedImm = lhs: switch (op.adjust.lhs) {
47137 const lhs: SignedImm = lhs: switch (op.flags.adjust.lhs) {
4646247138 .none => 0,
4646347139 .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),
4646447140 .ptr_bit_size => s.cg.target.ptrBitWidth(),
4646547141 .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)),
47142 .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))) -
47143 @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)))),
4646647144 .size_sub_elem_size => {
4646747145 const ty = op.base.ref.deref(s).typeOf(s.cg);
4646847146 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
......@@ -46489,8 +47167,8 @@ const Select = struct {
4648947167 -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
4649047168 )),
4649147169 };
46492 const rhs = op.adjust.rhs.toLog2();
46493 const res = res: switch (op.adjust.op) {
47170 const rhs = op.flags.adjust.rhs.toLog2();
47171 const res = res: switch (op.flags.adjust.op) {
4649447172 .mul => {
4649547173 const res = @shlWithOverflow(lhs, rhs);
4649647174 assert(res[1] == 0);
......@@ -46498,14 +47176,14 @@ const Select = struct {
4649847176 },
4649947177 .div => @shrExact(lhs, rhs),
4650047178 };
46501 return switch (op.adjust.sign) {
47179 return switch (op.flags.adjust.sign) {
4650247180 .neg => op.imm - res,
4650347181 .pos => op.imm + res,
4650447182 };
4650547183 }
4650647184
4650747185 fn lower(op: Select.Operand, s: *Select) !CodeGen.Operand {
46508 return switch (op.tag) {
47186 return switch (op.flags.tag) {
4650947187 .none => .none,
4651047188 .backward_label => .{ .inst = s.labels[@intFromEnum(op.base.ref)].backward.? },
4651147189 .forward_label => for (&s.labels[@intFromEnum(op.base.ref)].forward) |*label| {
test/behavior/x86_64/math.zig+1544-2391
......@@ -1680,165 +1680,85 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
16801680 imm_arg,
16811681 );
16821682 }
1683 fn testInts() !void {
1683 fn testSameSignednessInts() !void {
16841684 try testArgs(i8, i1, -1);
16851685 try testArgs(i8, i1, 0);
1686 try testArgs(u8, i1, -1);
1687 try testArgs(u8, i1, 0);
16881686 try testArgs(i16, i1, -1);
16891687 try testArgs(i16, i1, 0);
1690 try testArgs(u16, i1, -1);
1691 try testArgs(u16, i1, 0);
16921688 try testArgs(i32, i1, -1);
16931689 try testArgs(i32, i1, 0);
1694 try testArgs(u32, i1, -1);
1695 try testArgs(u32, i1, 0);
16961690 try testArgs(i64, i1, -1);
16971691 try testArgs(i64, i1, 0);
1698 try testArgs(u64, i1, -1);
1699 try testArgs(u64, i1, 0);
17001692 try testArgs(i128, i1, -1);
17011693 try testArgs(i128, i1, 0);
1702 try testArgs(u128, i1, -1);
1703 try testArgs(u128, i1, 0);
17041694 try testArgs(i256, i1, -1);
17051695 try testArgs(i256, i1, 0);
1706 try testArgs(u256, i1, -1);
1707 try testArgs(u256, i1, 0);
17081696 try testArgs(i512, i1, -1);
17091697 try testArgs(i512, i1, 0);
1710 try testArgs(u512, i1, -1);
1711 try testArgs(u512, i1, 0);
17121698 try testArgs(i1024, i1, -1);
17131699 try testArgs(i1024, i1, 0);
1714 try testArgs(u1024, i1, -1);
1715 try testArgs(u1024, i1, 0);
1716 try testArgs(i8, u1, 0);
1717 try testArgs(i8, u1, 1 << 0);
17181700 try testArgs(u8, u1, 0);
17191701 try testArgs(u8, u1, 1 << 0);
1720 try testArgs(i16, u1, 0);
1721 try testArgs(i16, u1, 1 << 0);
17221702 try testArgs(u16, u1, 0);
17231703 try testArgs(u16, u1, 1 << 0);
1724 try testArgs(i32, u1, 0);
1725 try testArgs(i32, u1, 1 << 0);
17261704 try testArgs(u32, u1, 0);
17271705 try testArgs(u32, u1, 1 << 0);
1728 try testArgs(i64, u1, 0);
1729 try testArgs(i64, u1, 1 << 0);
17301706 try testArgs(u64, u1, 0);
17311707 try testArgs(u64, u1, 1 << 0);
1732 try testArgs(i128, u1, 0);
1733 try testArgs(i128, u1, 1 << 0);
17341708 try testArgs(u128, u1, 0);
17351709 try testArgs(u128, u1, 1 << 0);
1736 try testArgs(i256, u1, 0);
1737 try testArgs(i256, u1, 1 << 0);
17381710 try testArgs(u256, u1, 0);
17391711 try testArgs(u256, u1, 1 << 0);
1740 try testArgs(i512, u1, 0);
1741 try testArgs(i512, u1, 1 << 0);
17421712 try testArgs(u512, u1, 0);
17431713 try testArgs(u512, u1, 1 << 0);
1744 try testArgs(i1024, u1, 0);
1745 try testArgs(i1024, u1, 1 << 0);
17461714 try testArgs(u1024, u1, 0);
17471715 try testArgs(u1024, u1, 1 << 0);
17481716
17491717 try testArgs(i8, i2, -1 << 1);
17501718 try testArgs(i8, i2, -1);
17511719 try testArgs(i8, i2, 0);
1752 try testArgs(u8, i2, -1 << 1);
1753 try testArgs(u8, i2, -1);
1754 try testArgs(u8, i2, 0);
17551720 try testArgs(i16, i2, -1 << 1);
17561721 try testArgs(i16, i2, -1);
17571722 try testArgs(i16, i2, 0);
1758 try testArgs(u16, i2, -1 << 1);
1759 try testArgs(u16, i2, -1);
1760 try testArgs(u16, i2, 0);
17611723 try testArgs(i32, i2, -1 << 1);
17621724 try testArgs(i32, i2, -1);
17631725 try testArgs(i32, i2, 0);
1764 try testArgs(u32, i2, -1 << 1);
1765 try testArgs(u32, i2, -1);
1766 try testArgs(u32, i2, 0);
17671726 try testArgs(i64, i2, -1 << 1);
17681727 try testArgs(i64, i2, -1);
17691728 try testArgs(i64, i2, 0);
1770 try testArgs(u64, i2, -1 << 1);
1771 try testArgs(u64, i2, -1);
1772 try testArgs(u64, i2, 0);
17731729 try testArgs(i128, i2, -1 << 1);
17741730 try testArgs(i128, i2, -1);
17751731 try testArgs(i128, i2, 0);
1776 try testArgs(u128, i2, -1 << 1);
1777 try testArgs(u128, i2, -1);
1778 try testArgs(u128, i2, 0);
17791732 try testArgs(i256, i2, -1 << 1);
17801733 try testArgs(i256, i2, -1);
17811734 try testArgs(i256, i2, 0);
1782 try testArgs(u256, i2, -1 << 1);
1783 try testArgs(u256, i2, -1);
1784 try testArgs(u256, i2, 0);
17851735 try testArgs(i512, i2, -1 << 1);
17861736 try testArgs(i512, i2, -1);
17871737 try testArgs(i512, i2, 0);
1788 try testArgs(u512, i2, -1 << 1);
1789 try testArgs(u512, i2, -1);
1790 try testArgs(u512, i2, 0);
17911738 try testArgs(i1024, i2, -1 << 1);
17921739 try testArgs(i1024, i2, -1);
17931740 try testArgs(i1024, i2, 0);
1794 try testArgs(u1024, i2, -1 << 1);
1795 try testArgs(u1024, i2, -1);
1796 try testArgs(u1024, i2, 0);
1797 try testArgs(i8, u2, 0);
1798 try testArgs(i8, u2, 1 << 0);
1799 try testArgs(i8, u2, 1 << 1);
18001741 try testArgs(u8, u2, 0);
18011742 try testArgs(u8, u2, 1 << 0);
18021743 try testArgs(u8, u2, 1 << 1);
1803 try testArgs(i16, u2, 0);
1804 try testArgs(i16, u2, 1 << 0);
1805 try testArgs(i16, u2, 1 << 1);
18061744 try testArgs(u16, u2, 0);
18071745 try testArgs(u16, u2, 1 << 0);
18081746 try testArgs(u16, u2, 1 << 1);
1809 try testArgs(i32, u2, 0);
1810 try testArgs(i32, u2, 1 << 0);
1811 try testArgs(i32, u2, 1 << 1);
18121747 try testArgs(u32, u2, 0);
18131748 try testArgs(u32, u2, 1 << 0);
18141749 try testArgs(u32, u2, 1 << 1);
1815 try testArgs(i64, u2, 0);
1816 try testArgs(i64, u2, 1 << 0);
1817 try testArgs(i64, u2, 1 << 1);
18181750 try testArgs(u64, u2, 0);
18191751 try testArgs(u64, u2, 1 << 0);
18201752 try testArgs(u64, u2, 1 << 1);
1821 try testArgs(i128, u2, 0);
1822 try testArgs(i128, u2, 1 << 0);
1823 try testArgs(i128, u2, 1 << 1);
18241753 try testArgs(u128, u2, 0);
18251754 try testArgs(u128, u2, 1 << 0);
18261755 try testArgs(u128, u2, 1 << 1);
1827 try testArgs(i256, u2, 0);
1828 try testArgs(i256, u2, 1 << 0);
1829 try testArgs(i256, u2, 1 << 1);
18301756 try testArgs(u256, u2, 0);
18311757 try testArgs(u256, u2, 1 << 0);
18321758 try testArgs(u256, u2, 1 << 1);
1833 try testArgs(i512, u2, 0);
1834 try testArgs(i512, u2, 1 << 0);
1835 try testArgs(i512, u2, 1 << 1);
18361759 try testArgs(u512, u2, 0);
18371760 try testArgs(u512, u2, 1 << 0);
18381761 try testArgs(u512, u2, 1 << 1);
1839 try testArgs(i1024, u2, 0);
1840 try testArgs(i1024, u2, 1 << 0);
1841 try testArgs(i1024, u2, 1 << 1);
18421762 try testArgs(u1024, u2, 0);
18431763 try testArgs(u1024, u2, 1 << 0);
18441764 try testArgs(u1024, u2, 1 << 1);
......@@ -1846,96 +1766,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
18461766 try testArgs(i8, i3, -1 << 2);
18471767 try testArgs(i8, i3, -1);
18481768 try testArgs(i8, i3, 0);
1849 try testArgs(u8, i3, -1 << 2);
1850 try testArgs(u8, i3, -1);
1851 try testArgs(u8, i3, 0);
18521769 try testArgs(i16, i3, -1 << 2);
18531770 try testArgs(i16, i3, -1);
18541771 try testArgs(i16, i3, 0);
1855 try testArgs(u16, i3, -1 << 2);
1856 try testArgs(u16, i3, -1);
1857 try testArgs(u16, i3, 0);
18581772 try testArgs(i32, i3, -1 << 2);
18591773 try testArgs(i32, i3, -1);
18601774 try testArgs(i32, i3, 0);
1861 try testArgs(u32, i3, -1 << 2);
1862 try testArgs(u32, i3, -1);
1863 try testArgs(u32, i3, 0);
18641775 try testArgs(i64, i3, -1 << 2);
18651776 try testArgs(i64, i3, -1);
18661777 try testArgs(i64, i3, 0);
1867 try testArgs(u64, i3, -1 << 2);
1868 try testArgs(u64, i3, -1);
1869 try testArgs(u64, i3, 0);
18701778 try testArgs(i128, i3, -1 << 2);
18711779 try testArgs(i128, i3, -1);
18721780 try testArgs(i128, i3, 0);
1873 try testArgs(u128, i3, -1 << 2);
1874 try testArgs(u128, i3, -1);
1875 try testArgs(u128, i3, 0);
18761781 try testArgs(i256, i3, -1 << 2);
18771782 try testArgs(i256, i3, -1);
18781783 try testArgs(i256, i3, 0);
1879 try testArgs(u256, i3, -1 << 2);
1880 try testArgs(u256, i3, -1);
1881 try testArgs(u256, i3, 0);
18821784 try testArgs(i512, i3, -1 << 2);
18831785 try testArgs(i512, i3, -1);
18841786 try testArgs(i512, i3, 0);
1885 try testArgs(u512, i3, -1 << 2);
1886 try testArgs(u512, i3, -1);
1887 try testArgs(u512, i3, 0);
18881787 try testArgs(i1024, i3, -1 << 2);
18891788 try testArgs(i1024, i3, -1);
18901789 try testArgs(i1024, i3, 0);
1891 try testArgs(u1024, i3, -1 << 2);
1892 try testArgs(u1024, i3, -1);
1893 try testArgs(u1024, i3, 0);
1894 try testArgs(i8, u3, 0);
1895 try testArgs(i8, u3, 1 << 0);
1896 try testArgs(i8, u3, 1 << 2);
18971790 try testArgs(u8, u3, 0);
18981791 try testArgs(u8, u3, 1 << 0);
18991792 try testArgs(u8, u3, 1 << 2);
1900 try testArgs(i16, u3, 0);
1901 try testArgs(i16, u3, 1 << 0);
1902 try testArgs(i16, u3, 1 << 2);
19031793 try testArgs(u16, u3, 0);
19041794 try testArgs(u16, u3, 1 << 0);
19051795 try testArgs(u16, u3, 1 << 2);
1906 try testArgs(i32, u3, 0);
1907 try testArgs(i32, u3, 1 << 0);
1908 try testArgs(i32, u3, 1 << 2);
19091796 try testArgs(u32, u3, 0);
19101797 try testArgs(u32, u3, 1 << 0);
19111798 try testArgs(u32, u3, 1 << 2);
1912 try testArgs(i64, u3, 0);
1913 try testArgs(i64, u3, 1 << 0);
1914 try testArgs(i64, u3, 1 << 2);
19151799 try testArgs(u64, u3, 0);
19161800 try testArgs(u64, u3, 1 << 0);
19171801 try testArgs(u64, u3, 1 << 2);
1918 try testArgs(i128, u3, 0);
1919 try testArgs(i128, u3, 1 << 0);
1920 try testArgs(i128, u3, 1 << 2);
19211802 try testArgs(u128, u3, 0);
19221803 try testArgs(u128, u3, 1 << 0);
19231804 try testArgs(u128, u3, 1 << 2);
1924 try testArgs(i256, u3, 0);
1925 try testArgs(i256, u3, 1 << 0);
1926 try testArgs(i256, u3, 1 << 2);
19271805 try testArgs(u256, u3, 0);
19281806 try testArgs(u256, u3, 1 << 0);
19291807 try testArgs(u256, u3, 1 << 2);
1930 try testArgs(i512, u3, 0);
1931 try testArgs(i512, u3, 1 << 0);
1932 try testArgs(i512, u3, 1 << 2);
19331808 try testArgs(u512, u3, 0);
19341809 try testArgs(u512, u3, 1 << 0);
19351810 try testArgs(u512, u3, 1 << 2);
1936 try testArgs(i1024, u3, 0);
1937 try testArgs(i1024, u3, 1 << 0);
1938 try testArgs(i1024, u3, 1 << 2);
19391811 try testArgs(u1024, u3, 0);
19401812 try testArgs(u1024, u3, 1 << 0);
19411813 try testArgs(u1024, u3, 1 << 2);
......@@ -1943,96 +1815,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
19431815 try testArgs(i8, i4, -1 << 3);
19441816 try testArgs(i8, i4, -1);
19451817 try testArgs(i8, i4, 0);
1946 try testArgs(u8, i4, -1 << 3);
1947 try testArgs(u8, i4, -1);
1948 try testArgs(u8, i4, 0);
19491818 try testArgs(i16, i4, -1 << 3);
19501819 try testArgs(i16, i4, -1);
19511820 try testArgs(i16, i4, 0);
1952 try testArgs(u16, i4, -1 << 3);
1953 try testArgs(u16, i4, -1);
1954 try testArgs(u16, i4, 0);
19551821 try testArgs(i32, i4, -1 << 3);
19561822 try testArgs(i32, i4, -1);
19571823 try testArgs(i32, i4, 0);
1958 try testArgs(u32, i4, -1 << 3);
1959 try testArgs(u32, i4, -1);
1960 try testArgs(u32, i4, 0);
19611824 try testArgs(i64, i4, -1 << 3);
19621825 try testArgs(i64, i4, -1);
19631826 try testArgs(i64, i4, 0);
1964 try testArgs(u64, i4, -1 << 3);
1965 try testArgs(u64, i4, -1);
1966 try testArgs(u64, i4, 0);
19671827 try testArgs(i128, i4, -1 << 3);
19681828 try testArgs(i128, i4, -1);
19691829 try testArgs(i128, i4, 0);
1970 try testArgs(u128, i4, -1 << 3);
1971 try testArgs(u128, i4, -1);
1972 try testArgs(u128, i4, 0);
19731830 try testArgs(i256, i4, -1 << 3);
19741831 try testArgs(i256, i4, -1);
19751832 try testArgs(i256, i4, 0);
1976 try testArgs(u256, i4, -1 << 3);
1977 try testArgs(u256, i4, -1);
1978 try testArgs(u256, i4, 0);
19791833 try testArgs(i512, i4, -1 << 3);
19801834 try testArgs(i512, i4, -1);
19811835 try testArgs(i512, i4, 0);
1982 try testArgs(u512, i4, -1 << 3);
1983 try testArgs(u512, i4, -1);
1984 try testArgs(u512, i4, 0);
19851836 try testArgs(i1024, i4, -1 << 3);
19861837 try testArgs(i1024, i4, -1);
19871838 try testArgs(i1024, i4, 0);
1988 try testArgs(u1024, i4, -1 << 3);
1989 try testArgs(u1024, i4, -1);
1990 try testArgs(u1024, i4, 0);
1991 try testArgs(i8, u4, 0);
1992 try testArgs(i8, u4, 1 << 0);
1993 try testArgs(i8, u4, 1 << 3);
19941839 try testArgs(u8, u4, 0);
19951840 try testArgs(u8, u4, 1 << 0);
19961841 try testArgs(u8, u4, 1 << 3);
1997 try testArgs(i16, u4, 0);
1998 try testArgs(i16, u4, 1 << 0);
1999 try testArgs(i16, u4, 1 << 3);
20001842 try testArgs(u16, u4, 0);
20011843 try testArgs(u16, u4, 1 << 0);
20021844 try testArgs(u16, u4, 1 << 3);
2003 try testArgs(i32, u4, 0);
2004 try testArgs(i32, u4, 1 << 0);
2005 try testArgs(i32, u4, 1 << 3);
20061845 try testArgs(u32, u4, 0);
20071846 try testArgs(u32, u4, 1 << 0);
20081847 try testArgs(u32, u4, 1 << 3);
2009 try testArgs(i64, u4, 0);
2010 try testArgs(i64, u4, 1 << 0);
2011 try testArgs(i64, u4, 1 << 3);
20121848 try testArgs(u64, u4, 0);
20131849 try testArgs(u64, u4, 1 << 0);
20141850 try testArgs(u64, u4, 1 << 3);
2015 try testArgs(i128, u4, 0);
2016 try testArgs(i128, u4, 1 << 0);
2017 try testArgs(i128, u4, 1 << 3);
20181851 try testArgs(u128, u4, 0);
20191852 try testArgs(u128, u4, 1 << 0);
20201853 try testArgs(u128, u4, 1 << 3);
2021 try testArgs(i256, u4, 0);
2022 try testArgs(i256, u4, 1 << 0);
2023 try testArgs(i256, u4, 1 << 3);
20241854 try testArgs(u256, u4, 0);
20251855 try testArgs(u256, u4, 1 << 0);
20261856 try testArgs(u256, u4, 1 << 3);
2027 try testArgs(i512, u4, 0);
2028 try testArgs(i512, u4, 1 << 0);
2029 try testArgs(i512, u4, 1 << 3);
20301857 try testArgs(u512, u4, 0);
20311858 try testArgs(u512, u4, 1 << 0);
20321859 try testArgs(u512, u4, 1 << 3);
2033 try testArgs(i1024, u4, 0);
2034 try testArgs(i1024, u4, 1 << 0);
2035 try testArgs(i1024, u4, 1 << 3);
20361860 try testArgs(u1024, u4, 0);
20371861 try testArgs(u1024, u4, 1 << 0);
20381862 try testArgs(u1024, u4, 1 << 3);
......@@ -2040,96 +1864,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
20401864 try testArgs(i8, i5, -1 << 4);
20411865 try testArgs(i8, i5, -1);
20421866 try testArgs(i8, i5, 0);
2043 try testArgs(u8, i5, -1 << 4);
2044 try testArgs(u8, i5, -1);
2045 try testArgs(u8, i5, 0);
20461867 try testArgs(i16, i5, -1 << 4);
20471868 try testArgs(i16, i5, -1);
20481869 try testArgs(i16, i5, 0);
2049 try testArgs(u16, i5, -1 << 4);
2050 try testArgs(u16, i5, -1);
2051 try testArgs(u16, i5, 0);
20521870 try testArgs(i32, i5, -1 << 4);
20531871 try testArgs(i32, i5, -1);
20541872 try testArgs(i32, i5, 0);
2055 try testArgs(u32, i5, -1 << 4);
2056 try testArgs(u32, i5, -1);
2057 try testArgs(u32, i5, 0);
20581873 try testArgs(i64, i5, -1 << 4);
20591874 try testArgs(i64, i5, -1);
20601875 try testArgs(i64, i5, 0);
2061 try testArgs(u64, i5, -1 << 4);
2062 try testArgs(u64, i5, -1);
2063 try testArgs(u64, i5, 0);
20641876 try testArgs(i128, i5, -1 << 4);
20651877 try testArgs(i128, i5, -1);
20661878 try testArgs(i128, i5, 0);
2067 try testArgs(u128, i5, -1 << 4);
2068 try testArgs(u128, i5, -1);
2069 try testArgs(u128, i5, 0);
20701879 try testArgs(i256, i5, -1 << 4);
20711880 try testArgs(i256, i5, -1);
20721881 try testArgs(i256, i5, 0);
2073 try testArgs(u256, i5, -1 << 4);
2074 try testArgs(u256, i5, -1);
2075 try testArgs(u256, i5, 0);
20761882 try testArgs(i512, i5, -1 << 4);
20771883 try testArgs(i512, i5, -1);
20781884 try testArgs(i512, i5, 0);
2079 try testArgs(u512, i5, -1 << 4);
2080 try testArgs(u512, i5, -1);
2081 try testArgs(u512, i5, 0);
20821885 try testArgs(i1024, i5, -1 << 4);
20831886 try testArgs(i1024, i5, -1);
20841887 try testArgs(i1024, i5, 0);
2085 try testArgs(u1024, i5, -1 << 4);
2086 try testArgs(u1024, i5, -1);
2087 try testArgs(u1024, i5, 0);
2088 try testArgs(i8, u5, 0);
2089 try testArgs(i8, u5, 1 << 0);
2090 try testArgs(i8, u5, 1 << 4);
20911888 try testArgs(u8, u5, 0);
20921889 try testArgs(u8, u5, 1 << 0);
20931890 try testArgs(u8, u5, 1 << 4);
2094 try testArgs(i16, u5, 0);
2095 try testArgs(i16, u5, 1 << 0);
2096 try testArgs(i16, u5, 1 << 4);
20971891 try testArgs(u16, u5, 0);
20981892 try testArgs(u16, u5, 1 << 0);
20991893 try testArgs(u16, u5, 1 << 4);
2100 try testArgs(i32, u5, 0);
2101 try testArgs(i32, u5, 1 << 0);
2102 try testArgs(i32, u5, 1 << 4);
21031894 try testArgs(u32, u5, 0);
21041895 try testArgs(u32, u5, 1 << 0);
21051896 try testArgs(u32, u5, 1 << 4);
2106 try testArgs(i64, u5, 0);
2107 try testArgs(i64, u5, 1 << 0);
2108 try testArgs(i64, u5, 1 << 4);
21091897 try testArgs(u64, u5, 0);
21101898 try testArgs(u64, u5, 1 << 0);
21111899 try testArgs(u64, u5, 1 << 4);
2112 try testArgs(i128, u5, 0);
2113 try testArgs(i128, u5, 1 << 0);
2114 try testArgs(i128, u5, 1 << 4);
21151900 try testArgs(u128, u5, 0);
21161901 try testArgs(u128, u5, 1 << 0);
21171902 try testArgs(u128, u5, 1 << 4);
2118 try testArgs(i256, u5, 0);
2119 try testArgs(i256, u5, 1 << 0);
2120 try testArgs(i256, u5, 1 << 4);
21211903 try testArgs(u256, u5, 0);
21221904 try testArgs(u256, u5, 1 << 0);
21231905 try testArgs(u256, u5, 1 << 4);
2124 try testArgs(i512, u5, 0);
2125 try testArgs(i512, u5, 1 << 0);
2126 try testArgs(i512, u5, 1 << 4);
21271906 try testArgs(u512, u5, 0);
21281907 try testArgs(u512, u5, 1 << 0);
21291908 try testArgs(u512, u5, 1 << 4);
2130 try testArgs(i1024, u5, 0);
2131 try testArgs(i1024, u5, 1 << 0);
2132 try testArgs(i1024, u5, 1 << 4);
21331909 try testArgs(u1024, u5, 0);
21341910 try testArgs(u1024, u5, 1 << 0);
21351911 try testArgs(u1024, u5, 1 << 4);
......@@ -2137,96 +1913,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
21371913 try testArgs(i8, i7, -1 << 6);
21381914 try testArgs(i8, i7, -1);
21391915 try testArgs(i8, i7, 0);
2140 try testArgs(u8, i7, -1 << 6);
2141 try testArgs(u8, i7, -1);
2142 try testArgs(u8, i7, 0);
21431916 try testArgs(i16, i7, -1 << 6);
21441917 try testArgs(i16, i7, -1);
21451918 try testArgs(i16, i7, 0);
2146 try testArgs(u16, i7, -1 << 6);
2147 try testArgs(u16, i7, -1);
2148 try testArgs(u16, i7, 0);
21491919 try testArgs(i32, i7, -1 << 6);
21501920 try testArgs(i32, i7, -1);
21511921 try testArgs(i32, i7, 0);
2152 try testArgs(u32, i7, -1 << 6);
2153 try testArgs(u32, i7, -1);
2154 try testArgs(u32, i7, 0);
21551922 try testArgs(i64, i7, -1 << 6);
21561923 try testArgs(i64, i7, -1);
21571924 try testArgs(i64, i7, 0);
2158 try testArgs(u64, i7, -1 << 6);
2159 try testArgs(u64, i7, -1);
2160 try testArgs(u64, i7, 0);
21611925 try testArgs(i128, i7, -1 << 6);
21621926 try testArgs(i128, i7, -1);
21631927 try testArgs(i128, i7, 0);
2164 try testArgs(u128, i7, -1 << 6);
2165 try testArgs(u128, i7, -1);
2166 try testArgs(u128, i7, 0);
21671928 try testArgs(i256, i7, -1 << 6);
21681929 try testArgs(i256, i7, -1);
21691930 try testArgs(i256, i7, 0);
2170 try testArgs(u256, i7, -1 << 6);
2171 try testArgs(u256, i7, -1);
2172 try testArgs(u256, i7, 0);
21731931 try testArgs(i512, i7, -1 << 6);
21741932 try testArgs(i512, i7, -1);
21751933 try testArgs(i512, i7, 0);
2176 try testArgs(u512, i7, -1 << 6);
2177 try testArgs(u512, i7, -1);
2178 try testArgs(u512, i7, 0);
21791934 try testArgs(i1024, i7, -1 << 6);
21801935 try testArgs(i1024, i7, -1);
21811936 try testArgs(i1024, i7, 0);
2182 try testArgs(u1024, i7, -1 << 6);
2183 try testArgs(u1024, i7, -1);
2184 try testArgs(u1024, i7, 0);
2185 try testArgs(i8, u7, 0);
2186 try testArgs(i8, u7, 1 << 0);
2187 try testArgs(i8, u7, 1 << 6);
21881937 try testArgs(u8, u7, 0);
21891938 try testArgs(u8, u7, 1 << 0);
21901939 try testArgs(u8, u7, 1 << 6);
2191 try testArgs(i16, u7, 0);
2192 try testArgs(i16, u7, 1 << 0);
2193 try testArgs(i16, u7, 1 << 6);
21941940 try testArgs(u16, u7, 0);
21951941 try testArgs(u16, u7, 1 << 0);
21961942 try testArgs(u16, u7, 1 << 6);
2197 try testArgs(i32, u7, 0);
2198 try testArgs(i32, u7, 1 << 0);
2199 try testArgs(i32, u7, 1 << 6);
22001943 try testArgs(u32, u7, 0);
22011944 try testArgs(u32, u7, 1 << 0);
22021945 try testArgs(u32, u7, 1 << 6);
2203 try testArgs(i64, u7, 0);
2204 try testArgs(i64, u7, 1 << 0);
2205 try testArgs(i64, u7, 1 << 6);
22061946 try testArgs(u64, u7, 0);
22071947 try testArgs(u64, u7, 1 << 0);
22081948 try testArgs(u64, u7, 1 << 6);
2209 try testArgs(i128, u7, 0);
2210 try testArgs(i128, u7, 1 << 0);
2211 try testArgs(i128, u7, 1 << 6);
22121949 try testArgs(u128, u7, 0);
22131950 try testArgs(u128, u7, 1 << 0);
22141951 try testArgs(u128, u7, 1 << 6);
2215 try testArgs(i256, u7, 0);
2216 try testArgs(i256, u7, 1 << 0);
2217 try testArgs(i256, u7, 1 << 6);
22181952 try testArgs(u256, u7, 0);
22191953 try testArgs(u256, u7, 1 << 0);
22201954 try testArgs(u256, u7, 1 << 6);
2221 try testArgs(i512, u7, 0);
2222 try testArgs(i512, u7, 1 << 0);
2223 try testArgs(i512, u7, 1 << 6);
22241955 try testArgs(u512, u7, 0);
22251956 try testArgs(u512, u7, 1 << 0);
22261957 try testArgs(u512, u7, 1 << 6);
2227 try testArgs(i1024, u7, 0);
2228 try testArgs(i1024, u7, 1 << 0);
2229 try testArgs(i1024, u7, 1 << 6);
22301958 try testArgs(u1024, u7, 0);
22311959 try testArgs(u1024, u7, 1 << 0);
22321960 try testArgs(u1024, u7, 1 << 6);
......@@ -2234,96 +1962,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
22341962 try testArgs(i8, i8, -1 << 7);
22351963 try testArgs(i8, i8, -1);
22361964 try testArgs(i8, i8, 0);
2237 try testArgs(u8, i8, -1 << 7);
2238 try testArgs(u8, i8, -1);
2239 try testArgs(u8, i8, 0);
22401965 try testArgs(i16, i8, -1 << 7);
22411966 try testArgs(i16, i8, -1);
22421967 try testArgs(i16, i8, 0);
2243 try testArgs(u16, i8, -1 << 7);
2244 try testArgs(u16, i8, -1);
2245 try testArgs(u16, i8, 0);
22461968 try testArgs(i32, i8, -1 << 7);
22471969 try testArgs(i32, i8, -1);
22481970 try testArgs(i32, i8, 0);
2249 try testArgs(u32, i8, -1 << 7);
2250 try testArgs(u32, i8, -1);
2251 try testArgs(u32, i8, 0);
22521971 try testArgs(i64, i8, -1 << 7);
22531972 try testArgs(i64, i8, -1);
22541973 try testArgs(i64, i8, 0);
2255 try testArgs(u64, i8, -1 << 7);
2256 try testArgs(u64, i8, -1);
2257 try testArgs(u64, i8, 0);
22581974 try testArgs(i128, i8, -1 << 7);
22591975 try testArgs(i128, i8, -1);
22601976 try testArgs(i128, i8, 0);
2261 try testArgs(u128, i8, -1 << 7);
2262 try testArgs(u128, i8, -1);
2263 try testArgs(u128, i8, 0);
22641977 try testArgs(i256, i8, -1 << 7);
22651978 try testArgs(i256, i8, -1);
22661979 try testArgs(i256, i8, 0);
2267 try testArgs(u256, i8, -1 << 7);
2268 try testArgs(u256, i8, -1);
2269 try testArgs(u256, i8, 0);
22701980 try testArgs(i512, i8, -1 << 7);
22711981 try testArgs(i512, i8, -1);
22721982 try testArgs(i512, i8, 0);
2273 try testArgs(u512, i8, -1 << 7);
2274 try testArgs(u512, i8, -1);
2275 try testArgs(u512, i8, 0);
22761983 try testArgs(i1024, i8, -1 << 7);
22771984 try testArgs(i1024, i8, -1);
22781985 try testArgs(i1024, i8, 0);
2279 try testArgs(u1024, i8, -1 << 7);
2280 try testArgs(u1024, i8, -1);
2281 try testArgs(u1024, i8, 0);
2282 try testArgs(i8, u8, 0);
2283 try testArgs(i8, u8, 1 << 0);
2284 try testArgs(i8, u8, 1 << 7);
22851986 try testArgs(u8, u8, 0);
22861987 try testArgs(u8, u8, 1 << 0);
22871988 try testArgs(u8, u8, 1 << 7);
2288 try testArgs(i16, u8, 0);
2289 try testArgs(i16, u8, 1 << 0);
2290 try testArgs(i16, u8, 1 << 7);
22911989 try testArgs(u16, u8, 0);
22921990 try testArgs(u16, u8, 1 << 0);
22931991 try testArgs(u16, u8, 1 << 7);
2294 try testArgs(i32, u8, 0);
2295 try testArgs(i32, u8, 1 << 0);
2296 try testArgs(i32, u8, 1 << 7);
22971992 try testArgs(u32, u8, 0);
22981993 try testArgs(u32, u8, 1 << 0);
22991994 try testArgs(u32, u8, 1 << 7);
2300 try testArgs(i64, u8, 0);
2301 try testArgs(i64, u8, 1 << 0);
2302 try testArgs(i64, u8, 1 << 7);
23031995 try testArgs(u64, u8, 0);
23041996 try testArgs(u64, u8, 1 << 0);
23051997 try testArgs(u64, u8, 1 << 7);
2306 try testArgs(i128, u8, 0);
2307 try testArgs(i128, u8, 1 << 0);
2308 try testArgs(i128, u8, 1 << 7);
23091998 try testArgs(u128, u8, 0);
23101999 try testArgs(u128, u8, 1 << 0);
23112000 try testArgs(u128, u8, 1 << 7);
2312 try testArgs(i256, u8, 0);
2313 try testArgs(i256, u8, 1 << 0);
2314 try testArgs(i256, u8, 1 << 7);
23152001 try testArgs(u256, u8, 0);
23162002 try testArgs(u256, u8, 1 << 0);
23172003 try testArgs(u256, u8, 1 << 7);
2318 try testArgs(i512, u8, 0);
2319 try testArgs(i512, u8, 1 << 0);
2320 try testArgs(i512, u8, 1 << 7);
23212004 try testArgs(u512, u8, 0);
23222005 try testArgs(u512, u8, 1 << 0);
23232006 try testArgs(u512, u8, 1 << 7);
2324 try testArgs(i1024, u8, 0);
2325 try testArgs(i1024, u8, 1 << 0);
2326 try testArgs(i1024, u8, 1 << 7);
23272007 try testArgs(u1024, u8, 0);
23282008 try testArgs(u1024, u8, 1 << 0);
23292009 try testArgs(u1024, u8, 1 << 7);
......@@ -2331,96 +2011,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
23312011 try testArgs(i8, i9, -1 << 8);
23322012 try testArgs(i8, i9, -1);
23332013 try testArgs(i8, i9, 0);
2334 try testArgs(u8, i9, -1 << 8);
2335 try testArgs(u8, i9, -1);
2336 try testArgs(u8, i9, 0);
23372014 try testArgs(i16, i9, -1 << 8);
23382015 try testArgs(i16, i9, -1);
23392016 try testArgs(i16, i9, 0);
2340 try testArgs(u16, i9, -1 << 8);
2341 try testArgs(u16, i9, -1);
2342 try testArgs(u16, i9, 0);
23432017 try testArgs(i32, i9, -1 << 8);
23442018 try testArgs(i32, i9, -1);
23452019 try testArgs(i32, i9, 0);
2346 try testArgs(u32, i9, -1 << 8);
2347 try testArgs(u32, i9, -1);
2348 try testArgs(u32, i9, 0);
23492020 try testArgs(i64, i9, -1 << 8);
23502021 try testArgs(i64, i9, -1);
23512022 try testArgs(i64, i9, 0);
2352 try testArgs(u64, i9, -1 << 8);
2353 try testArgs(u64, i9, -1);
2354 try testArgs(u64, i9, 0);
23552023 try testArgs(i128, i9, -1 << 8);
23562024 try testArgs(i128, i9, -1);
23572025 try testArgs(i128, i9, 0);
2358 try testArgs(u128, i9, -1 << 8);
2359 try testArgs(u128, i9, -1);
2360 try testArgs(u128, i9, 0);
23612026 try testArgs(i256, i9, -1 << 8);
23622027 try testArgs(i256, i9, -1);
23632028 try testArgs(i256, i9, 0);
2364 try testArgs(u256, i9, -1 << 8);
2365 try testArgs(u256, i9, -1);
2366 try testArgs(u256, i9, 0);
23672029 try testArgs(i512, i9, -1 << 8);
23682030 try testArgs(i512, i9, -1);
23692031 try testArgs(i512, i9, 0);
2370 try testArgs(u512, i9, -1 << 8);
2371 try testArgs(u512, i9, -1);
2372 try testArgs(u512, i9, 0);
23732032 try testArgs(i1024, i9, -1 << 8);
23742033 try testArgs(i1024, i9, -1);
23752034 try testArgs(i1024, i9, 0);
2376 try testArgs(u1024, i9, -1 << 8);
2377 try testArgs(u1024, i9, -1);
2378 try testArgs(u1024, i9, 0);
2379 try testArgs(i8, u9, 0);
2380 try testArgs(i8, u9, 1 << 0);
2381 try testArgs(i8, u9, 1 << 8);
23822035 try testArgs(u8, u9, 0);
23832036 try testArgs(u8, u9, 1 << 0);
23842037 try testArgs(u8, u9, 1 << 8);
2385 try testArgs(i16, u9, 0);
2386 try testArgs(i16, u9, 1 << 0);
2387 try testArgs(i16, u9, 1 << 8);
23882038 try testArgs(u16, u9, 0);
23892039 try testArgs(u16, u9, 1 << 0);
23902040 try testArgs(u16, u9, 1 << 8);
2391 try testArgs(i32, u9, 0);
2392 try testArgs(i32, u9, 1 << 0);
2393 try testArgs(i32, u9, 1 << 8);
23942041 try testArgs(u32, u9, 0);
23952042 try testArgs(u32, u9, 1 << 0);
23962043 try testArgs(u32, u9, 1 << 8);
2397 try testArgs(i64, u9, 0);
2398 try testArgs(i64, u9, 1 << 0);
2399 try testArgs(i64, u9, 1 << 8);
24002044 try testArgs(u64, u9, 0);
24012045 try testArgs(u64, u9, 1 << 0);
24022046 try testArgs(u64, u9, 1 << 8);
2403 try testArgs(i128, u9, 0);
2404 try testArgs(i128, u9, 1 << 0);
2405 try testArgs(i128, u9, 1 << 8);
24062047 try testArgs(u128, u9, 0);
24072048 try testArgs(u128, u9, 1 << 0);
24082049 try testArgs(u128, u9, 1 << 8);
2409 try testArgs(i256, u9, 0);
2410 try testArgs(i256, u9, 1 << 0);
2411 try testArgs(i256, u9, 1 << 8);
24122050 try testArgs(u256, u9, 0);
24132051 try testArgs(u256, u9, 1 << 0);
24142052 try testArgs(u256, u9, 1 << 8);
2415 try testArgs(i512, u9, 0);
2416 try testArgs(i512, u9, 1 << 0);
2417 try testArgs(i512, u9, 1 << 8);
24182053 try testArgs(u512, u9, 0);
24192054 try testArgs(u512, u9, 1 << 0);
24202055 try testArgs(u512, u9, 1 << 8);
2421 try testArgs(i1024, u9, 0);
2422 try testArgs(i1024, u9, 1 << 0);
2423 try testArgs(i1024, u9, 1 << 8);
24242056 try testArgs(u1024, u9, 0);
24252057 try testArgs(u1024, u9, 1 << 0);
24262058 try testArgs(u1024, u9, 1 << 8);
......@@ -2428,96 +2060,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
24282060 try testArgs(i8, i15, -1 << 14);
24292061 try testArgs(i8, i15, -1);
24302062 try testArgs(i8, i15, 0);
2431 try testArgs(u8, i15, -1 << 14);
2432 try testArgs(u8, i15, -1);
2433 try testArgs(u8, i15, 0);
24342063 try testArgs(i16, i15, -1 << 14);
24352064 try testArgs(i16, i15, -1);
24362065 try testArgs(i16, i15, 0);
2437 try testArgs(u16, i15, -1 << 14);
2438 try testArgs(u16, i15, -1);
2439 try testArgs(u16, i15, 0);
24402066 try testArgs(i32, i15, -1 << 14);
24412067 try testArgs(i32, i15, -1);
24422068 try testArgs(i32, i15, 0);
2443 try testArgs(u32, i15, -1 << 14);
2444 try testArgs(u32, i15, -1);
2445 try testArgs(u32, i15, 0);
24462069 try testArgs(i64, i15, -1 << 14);
24472070 try testArgs(i64, i15, -1);
24482071 try testArgs(i64, i15, 0);
2449 try testArgs(u64, i15, -1 << 14);
2450 try testArgs(u64, i15, -1);
2451 try testArgs(u64, i15, 0);
24522072 try testArgs(i128, i15, -1 << 14);
24532073 try testArgs(i128, i15, -1);
24542074 try testArgs(i128, i15, 0);
2455 try testArgs(u128, i15, -1 << 14);
2456 try testArgs(u128, i15, -1);
2457 try testArgs(u128, i15, 0);
24582075 try testArgs(i256, i15, -1 << 14);
24592076 try testArgs(i256, i15, -1);
24602077 try testArgs(i256, i15, 0);
2461 try testArgs(u256, i15, -1 << 14);
2462 try testArgs(u256, i15, -1);
2463 try testArgs(u256, i15, 0);
24642078 try testArgs(i512, i15, -1 << 14);
24652079 try testArgs(i512, i15, -1);
24662080 try testArgs(i512, i15, 0);
2467 try testArgs(u512, i15, -1 << 14);
2468 try testArgs(u512, i15, -1);
2469 try testArgs(u512, i15, 0);
24702081 try testArgs(i1024, i15, -1 << 14);
24712082 try testArgs(i1024, i15, -1);
24722083 try testArgs(i1024, i15, 0);
2473 try testArgs(u1024, i15, -1 << 14);
2474 try testArgs(u1024, i15, -1);
2475 try testArgs(u1024, i15, 0);
2476 try testArgs(i8, u15, 0);
2477 try testArgs(i8, u15, 1 << 0);
2478 try testArgs(i8, u15, 1 << 14);
24792084 try testArgs(u8, u15, 0);
24802085 try testArgs(u8, u15, 1 << 0);
24812086 try testArgs(u8, u15, 1 << 14);
2482 try testArgs(i16, u15, 0);
2483 try testArgs(i16, u15, 1 << 0);
2484 try testArgs(i16, u15, 1 << 14);
24852087 try testArgs(u16, u15, 0);
24862088 try testArgs(u16, u15, 1 << 0);
24872089 try testArgs(u16, u15, 1 << 14);
2488 try testArgs(i32, u15, 0);
2489 try testArgs(i32, u15, 1 << 0);
2490 try testArgs(i32, u15, 1 << 14);
24912090 try testArgs(u32, u15, 0);
24922091 try testArgs(u32, u15, 1 << 0);
24932092 try testArgs(u32, u15, 1 << 14);
2494 try testArgs(i64, u15, 0);
2495 try testArgs(i64, u15, 1 << 0);
2496 try testArgs(i64, u15, 1 << 14);
24972093 try testArgs(u64, u15, 0);
24982094 try testArgs(u64, u15, 1 << 0);
24992095 try testArgs(u64, u15, 1 << 14);
2500 try testArgs(i128, u15, 0);
2501 try testArgs(i128, u15, 1 << 0);
2502 try testArgs(i128, u15, 1 << 14);
25032096 try testArgs(u128, u15, 0);
25042097 try testArgs(u128, u15, 1 << 0);
25052098 try testArgs(u128, u15, 1 << 14);
2506 try testArgs(i256, u15, 0);
2507 try testArgs(i256, u15, 1 << 0);
2508 try testArgs(i256, u15, 1 << 14);
25092099 try testArgs(u256, u15, 0);
25102100 try testArgs(u256, u15, 1 << 0);
25112101 try testArgs(u256, u15, 1 << 14);
2512 try testArgs(i512, u15, 0);
2513 try testArgs(i512, u15, 1 << 0);
2514 try testArgs(i512, u15, 1 << 14);
25152102 try testArgs(u512, u15, 0);
25162103 try testArgs(u512, u15, 1 << 0);
25172104 try testArgs(u512, u15, 1 << 14);
2518 try testArgs(i1024, u15, 0);
2519 try testArgs(i1024, u15, 1 << 0);
2520 try testArgs(i1024, u15, 1 << 14);
25212105 try testArgs(u1024, u15, 0);
25222106 try testArgs(u1024, u15, 1 << 0);
25232107 try testArgs(u1024, u15, 1 << 14);
......@@ -2525,96 +2109,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
25252109 try testArgs(i8, i16, -1 << 15);
25262110 try testArgs(i8, i16, -1);
25272111 try testArgs(i8, i16, 0);
2528 try testArgs(u8, i16, -1 << 15);
2529 try testArgs(u8, i16, -1);
2530 try testArgs(u8, i16, 0);
25312112 try testArgs(i16, i16, -1 << 15);
25322113 try testArgs(i16, i16, -1);
25332114 try testArgs(i16, i16, 0);
2534 try testArgs(u16, i16, -1 << 15);
2535 try testArgs(u16, i16, -1);
2536 try testArgs(u16, i16, 0);
25372115 try testArgs(i32, i16, -1 << 15);
25382116 try testArgs(i32, i16, -1);
25392117 try testArgs(i32, i16, 0);
2540 try testArgs(u32, i16, -1 << 15);
2541 try testArgs(u32, i16, -1);
2542 try testArgs(u32, i16, 0);
25432118 try testArgs(i64, i16, -1 << 15);
25442119 try testArgs(i64, i16, -1);
25452120 try testArgs(i64, i16, 0);
2546 try testArgs(u64, i16, -1 << 15);
2547 try testArgs(u64, i16, -1);
2548 try testArgs(u64, i16, 0);
25492121 try testArgs(i128, i16, -1 << 15);
25502122 try testArgs(i128, i16, -1);
25512123 try testArgs(i128, i16, 0);
2552 try testArgs(u128, i16, -1 << 15);
2553 try testArgs(u128, i16, -1);
2554 try testArgs(u128, i16, 0);
25552124 try testArgs(i256, i16, -1 << 15);
25562125 try testArgs(i256, i16, -1);
25572126 try testArgs(i256, i16, 0);
2558 try testArgs(u256, i16, -1 << 15);
2559 try testArgs(u256, i16, -1);
2560 try testArgs(u256, i16, 0);
25612127 try testArgs(i512, i16, -1 << 15);
25622128 try testArgs(i512, i16, -1);
25632129 try testArgs(i512, i16, 0);
2564 try testArgs(u512, i16, -1 << 15);
2565 try testArgs(u512, i16, -1);
2566 try testArgs(u512, i16, 0);
25672130 try testArgs(i1024, i16, -1 << 15);
25682131 try testArgs(i1024, i16, -1);
25692132 try testArgs(i1024, i16, 0);
2570 try testArgs(u1024, i16, -1 << 15);
2571 try testArgs(u1024, i16, -1);
2572 try testArgs(u1024, i16, 0);
2573 try testArgs(i8, u16, 0);
2574 try testArgs(i8, u16, 1 << 0);
2575 try testArgs(i8, u16, 1 << 15);
25762133 try testArgs(u8, u16, 0);
25772134 try testArgs(u8, u16, 1 << 0);
25782135 try testArgs(u8, u16, 1 << 15);
2579 try testArgs(i16, u16, 0);
2580 try testArgs(i16, u16, 1 << 0);
2581 try testArgs(i16, u16, 1 << 15);
25822136 try testArgs(u16, u16, 0);
25832137 try testArgs(u16, u16, 1 << 0);
25842138 try testArgs(u16, u16, 1 << 15);
2585 try testArgs(i32, u16, 0);
2586 try testArgs(i32, u16, 1 << 0);
2587 try testArgs(i32, u16, 1 << 15);
25882139 try testArgs(u32, u16, 0);
25892140 try testArgs(u32, u16, 1 << 0);
25902141 try testArgs(u32, u16, 1 << 15);
2591 try testArgs(i64, u16, 0);
2592 try testArgs(i64, u16, 1 << 0);
2593 try testArgs(i64, u16, 1 << 15);
25942142 try testArgs(u64, u16, 0);
25952143 try testArgs(u64, u16, 1 << 0);
25962144 try testArgs(u64, u16, 1 << 15);
2597 try testArgs(i128, u16, 0);
2598 try testArgs(i128, u16, 1 << 0);
2599 try testArgs(i128, u16, 1 << 15);
26002145 try testArgs(u128, u16, 0);
26012146 try testArgs(u128, u16, 1 << 0);
26022147 try testArgs(u128, u16, 1 << 15);
2603 try testArgs(i256, u16, 0);
2604 try testArgs(i256, u16, 1 << 0);
2605 try testArgs(i256, u16, 1 << 15);
26062148 try testArgs(u256, u16, 0);
26072149 try testArgs(u256, u16, 1 << 0);
26082150 try testArgs(u256, u16, 1 << 15);
2609 try testArgs(i512, u16, 0);
2610 try testArgs(i512, u16, 1 << 0);
2611 try testArgs(i512, u16, 1 << 15);
26122151 try testArgs(u512, u16, 0);
26132152 try testArgs(u512, u16, 1 << 0);
26142153 try testArgs(u512, u16, 1 << 15);
2615 try testArgs(i1024, u16, 0);
2616 try testArgs(i1024, u16, 1 << 0);
2617 try testArgs(i1024, u16, 1 << 15);
26182154 try testArgs(u1024, u16, 0);
26192155 try testArgs(u1024, u16, 1 << 0);
26202156 try testArgs(u1024, u16, 1 << 15);
......@@ -2622,96 +2158,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
26222158 try testArgs(i8, i17, -1 << 16);
26232159 try testArgs(i8, i17, -1);
26242160 try testArgs(i8, i17, 0);
2625 try testArgs(u8, i17, -1 << 16);
2626 try testArgs(u8, i17, -1);
2627 try testArgs(u8, i17, 0);
26282161 try testArgs(i16, i17, -1 << 16);
26292162 try testArgs(i16, i17, -1);
26302163 try testArgs(i16, i17, 0);
2631 try testArgs(u16, i17, -1 << 16);
2632 try testArgs(u16, i17, -1);
2633 try testArgs(u16, i17, 0);
26342164 try testArgs(i32, i17, -1 << 16);
26352165 try testArgs(i32, i17, -1);
26362166 try testArgs(i32, i17, 0);
2637 try testArgs(u32, i17, -1 << 16);
2638 try testArgs(u32, i17, -1);
2639 try testArgs(u32, i17, 0);
26402167 try testArgs(i64, i17, -1 << 16);
26412168 try testArgs(i64, i17, -1);
26422169 try testArgs(i64, i17, 0);
2643 try testArgs(u64, i17, -1 << 16);
2644 try testArgs(u64, i17, -1);
2645 try testArgs(u64, i17, 0);
26462170 try testArgs(i128, i17, -1 << 16);
26472171 try testArgs(i128, i17, -1);
26482172 try testArgs(i128, i17, 0);
2649 try testArgs(u128, i17, -1 << 16);
2650 try testArgs(u128, i17, -1);
2651 try testArgs(u128, i17, 0);
26522173 try testArgs(i256, i17, -1 << 16);
26532174 try testArgs(i256, i17, -1);
26542175 try testArgs(i256, i17, 0);
2655 try testArgs(u256, i17, -1 << 16);
2656 try testArgs(u256, i17, -1);
2657 try testArgs(u256, i17, 0);
26582176 try testArgs(i512, i17, -1 << 16);
26592177 try testArgs(i512, i17, -1);
26602178 try testArgs(i512, i17, 0);
2661 try testArgs(u512, i17, -1 << 16);
2662 try testArgs(u512, i17, -1);
2663 try testArgs(u512, i17, 0);
26642179 try testArgs(i1024, i17, -1 << 16);
26652180 try testArgs(i1024, i17, -1);
26662181 try testArgs(i1024, i17, 0);
2667 try testArgs(u1024, i17, -1 << 16);
2668 try testArgs(u1024, i17, -1);
2669 try testArgs(u1024, i17, 0);
2670 try testArgs(i8, u17, 0);
2671 try testArgs(i8, u17, 1 << 0);
2672 try testArgs(i8, u17, 1 << 16);
26732182 try testArgs(u8, u17, 0);
26742183 try testArgs(u8, u17, 1 << 0);
26752184 try testArgs(u8, u17, 1 << 16);
2676 try testArgs(i16, u17, 0);
2677 try testArgs(i16, u17, 1 << 0);
2678 try testArgs(i16, u17, 1 << 16);
26792185 try testArgs(u16, u17, 0);
26802186 try testArgs(u16, u17, 1 << 0);
26812187 try testArgs(u16, u17, 1 << 16);
2682 try testArgs(i32, u17, 0);
2683 try testArgs(i32, u17, 1 << 0);
2684 try testArgs(i32, u17, 1 << 16);
26852188 try testArgs(u32, u17, 0);
26862189 try testArgs(u32, u17, 1 << 0);
26872190 try testArgs(u32, u17, 1 << 16);
2688 try testArgs(i64, u17, 0);
2689 try testArgs(i64, u17, 1 << 0);
2690 try testArgs(i64, u17, 1 << 16);
26912191 try testArgs(u64, u17, 0);
26922192 try testArgs(u64, u17, 1 << 0);
26932193 try testArgs(u64, u17, 1 << 16);
2694 try testArgs(i128, u17, 0);
2695 try testArgs(i128, u17, 1 << 0);
2696 try testArgs(i128, u17, 1 << 16);
26972194 try testArgs(u128, u17, 0);
26982195 try testArgs(u128, u17, 1 << 0);
26992196 try testArgs(u128, u17, 1 << 16);
2700 try testArgs(i256, u17, 0);
2701 try testArgs(i256, u17, 1 << 0);
2702 try testArgs(i256, u17, 1 << 16);
27032197 try testArgs(u256, u17, 0);
27042198 try testArgs(u256, u17, 1 << 0);
27052199 try testArgs(u256, u17, 1 << 16);
2706 try testArgs(i512, u17, 0);
2707 try testArgs(i512, u17, 1 << 0);
2708 try testArgs(i512, u17, 1 << 16);
27092200 try testArgs(u512, u17, 0);
27102201 try testArgs(u512, u17, 1 << 0);
27112202 try testArgs(u512, u17, 1 << 16);
2712 try testArgs(i1024, u17, 0);
2713 try testArgs(i1024, u17, 1 << 0);
2714 try testArgs(i1024, u17, 1 << 16);
27152203 try testArgs(u1024, u17, 0);
27162204 try testArgs(u1024, u17, 1 << 0);
27172205 try testArgs(u1024, u17, 1 << 16);
......@@ -2719,96 +2207,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
27192207 try testArgs(i8, i31, -1 << 30);
27202208 try testArgs(i8, i31, -1);
27212209 try testArgs(i8, i31, 0);
2722 try testArgs(u8, i31, -1 << 30);
2723 try testArgs(u8, i31, -1);
2724 try testArgs(u8, i31, 0);
27252210 try testArgs(i16, i31, -1 << 30);
27262211 try testArgs(i16, i31, -1);
27272212 try testArgs(i16, i31, 0);
2728 try testArgs(u16, i31, -1 << 30);
2729 try testArgs(u16, i31, -1);
2730 try testArgs(u16, i31, 0);
27312213 try testArgs(i32, i31, -1 << 30);
27322214 try testArgs(i32, i31, -1);
27332215 try testArgs(i32, i31, 0);
2734 try testArgs(u32, i31, -1 << 30);
2735 try testArgs(u32, i31, -1);
2736 try testArgs(u32, i31, 0);
27372216 try testArgs(i64, i31, -1 << 30);
27382217 try testArgs(i64, i31, -1);
27392218 try testArgs(i64, i31, 0);
2740 try testArgs(u64, i31, -1 << 30);
2741 try testArgs(u64, i31, -1);
2742 try testArgs(u64, i31, 0);
27432219 try testArgs(i128, i31, -1 << 30);
27442220 try testArgs(i128, i31, -1);
27452221 try testArgs(i128, i31, 0);
2746 try testArgs(u128, i31, -1 << 30);
2747 try testArgs(u128, i31, -1);
2748 try testArgs(u128, i31, 0);
27492222 try testArgs(i256, i31, -1 << 30);
27502223 try testArgs(i256, i31, -1);
27512224 try testArgs(i256, i31, 0);
2752 try testArgs(u256, i31, -1 << 30);
2753 try testArgs(u256, i31, -1);
2754 try testArgs(u256, i31, 0);
27552225 try testArgs(i512, i31, -1 << 30);
27562226 try testArgs(i512, i31, -1);
27572227 try testArgs(i512, i31, 0);
2758 try testArgs(u512, i31, -1 << 30);
2759 try testArgs(u512, i31, -1);
2760 try testArgs(u512, i31, 0);
27612228 try testArgs(i1024, i31, -1 << 30);
27622229 try testArgs(i1024, i31, -1);
27632230 try testArgs(i1024, i31, 0);
2764 try testArgs(u1024, i31, -1 << 30);
2765 try testArgs(u1024, i31, -1);
2766 try testArgs(u1024, i31, 0);
2767 try testArgs(i8, u31, 0);
2768 try testArgs(i8, u31, 1 << 0);
2769 try testArgs(i8, u31, 1 << 30);
27702231 try testArgs(u8, u31, 0);
27712232 try testArgs(u8, u31, 1 << 0);
27722233 try testArgs(u8, u31, 1 << 30);
2773 try testArgs(i16, u31, 0);
2774 try testArgs(i16, u31, 1 << 0);
2775 try testArgs(i16, u31, 1 << 30);
27762234 try testArgs(u16, u31, 0);
27772235 try testArgs(u16, u31, 1 << 0);
27782236 try testArgs(u16, u31, 1 << 30);
2779 try testArgs(i32, u31, 0);
2780 try testArgs(i32, u31, 1 << 0);
2781 try testArgs(i32, u31, 1 << 30);
27822237 try testArgs(u32, u31, 0);
27832238 try testArgs(u32, u31, 1 << 0);
27842239 try testArgs(u32, u31, 1 << 30);
2785 try testArgs(i64, u31, 0);
2786 try testArgs(i64, u31, 1 << 0);
2787 try testArgs(i64, u31, 1 << 30);
27882240 try testArgs(u64, u31, 0);
27892241 try testArgs(u64, u31, 1 << 0);
27902242 try testArgs(u64, u31, 1 << 30);
2791 try testArgs(i128, u31, 0);
2792 try testArgs(i128, u31, 1 << 0);
2793 try testArgs(i128, u31, 1 << 30);
27942243 try testArgs(u128, u31, 0);
27952244 try testArgs(u128, u31, 1 << 0);
27962245 try testArgs(u128, u31, 1 << 30);
2797 try testArgs(i256, u31, 0);
2798 try testArgs(i256, u31, 1 << 0);
2799 try testArgs(i256, u31, 1 << 30);
28002246 try testArgs(u256, u31, 0);
28012247 try testArgs(u256, u31, 1 << 0);
28022248 try testArgs(u256, u31, 1 << 30);
2803 try testArgs(i512, u31, 0);
2804 try testArgs(i512, u31, 1 << 0);
2805 try testArgs(i512, u31, 1 << 30);
28062249 try testArgs(u512, u31, 0);
28072250 try testArgs(u512, u31, 1 << 0);
28082251 try testArgs(u512, u31, 1 << 30);
2809 try testArgs(i1024, u31, 0);
2810 try testArgs(i1024, u31, 1 << 0);
2811 try testArgs(i1024, u31, 1 << 30);
28122252 try testArgs(u1024, u31, 0);
28132253 try testArgs(u1024, u31, 1 << 0);
28142254 try testArgs(u1024, u31, 1 << 30);
......@@ -2816,96 +2256,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
28162256 try testArgs(i8, i32, -1 << 31);
28172257 try testArgs(i8, i32, -1);
28182258 try testArgs(i8, i32, 0);
2819 try testArgs(u8, i32, -1 << 31);
2820 try testArgs(u8, i32, -1);
2821 try testArgs(u8, i32, 0);
28222259 try testArgs(i16, i32, -1 << 31);
28232260 try testArgs(i16, i32, -1);
28242261 try testArgs(i16, i32, 0);
2825 try testArgs(u16, i32, -1 << 31);
2826 try testArgs(u16, i32, -1);
2827 try testArgs(u16, i32, 0);
28282262 try testArgs(i32, i32, -1 << 31);
28292263 try testArgs(i32, i32, -1);
28302264 try testArgs(i32, i32, 0);
2831 try testArgs(u32, i32, -1 << 31);
2832 try testArgs(u32, i32, -1);
2833 try testArgs(u32, i32, 0);
28342265 try testArgs(i64, i32, -1 << 31);
28352266 try testArgs(i64, i32, -1);
28362267 try testArgs(i64, i32, 0);
2837 try testArgs(u64, i32, -1 << 31);
2838 try testArgs(u64, i32, -1);
2839 try testArgs(u64, i32, 0);
28402268 try testArgs(i128, i32, -1 << 31);
28412269 try testArgs(i128, i32, -1);
28422270 try testArgs(i128, i32, 0);
2843 try testArgs(u128, i32, -1 << 31);
2844 try testArgs(u128, i32, -1);
2845 try testArgs(u128, i32, 0);
28462271 try testArgs(i256, i32, -1 << 31);
28472272 try testArgs(i256, i32, -1);
28482273 try testArgs(i256, i32, 0);
2849 try testArgs(u256, i32, -1 << 31);
2850 try testArgs(u256, i32, -1);
2851 try testArgs(u256, i32, 0);
28522274 try testArgs(i512, i32, -1 << 31);
28532275 try testArgs(i512, i32, -1);
28542276 try testArgs(i512, i32, 0);
2855 try testArgs(u512, i32, -1 << 31);
2856 try testArgs(u512, i32, -1);
2857 try testArgs(u512, i32, 0);
28582277 try testArgs(i1024, i32, -1 << 31);
28592278 try testArgs(i1024, i32, -1);
28602279 try testArgs(i1024, i32, 0);
2861 try testArgs(u1024, i32, -1 << 31);
2862 try testArgs(u1024, i32, -1);
2863 try testArgs(u1024, i32, 0);
2864 try testArgs(i8, u32, 0);
2865 try testArgs(i8, u32, 1 << 0);
2866 try testArgs(i8, u32, 1 << 31);
28672280 try testArgs(u8, u32, 0);
28682281 try testArgs(u8, u32, 1 << 0);
28692282 try testArgs(u8, u32, 1 << 31);
2870 try testArgs(i16, u32, 0);
2871 try testArgs(i16, u32, 1 << 0);
2872 try testArgs(i16, u32, 1 << 31);
28732283 try testArgs(u16, u32, 0);
28742284 try testArgs(u16, u32, 1 << 0);
28752285 try testArgs(u16, u32, 1 << 31);
2876 try testArgs(i32, u32, 0);
2877 try testArgs(i32, u32, 1 << 0);
2878 try testArgs(i32, u32, 1 << 31);
28792286 try testArgs(u32, u32, 0);
28802287 try testArgs(u32, u32, 1 << 0);
28812288 try testArgs(u32, u32, 1 << 31);
2882 try testArgs(i64, u32, 0);
2883 try testArgs(i64, u32, 1 << 0);
2884 try testArgs(i64, u32, 1 << 31);
28852289 try testArgs(u64, u32, 0);
28862290 try testArgs(u64, u32, 1 << 0);
28872291 try testArgs(u64, u32, 1 << 31);
2888 try testArgs(i128, u32, 0);
2889 try testArgs(i128, u32, 1 << 0);
2890 try testArgs(i128, u32, 1 << 31);
28912292 try testArgs(u128, u32, 0);
28922293 try testArgs(u128, u32, 1 << 0);
28932294 try testArgs(u128, u32, 1 << 31);
2894 try testArgs(i256, u32, 0);
2895 try testArgs(i256, u32, 1 << 0);
2896 try testArgs(i256, u32, 1 << 31);
28972295 try testArgs(u256, u32, 0);
28982296 try testArgs(u256, u32, 1 << 0);
28992297 try testArgs(u256, u32, 1 << 31);
2900 try testArgs(i512, u32, 0);
2901 try testArgs(i512, u32, 1 << 0);
2902 try testArgs(i512, u32, 1 << 31);
29032298 try testArgs(u512, u32, 0);
29042299 try testArgs(u512, u32, 1 << 0);
29052300 try testArgs(u512, u32, 1 << 31);
2906 try testArgs(i1024, u32, 0);
2907 try testArgs(i1024, u32, 1 << 0);
2908 try testArgs(i1024, u32, 1 << 31);
29092301 try testArgs(u1024, u32, 0);
29102302 try testArgs(u1024, u32, 1 << 0);
29112303 try testArgs(u1024, u32, 1 << 31);
......@@ -2913,96 +2305,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
29132305 try testArgs(i8, i33, -1 << 32);
29142306 try testArgs(i8, i33, -1);
29152307 try testArgs(i8, i33, 0);
2916 try testArgs(u8, i33, -1 << 32);
2917 try testArgs(u8, i33, -1);
2918 try testArgs(u8, i33, 0);
29192308 try testArgs(i16, i33, -1 << 32);
29202309 try testArgs(i16, i33, -1);
29212310 try testArgs(i16, i33, 0);
2922 try testArgs(u16, i33, -1 << 32);
2923 try testArgs(u16, i33, -1);
2924 try testArgs(u16, i33, 0);
29252311 try testArgs(i32, i33, -1 << 32);
29262312 try testArgs(i32, i33, -1);
29272313 try testArgs(i32, i33, 0);
2928 try testArgs(u32, i33, -1 << 32);
2929 try testArgs(u32, i33, -1);
2930 try testArgs(u32, i33, 0);
29312314 try testArgs(i64, i33, -1 << 32);
29322315 try testArgs(i64, i33, -1);
29332316 try testArgs(i64, i33, 0);
2934 try testArgs(u64, i33, -1 << 32);
2935 try testArgs(u64, i33, -1);
2936 try testArgs(u64, i33, 0);
29372317 try testArgs(i128, i33, -1 << 32);
29382318 try testArgs(i128, i33, -1);
29392319 try testArgs(i128, i33, 0);
2940 try testArgs(u128, i33, -1 << 32);
2941 try testArgs(u128, i33, -1);
2942 try testArgs(u128, i33, 0);
29432320 try testArgs(i256, i33, -1 << 32);
29442321 try testArgs(i256, i33, -1);
29452322 try testArgs(i256, i33, 0);
2946 try testArgs(u256, i33, -1 << 32);
2947 try testArgs(u256, i33, -1);
2948 try testArgs(u256, i33, 0);
29492323 try testArgs(i512, i33, -1 << 32);
29502324 try testArgs(i512, i33, -1);
29512325 try testArgs(i512, i33, 0);
2952 try testArgs(u512, i33, -1 << 32);
2953 try testArgs(u512, i33, -1);
2954 try testArgs(u512, i33, 0);
29552326 try testArgs(i1024, i33, -1 << 32);
29562327 try testArgs(i1024, i33, -1);
29572328 try testArgs(i1024, i33, 0);
2958 try testArgs(u1024, i33, -1 << 32);
2959 try testArgs(u1024, i33, -1);
2960 try testArgs(u1024, i33, 0);
2961 try testArgs(i8, u33, 0);
2962 try testArgs(i8, u33, 1 << 0);
2963 try testArgs(i8, u33, 1 << 32);
29642329 try testArgs(u8, u33, 0);
29652330 try testArgs(u8, u33, 1 << 0);
29662331 try testArgs(u8, u33, 1 << 32);
2967 try testArgs(i16, u33, 0);
2968 try testArgs(i16, u33, 1 << 0);
2969 try testArgs(i16, u33, 1 << 32);
29702332 try testArgs(u16, u33, 0);
29712333 try testArgs(u16, u33, 1 << 0);
29722334 try testArgs(u16, u33, 1 << 32);
2973 try testArgs(i32, u33, 0);
2974 try testArgs(i32, u33, 1 << 0);
2975 try testArgs(i32, u33, 1 << 32);
29762335 try testArgs(u32, u33, 0);
29772336 try testArgs(u32, u33, 1 << 0);
29782337 try testArgs(u32, u33, 1 << 32);
2979 try testArgs(i64, u33, 0);
2980 try testArgs(i64, u33, 1 << 0);
2981 try testArgs(i64, u33, 1 << 32);
29822338 try testArgs(u64, u33, 0);
29832339 try testArgs(u64, u33, 1 << 0);
29842340 try testArgs(u64, u33, 1 << 32);
2985 try testArgs(i128, u33, 0);
2986 try testArgs(i128, u33, 1 << 0);
2987 try testArgs(i128, u33, 1 << 32);
29882341 try testArgs(u128, u33, 0);
29892342 try testArgs(u128, u33, 1 << 0);
29902343 try testArgs(u128, u33, 1 << 32);
2991 try testArgs(i256, u33, 0);
2992 try testArgs(i256, u33, 1 << 0);
2993 try testArgs(i256, u33, 1 << 32);
29942344 try testArgs(u256, u33, 0);
29952345 try testArgs(u256, u33, 1 << 0);
29962346 try testArgs(u256, u33, 1 << 32);
2997 try testArgs(i512, u33, 0);
2998 try testArgs(i512, u33, 1 << 0);
2999 try testArgs(i512, u33, 1 << 32);
30002347 try testArgs(u512, u33, 0);
30012348 try testArgs(u512, u33, 1 << 0);
30022349 try testArgs(u512, u33, 1 << 32);
3003 try testArgs(i1024, u33, 0);
3004 try testArgs(i1024, u33, 1 << 0);
3005 try testArgs(i1024, u33, 1 << 32);
30062350 try testArgs(u1024, u33, 0);
30072351 try testArgs(u1024, u33, 1 << 0);
30082352 try testArgs(u1024, u33, 1 << 32);
......@@ -3010,96 +2354,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
30102354 try testArgs(i8, i63, -1 << 62);
30112355 try testArgs(i8, i63, -1);
30122356 try testArgs(i8, i63, 0);
3013 try testArgs(u8, i63, -1 << 62);
3014 try testArgs(u8, i63, -1);
3015 try testArgs(u8, i63, 0);
30162357 try testArgs(i16, i63, -1 << 62);
30172358 try testArgs(i16, i63, -1);
30182359 try testArgs(i16, i63, 0);
3019 try testArgs(u16, i63, -1 << 62);
3020 try testArgs(u16, i63, -1);
3021 try testArgs(u16, i63, 0);
30222360 try testArgs(i32, i63, -1 << 62);
30232361 try testArgs(i32, i63, -1);
30242362 try testArgs(i32, i63, 0);
3025 try testArgs(u32, i63, -1 << 62);
3026 try testArgs(u32, i63, -1);
3027 try testArgs(u32, i63, 0);
30282363 try testArgs(i64, i63, -1 << 62);
30292364 try testArgs(i64, i63, -1);
30302365 try testArgs(i64, i63, 0);
3031 try testArgs(u64, i63, -1 << 62);
3032 try testArgs(u64, i63, -1);
3033 try testArgs(u64, i63, 0);
30342366 try testArgs(i128, i63, -1 << 62);
30352367 try testArgs(i128, i63, -1);
30362368 try testArgs(i128, i63, 0);
3037 try testArgs(u128, i63, -1 << 62);
3038 try testArgs(u128, i63, -1);
3039 try testArgs(u128, i63, 0);
30402369 try testArgs(i256, i63, -1 << 62);
30412370 try testArgs(i256, i63, -1);
30422371 try testArgs(i256, i63, 0);
3043 try testArgs(u256, i63, -1 << 62);
3044 try testArgs(u256, i63, -1);
3045 try testArgs(u256, i63, 0);
30462372 try testArgs(i512, i63, -1 << 62);
30472373 try testArgs(i512, i63, -1);
30482374 try testArgs(i512, i63, 0);
3049 try testArgs(u512, i63, -1 << 62);
3050 try testArgs(u512, i63, -1);
3051 try testArgs(u512, i63, 0);
30522375 try testArgs(i1024, i63, -1 << 62);
30532376 try testArgs(i1024, i63, -1);
30542377 try testArgs(i1024, i63, 0);
3055 try testArgs(u1024, i63, -1 << 62);
3056 try testArgs(u1024, i63, -1);
3057 try testArgs(u1024, i63, 0);
3058 try testArgs(i8, u63, 0);
3059 try testArgs(i8, u63, 1 << 0);
3060 try testArgs(i8, u63, 1 << 62);
30612378 try testArgs(u8, u63, 0);
30622379 try testArgs(u8, u63, 1 << 0);
30632380 try testArgs(u8, u63, 1 << 62);
3064 try testArgs(i16, u63, 0);
3065 try testArgs(i16, u63, 1 << 0);
3066 try testArgs(i16, u63, 1 << 62);
30672381 try testArgs(u16, u63, 0);
30682382 try testArgs(u16, u63, 1 << 0);
30692383 try testArgs(u16, u63, 1 << 62);
3070 try testArgs(i32, u63, 0);
3071 try testArgs(i32, u63, 1 << 0);
3072 try testArgs(i32, u63, 1 << 62);
30732384 try testArgs(u32, u63, 0);
30742385 try testArgs(u32, u63, 1 << 0);
30752386 try testArgs(u32, u63, 1 << 62);
3076 try testArgs(i64, u63, 0);
3077 try testArgs(i64, u63, 1 << 0);
3078 try testArgs(i64, u63, 1 << 62);
30792387 try testArgs(u64, u63, 0);
30802388 try testArgs(u64, u63, 1 << 0);
30812389 try testArgs(u64, u63, 1 << 62);
3082 try testArgs(i128, u63, 0);
3083 try testArgs(i128, u63, 1 << 0);
3084 try testArgs(i128, u63, 1 << 62);
30852390 try testArgs(u128, u63, 0);
30862391 try testArgs(u128, u63, 1 << 0);
30872392 try testArgs(u128, u63, 1 << 62);
3088 try testArgs(i256, u63, 0);
3089 try testArgs(i256, u63, 1 << 0);
3090 try testArgs(i256, u63, 1 << 62);
30912393 try testArgs(u256, u63, 0);
30922394 try testArgs(u256, u63, 1 << 0);
30932395 try testArgs(u256, u63, 1 << 62);
3094 try testArgs(i512, u63, 0);
3095 try testArgs(i512, u63, 1 << 0);
3096 try testArgs(i512, u63, 1 << 62);
30972396 try testArgs(u512, u63, 0);
30982397 try testArgs(u512, u63, 1 << 0);
30992398 try testArgs(u512, u63, 1 << 62);
3100 try testArgs(i1024, u63, 0);
3101 try testArgs(i1024, u63, 1 << 0);
3102 try testArgs(i1024, u63, 1 << 62);
31032399 try testArgs(u1024, u63, 0);
31042400 try testArgs(u1024, u63, 1 << 0);
31052401 try testArgs(u1024, u63, 1 << 62);
......@@ -3107,2524 +2403,2341 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
31072403 try testArgs(i8, i64, -1 << 63);
31082404 try testArgs(i8, i64, -1);
31092405 try testArgs(i8, i64, 0);
3110 try testArgs(u8, i64, -1 << 63);
3111 try testArgs(u8, i64, -1);
3112 try testArgs(u8, i64, 0);
31132406 try testArgs(i16, i64, -1 << 63);
31142407 try testArgs(i16, i64, -1);
31152408 try testArgs(i16, i64, 0);
3116 try testArgs(u16, i64, -1 << 63);
3117 try testArgs(u16, i64, -1);
3118 try testArgs(u16, i64, 0);
31192409 try testArgs(i32, i64, -1 << 63);
31202410 try testArgs(i32, i64, -1);
31212411 try testArgs(i32, i64, 0);
2412 try testArgs(i64, i64, -1 << 63);
2413 try testArgs(i64, i64, -1);
2414 try testArgs(i64, i64, 0);
2415 try testArgs(i128, i64, -1 << 63);
2416 try testArgs(i128, i64, -1);
2417 try testArgs(i128, i64, 0);
2418 try testArgs(i256, i64, -1 << 63);
2419 try testArgs(i256, i64, -1);
2420 try testArgs(i256, i64, 0);
2421 try testArgs(i512, i64, -1 << 63);
2422 try testArgs(i512, i64, -1);
2423 try testArgs(i512, i64, 0);
2424 try testArgs(i1024, i64, -1 << 63);
2425 try testArgs(i1024, i64, -1);
2426 try testArgs(i1024, i64, 0);
2427 try testArgs(u8, u64, 0);
2428 try testArgs(u8, u64, 1 << 0);
2429 try testArgs(u8, u64, 1 << 63);
2430 try testArgs(u16, u64, 0);
2431 try testArgs(u16, u64, 1 << 0);
2432 try testArgs(u16, u64, 1 << 63);
2433 try testArgs(u32, u64, 0);
2434 try testArgs(u32, u64, 1 << 0);
2435 try testArgs(u32, u64, 1 << 63);
2436 try testArgs(u64, u64, 0);
2437 try testArgs(u64, u64, 1 << 0);
2438 try testArgs(u64, u64, 1 << 63);
2439 try testArgs(u128, u64, 0);
2440 try testArgs(u128, u64, 1 << 0);
2441 try testArgs(u128, u64, 1 << 63);
2442 try testArgs(u256, u64, 0);
2443 try testArgs(u256, u64, 1 << 0);
2444 try testArgs(u256, u64, 1 << 63);
2445 try testArgs(u512, u64, 0);
2446 try testArgs(u512, u64, 1 << 0);
2447 try testArgs(u512, u64, 1 << 63);
2448 try testArgs(u1024, u64, 0);
2449 try testArgs(u1024, u64, 1 << 0);
2450 try testArgs(u1024, u64, 1 << 63);
2451
2452 try testArgs(i8, i65, -1 << 64);
2453 try testArgs(i8, i65, -1);
2454 try testArgs(i8, i65, 0);
2455 try testArgs(i16, i65, -1 << 64);
2456 try testArgs(i16, i65, -1);
2457 try testArgs(i16, i65, 0);
2458 try testArgs(i32, i65, -1 << 64);
2459 try testArgs(i32, i65, -1);
2460 try testArgs(i32, i65, 0);
2461 try testArgs(i64, i65, -1 << 64);
2462 try testArgs(i64, i65, -1);
2463 try testArgs(i64, i65, 0);
2464 try testArgs(i128, i65, -1 << 64);
2465 try testArgs(i128, i65, -1);
2466 try testArgs(i128, i65, 0);
2467 try testArgs(i256, i65, -1 << 64);
2468 try testArgs(i256, i65, -1);
2469 try testArgs(i256, i65, 0);
2470 try testArgs(i512, i65, -1 << 64);
2471 try testArgs(i512, i65, -1);
2472 try testArgs(i512, i65, 0);
2473 try testArgs(i1024, i65, -1 << 64);
2474 try testArgs(i1024, i65, -1);
2475 try testArgs(i1024, i65, 0);
2476 try testArgs(u8, u65, 0);
2477 try testArgs(u8, u65, 1 << 0);
2478 try testArgs(u8, u65, 1 << 64);
2479 try testArgs(u16, u65, 0);
2480 try testArgs(u16, u65, 1 << 0);
2481 try testArgs(u16, u65, 1 << 64);
2482 try testArgs(u32, u65, 0);
2483 try testArgs(u32, u65, 1 << 0);
2484 try testArgs(u32, u65, 1 << 64);
2485 try testArgs(u64, u65, 0);
2486 try testArgs(u64, u65, 1 << 0);
2487 try testArgs(u64, u65, 1 << 64);
2488 try testArgs(u128, u65, 0);
2489 try testArgs(u128, u65, 1 << 0);
2490 try testArgs(u128, u65, 1 << 64);
2491 try testArgs(u256, u65, 0);
2492 try testArgs(u256, u65, 1 << 0);
2493 try testArgs(u256, u65, 1 << 64);
2494 try testArgs(u512, u65, 0);
2495 try testArgs(u512, u65, 1 << 0);
2496 try testArgs(u512, u65, 1 << 64);
2497 try testArgs(u1024, u65, 0);
2498 try testArgs(u1024, u65, 1 << 0);
2499 try testArgs(u1024, u65, 1 << 64);
2500
2501 try testArgs(i8, i95, -1 << 94);
2502 try testArgs(i8, i95, -1);
2503 try testArgs(i8, i95, 0);
2504 try testArgs(i16, i95, -1 << 94);
2505 try testArgs(i16, i95, -1);
2506 try testArgs(i16, i95, 0);
2507 try testArgs(i32, i95, -1 << 94);
2508 try testArgs(i32, i95, -1);
2509 try testArgs(i32, i95, 0);
2510 try testArgs(i64, i95, -1 << 94);
2511 try testArgs(i64, i95, -1);
2512 try testArgs(i64, i95, 0);
2513 try testArgs(i128, i95, -1 << 94);
2514 try testArgs(i128, i95, -1);
2515 try testArgs(i128, i95, 0);
2516 try testArgs(i256, i95, -1 << 94);
2517 try testArgs(i256, i95, -1);
2518 try testArgs(i256, i95, 0);
2519 try testArgs(i512, i95, -1 << 94);
2520 try testArgs(i512, i95, -1);
2521 try testArgs(i512, i95, 0);
2522 try testArgs(i1024, i95, -1 << 94);
2523 try testArgs(i1024, i95, -1);
2524 try testArgs(i1024, i95, 0);
2525 try testArgs(u8, u95, 0);
2526 try testArgs(u8, u95, 1 << 0);
2527 try testArgs(u8, u95, 1 << 94);
2528 try testArgs(u16, u95, 0);
2529 try testArgs(u16, u95, 1 << 0);
2530 try testArgs(u16, u95, 1 << 94);
2531 try testArgs(u32, u95, 0);
2532 try testArgs(u32, u95, 1 << 0);
2533 try testArgs(u32, u95, 1 << 94);
2534 try testArgs(u64, u95, 0);
2535 try testArgs(u64, u95, 1 << 0);
2536 try testArgs(u64, u95, 1 << 94);
2537 try testArgs(u128, u95, 0);
2538 try testArgs(u128, u95, 1 << 0);
2539 try testArgs(u128, u95, 1 << 94);
2540 try testArgs(u256, u95, 0);
2541 try testArgs(u256, u95, 1 << 0);
2542 try testArgs(u256, u95, 1 << 94);
2543 try testArgs(u512, u95, 0);
2544 try testArgs(u512, u95, 1 << 0);
2545 try testArgs(u512, u95, 1 << 94);
2546 try testArgs(u1024, u95, 0);
2547 try testArgs(u1024, u95, 1 << 0);
2548 try testArgs(u1024, u95, 1 << 94);
2549
2550 try testArgs(i8, i97, -1 << 96);
2551 try testArgs(i8, i97, -1);
2552 try testArgs(i8, i97, 0);
2553 try testArgs(i16, i97, -1 << 96);
2554 try testArgs(i16, i97, -1);
2555 try testArgs(i16, i97, 0);
2556 try testArgs(i32, i97, -1 << 96);
2557 try testArgs(i32, i97, -1);
2558 try testArgs(i32, i97, 0);
2559 try testArgs(i64, i97, -1 << 96);
2560 try testArgs(i64, i97, -1);
2561 try testArgs(i64, i97, 0);
2562 try testArgs(i128, i97, -1 << 96);
2563 try testArgs(i128, i97, -1);
2564 try testArgs(i128, i97, 0);
2565 try testArgs(i256, i97, -1 << 96);
2566 try testArgs(i256, i97, -1);
2567 try testArgs(i256, i97, 0);
2568 try testArgs(i512, i97, -1 << 96);
2569 try testArgs(i512, i97, -1);
2570 try testArgs(i512, i97, 0);
2571 try testArgs(i1024, i97, -1 << 96);
2572 try testArgs(i1024, i97, -1);
2573 try testArgs(i1024, i97, 0);
2574 try testArgs(u8, u97, 0);
2575 try testArgs(u8, u97, 1 << 0);
2576 try testArgs(u8, u97, 1 << 96);
2577 try testArgs(u16, u97, 0);
2578 try testArgs(u16, u97, 1 << 0);
2579 try testArgs(u16, u97, 1 << 96);
2580 try testArgs(u32, u97, 0);
2581 try testArgs(u32, u97, 1 << 0);
2582 try testArgs(u32, u97, 1 << 96);
2583 try testArgs(u64, u97, 0);
2584 try testArgs(u64, u97, 1 << 0);
2585 try testArgs(u64, u97, 1 << 96);
2586 try testArgs(u128, u97, 0);
2587 try testArgs(u128, u97, 1 << 0);
2588 try testArgs(u128, u97, 1 << 96);
2589 try testArgs(u256, u97, 0);
2590 try testArgs(u256, u97, 1 << 0);
2591 try testArgs(u256, u97, 1 << 96);
2592 try testArgs(u512, u97, 0);
2593 try testArgs(u512, u97, 1 << 0);
2594 try testArgs(u512, u97, 1 << 96);
2595 try testArgs(u1024, u97, 0);
2596 try testArgs(u1024, u97, 1 << 0);
2597 try testArgs(u1024, u97, 1 << 96);
2598
2599 try testArgs(i8, i127, -1 << 126);
2600 try testArgs(i8, i127, -1);
2601 try testArgs(i8, i127, 0);
2602 try testArgs(i16, i127, -1 << 126);
2603 try testArgs(i16, i127, -1);
2604 try testArgs(i16, i127, 0);
2605 try testArgs(i32, i127, -1 << 126);
2606 try testArgs(i32, i127, -1);
2607 try testArgs(i32, i127, 0);
2608 try testArgs(i64, i127, -1 << 126);
2609 try testArgs(i64, i127, -1);
2610 try testArgs(i64, i127, 0);
2611 try testArgs(i128, i127, -1 << 126);
2612 try testArgs(i128, i127, -1);
2613 try testArgs(i128, i127, 0);
2614 try testArgs(i256, i127, -1 << 126);
2615 try testArgs(i256, i127, -1);
2616 try testArgs(i256, i127, 0);
2617 try testArgs(i512, i127, -1 << 126);
2618 try testArgs(i512, i127, -1);
2619 try testArgs(i512, i127, 0);
2620 try testArgs(i1024, i127, -1 << 126);
2621 try testArgs(i1024, i127, -1);
2622 try testArgs(i1024, i127, 0);
2623 try testArgs(u8, u127, 0);
2624 try testArgs(u8, u127, 1 << 0);
2625 try testArgs(u8, u127, 1 << 126);
2626 try testArgs(u16, u127, 0);
2627 try testArgs(u16, u127, 1 << 0);
2628 try testArgs(u16, u127, 1 << 126);
2629 try testArgs(u32, u127, 0);
2630 try testArgs(u32, u127, 1 << 0);
2631 try testArgs(u32, u127, 1 << 126);
2632 try testArgs(u64, u127, 0);
2633 try testArgs(u64, u127, 1 << 0);
2634 try testArgs(u64, u127, 1 << 126);
2635 try testArgs(u128, u127, 0);
2636 try testArgs(u128, u127, 1 << 0);
2637 try testArgs(u128, u127, 1 << 126);
2638 try testArgs(u256, u127, 0);
2639 try testArgs(u256, u127, 1 << 0);
2640 try testArgs(u256, u127, 1 << 126);
2641 try testArgs(u512, u127, 0);
2642 try testArgs(u512, u127, 1 << 0);
2643 try testArgs(u512, u127, 1 << 126);
2644 try testArgs(u1024, u127, 0);
2645 try testArgs(u1024, u127, 1 << 0);
2646 try testArgs(u1024, u127, 1 << 126);
2647
2648 try testArgs(i8, i128, -1 << 127);
2649 try testArgs(i8, i128, -1);
2650 try testArgs(i8, i128, 0);
2651 try testArgs(i16, i128, -1 << 127);
2652 try testArgs(i16, i128, -1);
2653 try testArgs(i16, i128, 0);
2654 try testArgs(i32, i128, -1 << 127);
2655 try testArgs(i32, i128, -1);
2656 try testArgs(i32, i128, 0);
2657 try testArgs(i64, i128, -1 << 127);
2658 try testArgs(i64, i128, -1);
2659 try testArgs(i64, i128, 0);
2660 try testArgs(i128, i128, -1 << 127);
2661 try testArgs(i128, i128, -1);
2662 try testArgs(i128, i128, 0);
2663 try testArgs(i256, i128, -1 << 127);
2664 try testArgs(i256, i128, -1);
2665 try testArgs(i256, i128, 0);
2666 try testArgs(i512, i128, -1 << 127);
2667 try testArgs(i512, i128, -1);
2668 try testArgs(i512, i128, 0);
2669 try testArgs(i1024, i128, -1 << 127);
2670 try testArgs(i1024, i128, -1);
2671 try testArgs(i1024, i128, 0);
2672 try testArgs(u8, u128, 0);
2673 try testArgs(u8, u128, 1 << 0);
2674 try testArgs(u8, u128, 1 << 127);
2675 try testArgs(u16, u128, 0);
2676 try testArgs(u16, u128, 1 << 0);
2677 try testArgs(u16, u128, 1 << 127);
2678 try testArgs(u32, u128, 0);
2679 try testArgs(u32, u128, 1 << 0);
2680 try testArgs(u32, u128, 1 << 127);
2681 try testArgs(u64, u128, 0);
2682 try testArgs(u64, u128, 1 << 0);
2683 try testArgs(u64, u128, 1 << 127);
2684 try testArgs(u128, u128, 0);
2685 try testArgs(u128, u128, 1 << 0);
2686 try testArgs(u128, u128, 1 << 127);
2687 try testArgs(u256, u128, 0);
2688 try testArgs(u256, u128, 1 << 0);
2689 try testArgs(u256, u128, 1 << 127);
2690 try testArgs(u512, u128, 0);
2691 try testArgs(u512, u128, 1 << 0);
2692 try testArgs(u512, u128, 1 << 127);
2693 try testArgs(u1024, u128, 0);
2694 try testArgs(u1024, u128, 1 << 0);
2695 try testArgs(u1024, u128, 1 << 127);
2696
2697 try testArgs(i8, i129, -1 << 128);
2698 try testArgs(i8, i129, -1);
2699 try testArgs(i8, i129, 0);
2700 try testArgs(i16, i129, -1 << 128);
2701 try testArgs(i16, i129, -1);
2702 try testArgs(i16, i129, 0);
2703 try testArgs(i32, i129, -1 << 128);
2704 try testArgs(i32, i129, -1);
2705 try testArgs(i32, i129, 0);
2706 try testArgs(i64, i129, -1 << 128);
2707 try testArgs(i64, i129, -1);
2708 try testArgs(i64, i129, 0);
2709 try testArgs(i128, i129, -1 << 128);
2710 try testArgs(i128, i129, -1);
2711 try testArgs(i128, i129, 0);
2712 try testArgs(i256, i129, -1 << 128);
2713 try testArgs(i256, i129, -1);
2714 try testArgs(i256, i129, 0);
2715 try testArgs(i512, i129, -1 << 128);
2716 try testArgs(i512, i129, -1);
2717 try testArgs(i512, i129, 0);
2718 try testArgs(i1024, i129, -1 << 128);
2719 try testArgs(i1024, i129, -1);
2720 try testArgs(i1024, i129, 0);
2721 try testArgs(u8, u129, 0);
2722 try testArgs(u8, u129, 1 << 0);
2723 try testArgs(u8, u129, 1 << 128);
2724 try testArgs(u16, u129, 0);
2725 try testArgs(u16, u129, 1 << 0);
2726 try testArgs(u16, u129, 1 << 128);
2727 try testArgs(u32, u129, 0);
2728 try testArgs(u32, u129, 1 << 0);
2729 try testArgs(u32, u129, 1 << 128);
2730 try testArgs(u64, u129, 0);
2731 try testArgs(u64, u129, 1 << 0);
2732 try testArgs(u64, u129, 1 << 128);
2733 try testArgs(u128, u129, 0);
2734 try testArgs(u128, u129, 1 << 0);
2735 try testArgs(u128, u129, 1 << 128);
2736 try testArgs(u256, u129, 0);
2737 try testArgs(u256, u129, 1 << 0);
2738 try testArgs(u256, u129, 1 << 128);
2739 try testArgs(u512, u129, 0);
2740 try testArgs(u512, u129, 1 << 0);
2741 try testArgs(u512, u129, 1 << 128);
2742 try testArgs(u1024, u129, 0);
2743 try testArgs(u1024, u129, 1 << 0);
2744 try testArgs(u1024, u129, 1 << 128);
2745
2746 try testArgs(i8, i255, -1 << 254);
2747 try testArgs(i8, i255, -1);
2748 try testArgs(i8, i255, 0);
2749 try testArgs(i16, i255, -1 << 254);
2750 try testArgs(i16, i255, -1);
2751 try testArgs(i16, i255, 0);
2752 try testArgs(i32, i255, -1 << 254);
2753 try testArgs(i32, i255, -1);
2754 try testArgs(i32, i255, 0);
2755 try testArgs(i64, i255, -1 << 254);
2756 try testArgs(i64, i255, -1);
2757 try testArgs(i64, i255, 0);
2758 try testArgs(i128, i255, -1 << 254);
2759 try testArgs(i128, i255, -1);
2760 try testArgs(i128, i255, 0);
2761 try testArgs(i256, i255, -1 << 254);
2762 try testArgs(i256, i255, -1);
2763 try testArgs(i256, i255, 0);
2764 try testArgs(i512, i255, -1 << 254);
2765 try testArgs(i512, i255, -1);
2766 try testArgs(i512, i255, 0);
2767 try testArgs(i1024, i255, -1 << 254);
2768 try testArgs(i1024, i255, -1);
2769 try testArgs(i1024, i255, 0);
2770 try testArgs(u8, u255, 0);
2771 try testArgs(u8, u255, 1 << 0);
2772 try testArgs(u8, u255, 1 << 254);
2773 try testArgs(u16, u255, 0);
2774 try testArgs(u16, u255, 1 << 0);
2775 try testArgs(u16, u255, 1 << 254);
2776 try testArgs(u32, u255, 0);
2777 try testArgs(u32, u255, 1 << 0);
2778 try testArgs(u32, u255, 1 << 254);
2779 try testArgs(u64, u255, 0);
2780 try testArgs(u64, u255, 1 << 0);
2781 try testArgs(u64, u255, 1 << 254);
2782 try testArgs(u128, u255, 0);
2783 try testArgs(u128, u255, 1 << 0);
2784 try testArgs(u128, u255, 1 << 254);
2785 try testArgs(u256, u255, 0);
2786 try testArgs(u256, u255, 1 << 0);
2787 try testArgs(u256, u255, 1 << 254);
2788 try testArgs(u512, u255, 0);
2789 try testArgs(u512, u255, 1 << 0);
2790 try testArgs(u512, u255, 1 << 254);
2791 try testArgs(u1024, u255, 0);
2792 try testArgs(u1024, u255, 1 << 0);
2793 try testArgs(u1024, u255, 1 << 254);
2794
2795 try testArgs(i8, i256, -1 << 255);
2796 try testArgs(i8, i256, -1);
2797 try testArgs(i8, i256, 0);
2798 try testArgs(i16, i256, -1 << 255);
2799 try testArgs(i16, i256, -1);
2800 try testArgs(i16, i256, 0);
2801 try testArgs(i32, i256, -1 << 255);
2802 try testArgs(i32, i256, -1);
2803 try testArgs(i32, i256, 0);
2804 try testArgs(i64, i256, -1 << 255);
2805 try testArgs(i64, i256, -1);
2806 try testArgs(i64, i256, 0);
2807 try testArgs(i128, i256, -1 << 255);
2808 try testArgs(i128, i256, -1);
2809 try testArgs(i128, i256, 0);
2810 try testArgs(i256, i256, -1 << 255);
2811 try testArgs(i256, i256, -1);
2812 try testArgs(i256, i256, 0);
2813 try testArgs(i512, i256, -1 << 255);
2814 try testArgs(i512, i256, -1);
2815 try testArgs(i512, i256, 0);
2816 try testArgs(i1024, i256, -1 << 255);
2817 try testArgs(i1024, i256, -1);
2818 try testArgs(i1024, i256, 0);
2819 try testArgs(u8, u256, 0);
2820 try testArgs(u8, u256, 1 << 0);
2821 try testArgs(u8, u256, 1 << 255);
2822 try testArgs(u16, u256, 0);
2823 try testArgs(u16, u256, 1 << 0);
2824 try testArgs(u16, u256, 1 << 255);
2825 try testArgs(u32, u256, 0);
2826 try testArgs(u32, u256, 1 << 0);
2827 try testArgs(u32, u256, 1 << 255);
2828 try testArgs(u64, u256, 0);
2829 try testArgs(u64, u256, 1 << 0);
2830 try testArgs(u64, u256, 1 << 255);
2831 try testArgs(u128, u256, 0);
2832 try testArgs(u128, u256, 1 << 0);
2833 try testArgs(u128, u256, 1 << 255);
2834 try testArgs(u256, u256, 0);
2835 try testArgs(u256, u256, 1 << 0);
2836 try testArgs(u256, u256, 1 << 255);
2837 try testArgs(u512, u256, 0);
2838 try testArgs(u512, u256, 1 << 0);
2839 try testArgs(u512, u256, 1 << 255);
2840 try testArgs(u1024, u256, 0);
2841 try testArgs(u1024, u256, 1 << 0);
2842 try testArgs(u1024, u256, 1 << 255);
2843
2844 try testArgs(i8, i257, -1 << 256);
2845 try testArgs(i8, i257, -1);
2846 try testArgs(i8, i257, 0);
2847 try testArgs(i16, i257, -1 << 256);
2848 try testArgs(i16, i257, -1);
2849 try testArgs(i16, i257, 0);
2850 try testArgs(i32, i257, -1 << 256);
2851 try testArgs(i32, i257, -1);
2852 try testArgs(i32, i257, 0);
2853 try testArgs(i64, i257, -1 << 256);
2854 try testArgs(i64, i257, -1);
2855 try testArgs(i64, i257, 0);
2856 try testArgs(i128, i257, -1 << 256);
2857 try testArgs(i128, i257, -1);
2858 try testArgs(i128, i257, 0);
2859 try testArgs(i256, i257, -1 << 256);
2860 try testArgs(i256, i257, -1);
2861 try testArgs(i256, i257, 0);
2862 try testArgs(i512, i257, -1 << 256);
2863 try testArgs(i512, i257, -1);
2864 try testArgs(i512, i257, 0);
2865 try testArgs(i1024, i257, -1 << 256);
2866 try testArgs(i1024, i257, -1);
2867 try testArgs(i1024, i257, 0);
2868 try testArgs(u8, u257, 0);
2869 try testArgs(u8, u257, 1 << 0);
2870 try testArgs(u8, u257, 1 << 256);
2871 try testArgs(u16, u257, 0);
2872 try testArgs(u16, u257, 1 << 0);
2873 try testArgs(u16, u257, 1 << 256);
2874 try testArgs(u32, u257, 0);
2875 try testArgs(u32, u257, 1 << 0);
2876 try testArgs(u32, u257, 1 << 256);
2877 try testArgs(u64, u257, 0);
2878 try testArgs(u64, u257, 1 << 0);
2879 try testArgs(u64, u257, 1 << 256);
2880 try testArgs(u128, u257, 0);
2881 try testArgs(u128, u257, 1 << 0);
2882 try testArgs(u128, u257, 1 << 256);
2883 try testArgs(u256, u257, 0);
2884 try testArgs(u256, u257, 1 << 0);
2885 try testArgs(u256, u257, 1 << 256);
2886 try testArgs(u512, u257, 0);
2887 try testArgs(u512, u257, 1 << 0);
2888 try testArgs(u512, u257, 1 << 256);
2889 try testArgs(u1024, u257, 0);
2890 try testArgs(u1024, u257, 1 << 0);
2891 try testArgs(u1024, u257, 1 << 256);
2892
2893 try testArgs(i8, i511, -1 << 510);
2894 try testArgs(i8, i511, -1);
2895 try testArgs(i8, i511, 0);
2896 try testArgs(i16, i511, -1 << 510);
2897 try testArgs(i16, i511, -1);
2898 try testArgs(i16, i511, 0);
2899 try testArgs(i32, i511, -1 << 510);
2900 try testArgs(i32, i511, -1);
2901 try testArgs(i32, i511, 0);
2902 try testArgs(i64, i511, -1 << 510);
2903 try testArgs(i64, i511, -1);
2904 try testArgs(i64, i511, 0);
2905 try testArgs(i128, i511, -1 << 510);
2906 try testArgs(i128, i511, -1);
2907 try testArgs(i128, i511, 0);
2908 try testArgs(i256, i511, -1 << 510);
2909 try testArgs(i256, i511, -1);
2910 try testArgs(i256, i511, 0);
2911 try testArgs(i512, i511, -1 << 510);
2912 try testArgs(i512, i511, -1);
2913 try testArgs(i512, i511, 0);
2914 try testArgs(i1024, i511, -1 << 510);
2915 try testArgs(i1024, i511, -1);
2916 try testArgs(i1024, i511, 0);
2917 try testArgs(u8, u511, 0);
2918 try testArgs(u8, u511, 1 << 0);
2919 try testArgs(u8, u511, 1 << 510);
2920 try testArgs(u16, u511, 0);
2921 try testArgs(u16, u511, 1 << 0);
2922 try testArgs(u16, u511, 1 << 510);
2923 try testArgs(u32, u511, 0);
2924 try testArgs(u32, u511, 1 << 0);
2925 try testArgs(u32, u511, 1 << 510);
2926 try testArgs(u64, u511, 0);
2927 try testArgs(u64, u511, 1 << 0);
2928 try testArgs(u64, u511, 1 << 510);
2929 try testArgs(u128, u511, 0);
2930 try testArgs(u128, u511, 1 << 0);
2931 try testArgs(u128, u511, 1 << 510);
2932 try testArgs(u256, u511, 0);
2933 try testArgs(u256, u511, 1 << 0);
2934 try testArgs(u256, u511, 1 << 510);
2935 try testArgs(u512, u511, 0);
2936 try testArgs(u512, u511, 1 << 0);
2937 try testArgs(u512, u511, 1 << 510);
2938 try testArgs(u1024, u511, 0);
2939 try testArgs(u1024, u511, 1 << 0);
2940 try testArgs(u1024, u511, 1 << 510);
2941
2942 try testArgs(i8, i512, -1 << 511);
2943 try testArgs(i8, i512, -1);
2944 try testArgs(i8, i512, 0);
2945 try testArgs(i16, i512, -1 << 511);
2946 try testArgs(i16, i512, -1);
2947 try testArgs(i16, i512, 0);
2948 try testArgs(i32, i512, -1 << 511);
2949 try testArgs(i32, i512, -1);
2950 try testArgs(i32, i512, 0);
2951 try testArgs(i64, i512, -1 << 511);
2952 try testArgs(i64, i512, -1);
2953 try testArgs(i64, i512, 0);
2954 try testArgs(i128, i512, -1 << 511);
2955 try testArgs(i128, i512, -1);
2956 try testArgs(i128, i512, 0);
2957 try testArgs(i256, i512, -1 << 511);
2958 try testArgs(i256, i512, -1);
2959 try testArgs(i256, i512, 0);
2960 try testArgs(i512, i512, -1 << 511);
2961 try testArgs(i512, i512, -1);
2962 try testArgs(i512, i512, 0);
2963 try testArgs(i1024, i512, -1 << 511);
2964 try testArgs(i1024, i512, -1);
2965 try testArgs(i1024, i512, 0);
2966 try testArgs(u8, u512, 0);
2967 try testArgs(u8, u512, 1 << 0);
2968 try testArgs(u8, u512, 1 << 511);
2969 try testArgs(u16, u512, 0);
2970 try testArgs(u16, u512, 1 << 0);
2971 try testArgs(u16, u512, 1 << 511);
2972 try testArgs(u32, u512, 0);
2973 try testArgs(u32, u512, 1 << 0);
2974 try testArgs(u32, u512, 1 << 511);
2975 try testArgs(u64, u512, 0);
2976 try testArgs(u64, u512, 1 << 0);
2977 try testArgs(u64, u512, 1 << 511);
2978 try testArgs(u128, u512, 0);
2979 try testArgs(u128, u512, 1 << 0);
2980 try testArgs(u128, u512, 1 << 511);
2981 try testArgs(u256, u512, 0);
2982 try testArgs(u256, u512, 1 << 0);
2983 try testArgs(u256, u512, 1 << 511);
2984 try testArgs(u512, u512, 0);
2985 try testArgs(u512, u512, 1 << 0);
2986 try testArgs(u512, u512, 1 << 511);
2987 try testArgs(u1024, u512, 0);
2988 try testArgs(u1024, u512, 1 << 0);
2989 try testArgs(u1024, u512, 1 << 511);
2990
2991 try testArgs(i8, i513, -1 << 512);
2992 try testArgs(i8, i513, -1);
2993 try testArgs(i8, i513, 0);
2994 try testArgs(i16, i513, -1 << 512);
2995 try testArgs(i16, i513, -1);
2996 try testArgs(i16, i513, 0);
2997 try testArgs(i32, i513, -1 << 512);
2998 try testArgs(i32, i513, -1);
2999 try testArgs(i32, i513, 0);
3000 try testArgs(i64, i513, -1 << 512);
3001 try testArgs(i64, i513, -1);
3002 try testArgs(i64, i513, 0);
3003 try testArgs(i128, i513, -1 << 512);
3004 try testArgs(i128, i513, -1);
3005 try testArgs(i128, i513, 0);
3006 try testArgs(i256, i513, -1 << 512);
3007 try testArgs(i256, i513, -1);
3008 try testArgs(i256, i513, 0);
3009 try testArgs(i512, i513, -1 << 512);
3010 try testArgs(i512, i513, -1);
3011 try testArgs(i512, i513, 0);
3012 try testArgs(i1024, i513, -1 << 512);
3013 try testArgs(i1024, i513, -1);
3014 try testArgs(i1024, i513, 0);
3015 try testArgs(u8, u513, 0);
3016 try testArgs(u8, u513, 1 << 0);
3017 try testArgs(u8, u513, 1 << 512);
3018 try testArgs(u16, u513, 0);
3019 try testArgs(u16, u513, 1 << 0);
3020 try testArgs(u16, u513, 1 << 512);
3021 try testArgs(u32, u513, 0);
3022 try testArgs(u32, u513, 1 << 0);
3023 try testArgs(u32, u513, 1 << 512);
3024 try testArgs(u64, u513, 0);
3025 try testArgs(u64, u513, 1 << 0);
3026 try testArgs(u64, u513, 1 << 512);
3027 try testArgs(u128, u513, 0);
3028 try testArgs(u128, u513, 1 << 0);
3029 try testArgs(u128, u513, 1 << 512);
3030 try testArgs(u256, u513, 0);
3031 try testArgs(u256, u513, 1 << 0);
3032 try testArgs(u256, u513, 1 << 512);
3033 try testArgs(u512, u513, 0);
3034 try testArgs(u512, u513, 1 << 0);
3035 try testArgs(u512, u513, 1 << 512);
3036 try testArgs(u1024, u513, 0);
3037 try testArgs(u1024, u513, 1 << 0);
3038 try testArgs(u1024, u513, 1 << 512);
3039
3040 try testArgs(i8, i1023, -1 << 1022);
3041 try testArgs(i8, i1023, -1);
3042 try testArgs(i8, i1023, 0);
3043 try testArgs(i16, i1023, -1 << 1022);
3044 try testArgs(i16, i1023, -1);
3045 try testArgs(i16, i1023, 0);
3046 try testArgs(i32, i1023, -1 << 1022);
3047 try testArgs(i32, i1023, -1);
3048 try testArgs(i32, i1023, 0);
3049 try testArgs(i64, i1023, -1 << 1022);
3050 try testArgs(i64, i1023, -1);
3051 try testArgs(i64, i1023, 0);
3052 try testArgs(i128, i1023, -1 << 1022);
3053 try testArgs(i128, i1023, -1);
3054 try testArgs(i128, i1023, 0);
3055 try testArgs(i256, i1023, -1 << 1022);
3056 try testArgs(i256, i1023, -1);
3057 try testArgs(i256, i1023, 0);
3058 try testArgs(i512, i1023, -1 << 1022);
3059 try testArgs(i512, i1023, -1);
3060 try testArgs(i512, i1023, 0);
3061 try testArgs(i1024, i1023, -1 << 1022);
3062 try testArgs(i1024, i1023, -1);
3063 try testArgs(i1024, i1023, 0);
3064 try testArgs(u8, u1023, 0);
3065 try testArgs(u8, u1023, 1 << 0);
3066 try testArgs(u8, u1023, 1 << 1022);
3067 try testArgs(u16, u1023, 0);
3068 try testArgs(u16, u1023, 1 << 0);
3069 try testArgs(u16, u1023, 1 << 1022);
3070 try testArgs(u32, u1023, 0);
3071 try testArgs(u32, u1023, 1 << 0);
3072 try testArgs(u32, u1023, 1 << 1022);
3073 try testArgs(u64, u1023, 0);
3074 try testArgs(u64, u1023, 1 << 0);
3075 try testArgs(u64, u1023, 1 << 1022);
3076 try testArgs(u128, u1023, 0);
3077 try testArgs(u128, u1023, 1 << 0);
3078 try testArgs(u128, u1023, 1 << 1022);
3079 try testArgs(u256, u1023, 0);
3080 try testArgs(u256, u1023, 1 << 0);
3081 try testArgs(u256, u1023, 1 << 1022);
3082 try testArgs(u512, u1023, 0);
3083 try testArgs(u512, u1023, 1 << 0);
3084 try testArgs(u512, u1023, 1 << 1022);
3085 try testArgs(u1024, u1023, 0);
3086 try testArgs(u1024, u1023, 1 << 0);
3087 try testArgs(u1024, u1023, 1 << 1022);
3088
3089 try testArgs(i8, i1024, -1 << 1023);
3090 try testArgs(i8, i1024, -1);
3091 try testArgs(i8, i1024, 0);
3092 try testArgs(i16, i1024, -1 << 1023);
3093 try testArgs(i16, i1024, -1);
3094 try testArgs(i16, i1024, 0);
3095 try testArgs(i32, i1024, -1 << 1023);
3096 try testArgs(i32, i1024, -1);
3097 try testArgs(i32, i1024, 0);
3098 try testArgs(i64, i1024, -1 << 1023);
3099 try testArgs(i64, i1024, -1);
3100 try testArgs(i64, i1024, 0);
3101 try testArgs(i128, i1024, -1 << 1023);
3102 try testArgs(i128, i1024, -1);
3103 try testArgs(i128, i1024, 0);
3104 try testArgs(i256, i1024, -1 << 1023);
3105 try testArgs(i256, i1024, -1);
3106 try testArgs(i256, i1024, 0);
3107 try testArgs(i512, i1024, -1 << 1023);
3108 try testArgs(i512, i1024, -1);
3109 try testArgs(i512, i1024, 0);
3110 try testArgs(i1024, i1024, -1 << 1023);
3111 try testArgs(i1024, i1024, -1);
3112 try testArgs(i1024, i1024, 0);
3113 try testArgs(u8, u1024, 0);
3114 try testArgs(u8, u1024, 1 << 0);
3115 try testArgs(u8, u1024, 1 << 1023);
3116 try testArgs(u16, u1024, 0);
3117 try testArgs(u16, u1024, 1 << 0);
3118 try testArgs(u16, u1024, 1 << 1023);
3119 try testArgs(u32, u1024, 0);
3120 try testArgs(u32, u1024, 1 << 0);
3121 try testArgs(u32, u1024, 1 << 1023);
3122 try testArgs(u64, u1024, 0);
3123 try testArgs(u64, u1024, 1 << 0);
3124 try testArgs(u64, u1024, 1 << 1023);
3125 try testArgs(u128, u1024, 0);
3126 try testArgs(u128, u1024, 1 << 0);
3127 try testArgs(u128, u1024, 1 << 1023);
3128 try testArgs(u256, u1024, 0);
3129 try testArgs(u256, u1024, 1 << 0);
3130 try testArgs(u256, u1024, 1 << 1023);
3131 try testArgs(u512, u1024, 0);
3132 try testArgs(u512, u1024, 1 << 0);
3133 try testArgs(u512, u1024, 1 << 1023);
3134 try testArgs(u1024, u1024, 0);
3135 try testArgs(u1024, u1024, 1 << 0);
3136 try testArgs(u1024, u1024, 1 << 1023);
3137
3138 try testArgs(i8, i1025, -1 << 1024);
3139 try testArgs(i8, i1025, -1);
3140 try testArgs(i8, i1025, 0);
3141 try testArgs(i16, i1025, -1 << 1024);
3142 try testArgs(i16, i1025, -1);
3143 try testArgs(i16, i1025, 0);
3144 try testArgs(i32, i1025, -1 << 1024);
3145 try testArgs(i32, i1025, -1);
3146 try testArgs(i32, i1025, 0);
3147 try testArgs(i64, i1025, -1 << 1024);
3148 try testArgs(i64, i1025, -1);
3149 try testArgs(i64, i1025, 0);
3150 try testArgs(i128, i1025, -1 << 1024);
3151 try testArgs(i128, i1025, -1);
3152 try testArgs(i128, i1025, 0);
3153 try testArgs(i256, i1025, -1 << 1024);
3154 try testArgs(i256, i1025, -1);
3155 try testArgs(i256, i1025, 0);
3156 try testArgs(i512, i1025, -1 << 1024);
3157 try testArgs(i512, i1025, -1);
3158 try testArgs(i512, i1025, 0);
3159 try testArgs(i1024, i1025, -1 << 1024);
3160 try testArgs(i1024, i1025, -1);
3161 try testArgs(i1024, i1025, 0);
3162 try testArgs(u8, u1025, 0);
3163 try testArgs(u8, u1025, 1 << 0);
3164 try testArgs(u8, u1025, 1 << 1024);
3165 try testArgs(u16, u1025, 0);
3166 try testArgs(u16, u1025, 1 << 0);
3167 try testArgs(u16, u1025, 1 << 1024);
3168 try testArgs(u32, u1025, 0);
3169 try testArgs(u32, u1025, 1 << 0);
3170 try testArgs(u32, u1025, 1 << 1024);
3171 try testArgs(u64, u1025, 0);
3172 try testArgs(u64, u1025, 1 << 0);
3173 try testArgs(u64, u1025, 1 << 1024);
3174 try testArgs(u128, u1025, 0);
3175 try testArgs(u128, u1025, 1 << 0);
3176 try testArgs(u128, u1025, 1 << 1024);
3177 try testArgs(u256, u1025, 0);
3178 try testArgs(u256, u1025, 1 << 0);
3179 try testArgs(u256, u1025, 1 << 1024);
3180 try testArgs(u512, u1025, 0);
3181 try testArgs(u512, u1025, 1 << 0);
3182 try testArgs(u512, u1025, 1 << 1024);
3183 try testArgs(u1024, u1025, 0);
3184 try testArgs(u1024, u1025, 1 << 0);
3185 try testArgs(u1024, u1025, 1 << 1024);
3186 }
3187 fn testInts() !void {
3188 try testSameSignednessInts();
3189
3190 try testArgs(u8, i1, -1);
3191 try testArgs(u8, i1, 0);
3192 try testArgs(u16, i1, -1);
3193 try testArgs(u16, i1, 0);
3194 try testArgs(u32, i1, -1);
3195 try testArgs(u32, i1, 0);
3196 try testArgs(u64, i1, -1);
3197 try testArgs(u64, i1, 0);
3198 try testArgs(u128, i1, -1);
3199 try testArgs(u128, i1, 0);
3200 try testArgs(u256, i1, -1);
3201 try testArgs(u256, i1, 0);
3202 try testArgs(u512, i1, -1);
3203 try testArgs(u512, i1, 0);
3204 try testArgs(u1024, i1, -1);
3205 try testArgs(u1024, i1, 0);
3206 try testArgs(i8, u1, 0);
3207 try testArgs(i8, u1, 1 << 0);
3208 try testArgs(i16, u1, 0);
3209 try testArgs(i16, u1, 1 << 0);
3210 try testArgs(i32, u1, 0);
3211 try testArgs(i32, u1, 1 << 0);
3212 try testArgs(i64, u1, 0);
3213 try testArgs(i64, u1, 1 << 0);
3214 try testArgs(i128, u1, 0);
3215 try testArgs(i128, u1, 1 << 0);
3216 try testArgs(i256, u1, 0);
3217 try testArgs(i256, u1, 1 << 0);
3218 try testArgs(i512, u1, 0);
3219 try testArgs(i512, u1, 1 << 0);
3220 try testArgs(i1024, u1, 0);
3221 try testArgs(i1024, u1, 1 << 0);
3222
3223 try testArgs(u8, i2, -1 << 1);
3224 try testArgs(u8, i2, -1);
3225 try testArgs(u8, i2, 0);
3226 try testArgs(u16, i2, -1 << 1);
3227 try testArgs(u16, i2, -1);
3228 try testArgs(u16, i2, 0);
3229 try testArgs(u32, i2, -1 << 1);
3230 try testArgs(u32, i2, -1);
3231 try testArgs(u32, i2, 0);
3232 try testArgs(u64, i2, -1 << 1);
3233 try testArgs(u64, i2, -1);
3234 try testArgs(u64, i2, 0);
3235 try testArgs(u128, i2, -1 << 1);
3236 try testArgs(u128, i2, -1);
3237 try testArgs(u128, i2, 0);
3238 try testArgs(u256, i2, -1 << 1);
3239 try testArgs(u256, i2, -1);
3240 try testArgs(u256, i2, 0);
3241 try testArgs(u512, i2, -1 << 1);
3242 try testArgs(u512, i2, -1);
3243 try testArgs(u512, i2, 0);
3244 try testArgs(u1024, i2, -1 << 1);
3245 try testArgs(u1024, i2, -1);
3246 try testArgs(u1024, i2, 0);
3247 try testArgs(i8, u2, 0);
3248 try testArgs(i8, u2, 1 << 0);
3249 try testArgs(i8, u2, 1 << 1);
3250 try testArgs(i16, u2, 0);
3251 try testArgs(i16, u2, 1 << 0);
3252 try testArgs(i16, u2, 1 << 1);
3253 try testArgs(i32, u2, 0);
3254 try testArgs(i32, u2, 1 << 0);
3255 try testArgs(i32, u2, 1 << 1);
3256 try testArgs(i64, u2, 0);
3257 try testArgs(i64, u2, 1 << 0);
3258 try testArgs(i64, u2, 1 << 1);
3259 try testArgs(i128, u2, 0);
3260 try testArgs(i128, u2, 1 << 0);
3261 try testArgs(i128, u2, 1 << 1);
3262 try testArgs(i256, u2, 0);
3263 try testArgs(i256, u2, 1 << 0);
3264 try testArgs(i256, u2, 1 << 1);
3265 try testArgs(i512, u2, 0);
3266 try testArgs(i512, u2, 1 << 0);
3267 try testArgs(i512, u2, 1 << 1);
3268 try testArgs(i1024, u2, 0);
3269 try testArgs(i1024, u2, 1 << 0);
3270 try testArgs(i1024, u2, 1 << 1);
3271
3272 try testArgs(u8, i3, -1 << 2);
3273 try testArgs(u8, i3, -1);
3274 try testArgs(u8, i3, 0);
3275 try testArgs(u16, i3, -1 << 2);
3276 try testArgs(u16, i3, -1);
3277 try testArgs(u16, i3, 0);
3278 try testArgs(u32, i3, -1 << 2);
3279 try testArgs(u32, i3, -1);
3280 try testArgs(u32, i3, 0);
3281 try testArgs(u64, i3, -1 << 2);
3282 try testArgs(u64, i3, -1);
3283 try testArgs(u64, i3, 0);
3284 try testArgs(u128, i3, -1 << 2);
3285 try testArgs(u128, i3, -1);
3286 try testArgs(u128, i3, 0);
3287 try testArgs(u256, i3, -1 << 2);
3288 try testArgs(u256, i3, -1);
3289 try testArgs(u256, i3, 0);
3290 try testArgs(u512, i3, -1 << 2);
3291 try testArgs(u512, i3, -1);
3292 try testArgs(u512, i3, 0);
3293 try testArgs(u1024, i3, -1 << 2);
3294 try testArgs(u1024, i3, -1);
3295 try testArgs(u1024, i3, 0);
3296 try testArgs(i8, u3, 0);
3297 try testArgs(i8, u3, 1 << 0);
3298 try testArgs(i8, u3, 1 << 2);
3299 try testArgs(i16, u3, 0);
3300 try testArgs(i16, u3, 1 << 0);
3301 try testArgs(i16, u3, 1 << 2);
3302 try testArgs(i32, u3, 0);
3303 try testArgs(i32, u3, 1 << 0);
3304 try testArgs(i32, u3, 1 << 2);
3305 try testArgs(i64, u3, 0);
3306 try testArgs(i64, u3, 1 << 0);
3307 try testArgs(i64, u3, 1 << 2);
3308 try testArgs(i128, u3, 0);
3309 try testArgs(i128, u3, 1 << 0);
3310 try testArgs(i128, u3, 1 << 2);
3311 try testArgs(i256, u3, 0);
3312 try testArgs(i256, u3, 1 << 0);
3313 try testArgs(i256, u3, 1 << 2);
3314 try testArgs(i512, u3, 0);
3315 try testArgs(i512, u3, 1 << 0);
3316 try testArgs(i512, u3, 1 << 2);
3317 try testArgs(i1024, u3, 0);
3318 try testArgs(i1024, u3, 1 << 0);
3319 try testArgs(i1024, u3, 1 << 2);
3320
3321 try testArgs(u8, i4, -1 << 3);
3322 try testArgs(u8, i4, -1);
3323 try testArgs(u8, i4, 0);
3324 try testArgs(u16, i4, -1 << 3);
3325 try testArgs(u16, i4, -1);
3326 try testArgs(u16, i4, 0);
3327 try testArgs(u32, i4, -1 << 3);
3328 try testArgs(u32, i4, -1);
3329 try testArgs(u32, i4, 0);
3330 try testArgs(u64, i4, -1 << 3);
3331 try testArgs(u64, i4, -1);
3332 try testArgs(u64, i4, 0);
3333 try testArgs(u128, i4, -1 << 3);
3334 try testArgs(u128, i4, -1);
3335 try testArgs(u128, i4, 0);
3336 try testArgs(u256, i4, -1 << 3);
3337 try testArgs(u256, i4, -1);
3338 try testArgs(u256, i4, 0);
3339 try testArgs(u512, i4, -1 << 3);
3340 try testArgs(u512, i4, -1);
3341 try testArgs(u512, i4, 0);
3342 try testArgs(u1024, i4, -1 << 3);
3343 try testArgs(u1024, i4, -1);
3344 try testArgs(u1024, i4, 0);
3345 try testArgs(i8, u4, 0);
3346 try testArgs(i8, u4, 1 << 0);
3347 try testArgs(i8, u4, 1 << 3);
3348 try testArgs(i16, u4, 0);
3349 try testArgs(i16, u4, 1 << 0);
3350 try testArgs(i16, u4, 1 << 3);
3351 try testArgs(i32, u4, 0);
3352 try testArgs(i32, u4, 1 << 0);
3353 try testArgs(i32, u4, 1 << 3);
3354 try testArgs(i64, u4, 0);
3355 try testArgs(i64, u4, 1 << 0);
3356 try testArgs(i64, u4, 1 << 3);
3357 try testArgs(i128, u4, 0);
3358 try testArgs(i128, u4, 1 << 0);
3359 try testArgs(i128, u4, 1 << 3);
3360 try testArgs(i256, u4, 0);
3361 try testArgs(i256, u4, 1 << 0);
3362 try testArgs(i256, u4, 1 << 3);
3363 try testArgs(i512, u4, 0);
3364 try testArgs(i512, u4, 1 << 0);
3365 try testArgs(i512, u4, 1 << 3);
3366 try testArgs(i1024, u4, 0);
3367 try testArgs(i1024, u4, 1 << 0);
3368 try testArgs(i1024, u4, 1 << 3);
3369
3370 try testArgs(u8, i5, -1 << 4);
3371 try testArgs(u8, i5, -1);
3372 try testArgs(u8, i5, 0);
3373 try testArgs(u16, i5, -1 << 4);
3374 try testArgs(u16, i5, -1);
3375 try testArgs(u16, i5, 0);
3376 try testArgs(u32, i5, -1 << 4);
3377 try testArgs(u32, i5, -1);
3378 try testArgs(u32, i5, 0);
3379 try testArgs(u64, i5, -1 << 4);
3380 try testArgs(u64, i5, -1);
3381 try testArgs(u64, i5, 0);
3382 try testArgs(u128, i5, -1 << 4);
3383 try testArgs(u128, i5, -1);
3384 try testArgs(u128, i5, 0);
3385 try testArgs(u256, i5, -1 << 4);
3386 try testArgs(u256, i5, -1);
3387 try testArgs(u256, i5, 0);
3388 try testArgs(u512, i5, -1 << 4);
3389 try testArgs(u512, i5, -1);
3390 try testArgs(u512, i5, 0);
3391 try testArgs(u1024, i5, -1 << 4);
3392 try testArgs(u1024, i5, -1);
3393 try testArgs(u1024, i5, 0);
3394 try testArgs(i8, u5, 0);
3395 try testArgs(i8, u5, 1 << 0);
3396 try testArgs(i8, u5, 1 << 4);
3397 try testArgs(i16, u5, 0);
3398 try testArgs(i16, u5, 1 << 0);
3399 try testArgs(i16, u5, 1 << 4);
3400 try testArgs(i32, u5, 0);
3401 try testArgs(i32, u5, 1 << 0);
3402 try testArgs(i32, u5, 1 << 4);
3403 try testArgs(i64, u5, 0);
3404 try testArgs(i64, u5, 1 << 0);
3405 try testArgs(i64, u5, 1 << 4);
3406 try testArgs(i128, u5, 0);
3407 try testArgs(i128, u5, 1 << 0);
3408 try testArgs(i128, u5, 1 << 4);
3409 try testArgs(i256, u5, 0);
3410 try testArgs(i256, u5, 1 << 0);
3411 try testArgs(i256, u5, 1 << 4);
3412 try testArgs(i512, u5, 0);
3413 try testArgs(i512, u5, 1 << 0);
3414 try testArgs(i512, u5, 1 << 4);
3415 try testArgs(i1024, u5, 0);
3416 try testArgs(i1024, u5, 1 << 0);
3417 try testArgs(i1024, u5, 1 << 4);
3418
3419 try testArgs(u8, i7, -1 << 6);
3420 try testArgs(u8, i7, -1);
3421 try testArgs(u8, i7, 0);
3422 try testArgs(u16, i7, -1 << 6);
3423 try testArgs(u16, i7, -1);
3424 try testArgs(u16, i7, 0);
3425 try testArgs(u32, i7, -1 << 6);
3426 try testArgs(u32, i7, -1);
3427 try testArgs(u32, i7, 0);
3428 try testArgs(u64, i7, -1 << 6);
3429 try testArgs(u64, i7, -1);
3430 try testArgs(u64, i7, 0);
3431 try testArgs(u128, i7, -1 << 6);
3432 try testArgs(u128, i7, -1);
3433 try testArgs(u128, i7, 0);
3434 try testArgs(u256, i7, -1 << 6);
3435 try testArgs(u256, i7, -1);
3436 try testArgs(u256, i7, 0);
3437 try testArgs(u512, i7, -1 << 6);
3438 try testArgs(u512, i7, -1);
3439 try testArgs(u512, i7, 0);
3440 try testArgs(u1024, i7, -1 << 6);
3441 try testArgs(u1024, i7, -1);
3442 try testArgs(u1024, i7, 0);
3443 try testArgs(i8, u7, 0);
3444 try testArgs(i8, u7, 1 << 0);
3445 try testArgs(i8, u7, 1 << 6);
3446 try testArgs(i16, u7, 0);
3447 try testArgs(i16, u7, 1 << 0);
3448 try testArgs(i16, u7, 1 << 6);
3449 try testArgs(i32, u7, 0);
3450 try testArgs(i32, u7, 1 << 0);
3451 try testArgs(i32, u7, 1 << 6);
3452 try testArgs(i64, u7, 0);
3453 try testArgs(i64, u7, 1 << 0);
3454 try testArgs(i64, u7, 1 << 6);
3455 try testArgs(i128, u7, 0);
3456 try testArgs(i128, u7, 1 << 0);
3457 try testArgs(i128, u7, 1 << 6);
3458 try testArgs(i256, u7, 0);
3459 try testArgs(i256, u7, 1 << 0);
3460 try testArgs(i256, u7, 1 << 6);
3461 try testArgs(i512, u7, 0);
3462 try testArgs(i512, u7, 1 << 0);
3463 try testArgs(i512, u7, 1 << 6);
3464 try testArgs(i1024, u7, 0);
3465 try testArgs(i1024, u7, 1 << 0);
3466 try testArgs(i1024, u7, 1 << 6);
3467
3468 try testArgs(u8, i8, -1 << 7);
3469 try testArgs(u8, i8, -1);
3470 try testArgs(u8, i8, 0);
3471 try testArgs(u16, i8, -1 << 7);
3472 try testArgs(u16, i8, -1);
3473 try testArgs(u16, i8, 0);
3474 try testArgs(u32, i8, -1 << 7);
3475 try testArgs(u32, i8, -1);
3476 try testArgs(u32, i8, 0);
3477 try testArgs(u64, i8, -1 << 7);
3478 try testArgs(u64, i8, -1);
3479 try testArgs(u64, i8, 0);
3480 try testArgs(u128, i8, -1 << 7);
3481 try testArgs(u128, i8, -1);
3482 try testArgs(u128, i8, 0);
3483 try testArgs(u256, i8, -1 << 7);
3484 try testArgs(u256, i8, -1);
3485 try testArgs(u256, i8, 0);
3486 try testArgs(u512, i8, -1 << 7);
3487 try testArgs(u512, i8, -1);
3488 try testArgs(u512, i8, 0);
3489 try testArgs(u1024, i8, -1 << 7);
3490 try testArgs(u1024, i8, -1);
3491 try testArgs(u1024, i8, 0);
3492 try testArgs(i8, u8, 0);
3493 try testArgs(i8, u8, 1 << 0);
3494 try testArgs(i8, u8, 1 << 7);
3495 try testArgs(i16, u8, 0);
3496 try testArgs(i16, u8, 1 << 0);
3497 try testArgs(i16, u8, 1 << 7);
3498 try testArgs(i32, u8, 0);
3499 try testArgs(i32, u8, 1 << 0);
3500 try testArgs(i32, u8, 1 << 7);
3501 try testArgs(i64, u8, 0);
3502 try testArgs(i64, u8, 1 << 0);
3503 try testArgs(i64, u8, 1 << 7);
3504 try testArgs(i128, u8, 0);
3505 try testArgs(i128, u8, 1 << 0);
3506 try testArgs(i128, u8, 1 << 7);
3507 try testArgs(i256, u8, 0);
3508 try testArgs(i256, u8, 1 << 0);
3509 try testArgs(i256, u8, 1 << 7);
3510 try testArgs(i512, u8, 0);
3511 try testArgs(i512, u8, 1 << 0);
3512 try testArgs(i512, u8, 1 << 7);
3513 try testArgs(i1024, u8, 0);
3514 try testArgs(i1024, u8, 1 << 0);
3515 try testArgs(i1024, u8, 1 << 7);
3516
3517 try testArgs(u8, i9, -1 << 8);
3518 try testArgs(u8, i9, -1);
3519 try testArgs(u8, i9, 0);
3520 try testArgs(u16, i9, -1 << 8);
3521 try testArgs(u16, i9, -1);
3522 try testArgs(u16, i9, 0);
3523 try testArgs(u32, i9, -1 << 8);
3524 try testArgs(u32, i9, -1);
3525 try testArgs(u32, i9, 0);
3526 try testArgs(u64, i9, -1 << 8);
3527 try testArgs(u64, i9, -1);
3528 try testArgs(u64, i9, 0);
3529 try testArgs(u128, i9, -1 << 8);
3530 try testArgs(u128, i9, -1);
3531 try testArgs(u128, i9, 0);
3532 try testArgs(u256, i9, -1 << 8);
3533 try testArgs(u256, i9, -1);
3534 try testArgs(u256, i9, 0);
3535 try testArgs(u512, i9, -1 << 8);
3536 try testArgs(u512, i9, -1);
3537 try testArgs(u512, i9, 0);
3538 try testArgs(u1024, i9, -1 << 8);
3539 try testArgs(u1024, i9, -1);
3540 try testArgs(u1024, i9, 0);
3541 try testArgs(i8, u9, 0);
3542 try testArgs(i8, u9, 1 << 0);
3543 try testArgs(i8, u9, 1 << 8);
3544 try testArgs(i16, u9, 0);
3545 try testArgs(i16, u9, 1 << 0);
3546 try testArgs(i16, u9, 1 << 8);
3547 try testArgs(i32, u9, 0);
3548 try testArgs(i32, u9, 1 << 0);
3549 try testArgs(i32, u9, 1 << 8);
3550 try testArgs(i64, u9, 0);
3551 try testArgs(i64, u9, 1 << 0);
3552 try testArgs(i64, u9, 1 << 8);
3553 try testArgs(i128, u9, 0);
3554 try testArgs(i128, u9, 1 << 0);
3555 try testArgs(i128, u9, 1 << 8);
3556 try testArgs(i256, u9, 0);
3557 try testArgs(i256, u9, 1 << 0);
3558 try testArgs(i256, u9, 1 << 8);
3559 try testArgs(i512, u9, 0);
3560 try testArgs(i512, u9, 1 << 0);
3561 try testArgs(i512, u9, 1 << 8);
3562 try testArgs(i1024, u9, 0);
3563 try testArgs(i1024, u9, 1 << 0);
3564 try testArgs(i1024, u9, 1 << 8);
3565
3566 try testArgs(u8, i15, -1 << 14);
3567 try testArgs(u8, i15, -1);
3568 try testArgs(u8, i15, 0);
3569 try testArgs(u16, i15, -1 << 14);
3570 try testArgs(u16, i15, -1);
3571 try testArgs(u16, i15, 0);
3572 try testArgs(u32, i15, -1 << 14);
3573 try testArgs(u32, i15, -1);
3574 try testArgs(u32, i15, 0);
3575 try testArgs(u64, i15, -1 << 14);
3576 try testArgs(u64, i15, -1);
3577 try testArgs(u64, i15, 0);
3578 try testArgs(u128, i15, -1 << 14);
3579 try testArgs(u128, i15, -1);
3580 try testArgs(u128, i15, 0);
3581 try testArgs(u256, i15, -1 << 14);
3582 try testArgs(u256, i15, -1);
3583 try testArgs(u256, i15, 0);
3584 try testArgs(u512, i15, -1 << 14);
3585 try testArgs(u512, i15, -1);
3586 try testArgs(u512, i15, 0);
3587 try testArgs(u1024, i15, -1 << 14);
3588 try testArgs(u1024, i15, -1);
3589 try testArgs(u1024, i15, 0);
3590 try testArgs(i8, u15, 0);
3591 try testArgs(i8, u15, 1 << 0);
3592 try testArgs(i8, u15, 1 << 14);
3593 try testArgs(i16, u15, 0);
3594 try testArgs(i16, u15, 1 << 0);
3595 try testArgs(i16, u15, 1 << 14);
3596 try testArgs(i32, u15, 0);
3597 try testArgs(i32, u15, 1 << 0);
3598 try testArgs(i32, u15, 1 << 14);
3599 try testArgs(i64, u15, 0);
3600 try testArgs(i64, u15, 1 << 0);
3601 try testArgs(i64, u15, 1 << 14);
3602 try testArgs(i128, u15, 0);
3603 try testArgs(i128, u15, 1 << 0);
3604 try testArgs(i128, u15, 1 << 14);
3605 try testArgs(i256, u15, 0);
3606 try testArgs(i256, u15, 1 << 0);
3607 try testArgs(i256, u15, 1 << 14);
3608 try testArgs(i512, u15, 0);
3609 try testArgs(i512, u15, 1 << 0);
3610 try testArgs(i512, u15, 1 << 14);
3611 try testArgs(i1024, u15, 0);
3612 try testArgs(i1024, u15, 1 << 0);
3613 try testArgs(i1024, u15, 1 << 14);
3614
3615 try testArgs(u8, i16, -1 << 15);
3616 try testArgs(u8, i16, -1);
3617 try testArgs(u8, i16, 0);
3618 try testArgs(u16, i16, -1 << 15);
3619 try testArgs(u16, i16, -1);
3620 try testArgs(u16, i16, 0);
3621 try testArgs(u32, i16, -1 << 15);
3622 try testArgs(u32, i16, -1);
3623 try testArgs(u32, i16, 0);
3624 try testArgs(u64, i16, -1 << 15);
3625 try testArgs(u64, i16, -1);
3626 try testArgs(u64, i16, 0);
3627 try testArgs(u128, i16, -1 << 15);
3628 try testArgs(u128, i16, -1);
3629 try testArgs(u128, i16, 0);
3630 try testArgs(u256, i16, -1 << 15);
3631 try testArgs(u256, i16, -1);
3632 try testArgs(u256, i16, 0);
3633 try testArgs(u512, i16, -1 << 15);
3634 try testArgs(u512, i16, -1);
3635 try testArgs(u512, i16, 0);
3636 try testArgs(u1024, i16, -1 << 15);
3637 try testArgs(u1024, i16, -1);
3638 try testArgs(u1024, i16, 0);
3639 try testArgs(i8, u16, 0);
3640 try testArgs(i8, u16, 1 << 0);
3641 try testArgs(i8, u16, 1 << 15);
3642 try testArgs(i16, u16, 0);
3643 try testArgs(i16, u16, 1 << 0);
3644 try testArgs(i16, u16, 1 << 15);
3645 try testArgs(i32, u16, 0);
3646 try testArgs(i32, u16, 1 << 0);
3647 try testArgs(i32, u16, 1 << 15);
3648 try testArgs(i64, u16, 0);
3649 try testArgs(i64, u16, 1 << 0);
3650 try testArgs(i64, u16, 1 << 15);
3651 try testArgs(i128, u16, 0);
3652 try testArgs(i128, u16, 1 << 0);
3653 try testArgs(i128, u16, 1 << 15);
3654 try testArgs(i256, u16, 0);
3655 try testArgs(i256, u16, 1 << 0);
3656 try testArgs(i256, u16, 1 << 15);
3657 try testArgs(i512, u16, 0);
3658 try testArgs(i512, u16, 1 << 0);
3659 try testArgs(i512, u16, 1 << 15);
3660 try testArgs(i1024, u16, 0);
3661 try testArgs(i1024, u16, 1 << 0);
3662 try testArgs(i1024, u16, 1 << 15);
3663
3664 try testArgs(u8, i17, -1 << 16);
3665 try testArgs(u8, i17, -1);
3666 try testArgs(u8, i17, 0);
3667 try testArgs(u16, i17, -1 << 16);
3668 try testArgs(u16, i17, -1);
3669 try testArgs(u16, i17, 0);
3670 try testArgs(u32, i17, -1 << 16);
3671 try testArgs(u32, i17, -1);
3672 try testArgs(u32, i17, 0);
3673 try testArgs(u64, i17, -1 << 16);
3674 try testArgs(u64, i17, -1);
3675 try testArgs(u64, i17, 0);
3676 try testArgs(u128, i17, -1 << 16);
3677 try testArgs(u128, i17, -1);
3678 try testArgs(u128, i17, 0);
3679 try testArgs(u256, i17, -1 << 16);
3680 try testArgs(u256, i17, -1);
3681 try testArgs(u256, i17, 0);
3682 try testArgs(u512, i17, -1 << 16);
3683 try testArgs(u512, i17, -1);
3684 try testArgs(u512, i17, 0);
3685 try testArgs(u1024, i17, -1 << 16);
3686 try testArgs(u1024, i17, -1);
3687 try testArgs(u1024, i17, 0);
3688 try testArgs(i8, u17, 0);
3689 try testArgs(i8, u17, 1 << 0);
3690 try testArgs(i8, u17, 1 << 16);
3691 try testArgs(i16, u17, 0);
3692 try testArgs(i16, u17, 1 << 0);
3693 try testArgs(i16, u17, 1 << 16);
3694 try testArgs(i32, u17, 0);
3695 try testArgs(i32, u17, 1 << 0);
3696 try testArgs(i32, u17, 1 << 16);
3697 try testArgs(i64, u17, 0);
3698 try testArgs(i64, u17, 1 << 0);
3699 try testArgs(i64, u17, 1 << 16);
3700 try testArgs(i128, u17, 0);
3701 try testArgs(i128, u17, 1 << 0);
3702 try testArgs(i128, u17, 1 << 16);
3703 try testArgs(i256, u17, 0);
3704 try testArgs(i256, u17, 1 << 0);
3705 try testArgs(i256, u17, 1 << 16);
3706 try testArgs(i512, u17, 0);
3707 try testArgs(i512, u17, 1 << 0);
3708 try testArgs(i512, u17, 1 << 16);
3709 try testArgs(i1024, u17, 0);
3710 try testArgs(i1024, u17, 1 << 0);
3711 try testArgs(i1024, u17, 1 << 16);
3712
3713 try testArgs(u8, i31, -1 << 30);
3714 try testArgs(u8, i31, -1);
3715 try testArgs(u8, i31, 0);
3716 try testArgs(u16, i31, -1 << 30);
3717 try testArgs(u16, i31, -1);
3718 try testArgs(u16, i31, 0);
3719 try testArgs(u32, i31, -1 << 30);
3720 try testArgs(u32, i31, -1);
3721 try testArgs(u32, i31, 0);
3722 try testArgs(u64, i31, -1 << 30);
3723 try testArgs(u64, i31, -1);
3724 try testArgs(u64, i31, 0);
3725 try testArgs(u128, i31, -1 << 30);
3726 try testArgs(u128, i31, -1);
3727 try testArgs(u128, i31, 0);
3728 try testArgs(u256, i31, -1 << 30);
3729 try testArgs(u256, i31, -1);
3730 try testArgs(u256, i31, 0);
3731 try testArgs(u512, i31, -1 << 30);
3732 try testArgs(u512, i31, -1);
3733 try testArgs(u512, i31, 0);
3734 try testArgs(u1024, i31, -1 << 30);
3735 try testArgs(u1024, i31, -1);
3736 try testArgs(u1024, i31, 0);
3737 try testArgs(i8, u31, 0);
3738 try testArgs(i8, u31, 1 << 0);
3739 try testArgs(i8, u31, 1 << 30);
3740 try testArgs(i16, u31, 0);
3741 try testArgs(i16, u31, 1 << 0);
3742 try testArgs(i16, u31, 1 << 30);
3743 try testArgs(i32, u31, 0);
3744 try testArgs(i32, u31, 1 << 0);
3745 try testArgs(i32, u31, 1 << 30);
3746 try testArgs(i64, u31, 0);
3747 try testArgs(i64, u31, 1 << 0);
3748 try testArgs(i64, u31, 1 << 30);
3749 try testArgs(i128, u31, 0);
3750 try testArgs(i128, u31, 1 << 0);
3751 try testArgs(i128, u31, 1 << 30);
3752 try testArgs(i256, u31, 0);
3753 try testArgs(i256, u31, 1 << 0);
3754 try testArgs(i256, u31, 1 << 30);
3755 try testArgs(i512, u31, 0);
3756 try testArgs(i512, u31, 1 << 0);
3757 try testArgs(i512, u31, 1 << 30);
3758 try testArgs(i1024, u31, 0);
3759 try testArgs(i1024, u31, 1 << 0);
3760 try testArgs(i1024, u31, 1 << 30);
3761
3762 try testArgs(u8, i32, -1 << 31);
3763 try testArgs(u8, i32, -1);
3764 try testArgs(u8, i32, 0);
3765 try testArgs(u16, i32, -1 << 31);
3766 try testArgs(u16, i32, -1);
3767 try testArgs(u16, i32, 0);
3768 try testArgs(u32, i32, -1 << 31);
3769 try testArgs(u32, i32, -1);
3770 try testArgs(u32, i32, 0);
3771 try testArgs(u64, i32, -1 << 31);
3772 try testArgs(u64, i32, -1);
3773 try testArgs(u64, i32, 0);
3774 try testArgs(u128, i32, -1 << 31);
3775 try testArgs(u128, i32, -1);
3776 try testArgs(u128, i32, 0);
3777 try testArgs(u256, i32, -1 << 31);
3778 try testArgs(u256, i32, -1);
3779 try testArgs(u256, i32, 0);
3780 try testArgs(u512, i32, -1 << 31);
3781 try testArgs(u512, i32, -1);
3782 try testArgs(u512, i32, 0);
3783 try testArgs(u1024, i32, -1 << 31);
3784 try testArgs(u1024, i32, -1);
3785 try testArgs(u1024, i32, 0);
3786 try testArgs(i8, u32, 0);
3787 try testArgs(i8, u32, 1 << 0);
3788 try testArgs(i8, u32, 1 << 31);
3789 try testArgs(i16, u32, 0);
3790 try testArgs(i16, u32, 1 << 0);
3791 try testArgs(i16, u32, 1 << 31);
3792 try testArgs(i32, u32, 0);
3793 try testArgs(i32, u32, 1 << 0);
3794 try testArgs(i32, u32, 1 << 31);
3795 try testArgs(i64, u32, 0);
3796 try testArgs(i64, u32, 1 << 0);
3797 try testArgs(i64, u32, 1 << 31);
3798 try testArgs(i128, u32, 0);
3799 try testArgs(i128, u32, 1 << 0);
3800 try testArgs(i128, u32, 1 << 31);
3801 try testArgs(i256, u32, 0);
3802 try testArgs(i256, u32, 1 << 0);
3803 try testArgs(i256, u32, 1 << 31);
3804 try testArgs(i512, u32, 0);
3805 try testArgs(i512, u32, 1 << 0);
3806 try testArgs(i512, u32, 1 << 31);
3807 try testArgs(i1024, u32, 0);
3808 try testArgs(i1024, u32, 1 << 0);
3809 try testArgs(i1024, u32, 1 << 31);
3810
3811 try testArgs(u8, i33, -1 << 32);
3812 try testArgs(u8, i33, -1);
3813 try testArgs(u8, i33, 0);
3814 try testArgs(u16, i33, -1 << 32);
3815 try testArgs(u16, i33, -1);
3816 try testArgs(u16, i33, 0);
3817 try testArgs(u32, i33, -1 << 32);
3818 try testArgs(u32, i33, -1);
3819 try testArgs(u32, i33, 0);
3820 try testArgs(u64, i33, -1 << 32);
3821 try testArgs(u64, i33, -1);
3822 try testArgs(u64, i33, 0);
3823 try testArgs(u128, i33, -1 << 32);
3824 try testArgs(u128, i33, -1);
3825 try testArgs(u128, i33, 0);
3826 try testArgs(u256, i33, -1 << 32);
3827 try testArgs(u256, i33, -1);
3828 try testArgs(u256, i33, 0);
3829 try testArgs(u512, i33, -1 << 32);
3830 try testArgs(u512, i33, -1);
3831 try testArgs(u512, i33, 0);
3832 try testArgs(u1024, i33, -1 << 32);
3833 try testArgs(u1024, i33, -1);
3834 try testArgs(u1024, i33, 0);
3835 try testArgs(i8, u33, 0);
3836 try testArgs(i8, u33, 1 << 0);
3837 try testArgs(i8, u33, 1 << 32);
3838 try testArgs(i16, u33, 0);
3839 try testArgs(i16, u33, 1 << 0);
3840 try testArgs(i16, u33, 1 << 32);
3841 try testArgs(i32, u33, 0);
3842 try testArgs(i32, u33, 1 << 0);
3843 try testArgs(i32, u33, 1 << 32);
3844 try testArgs(i64, u33, 0);
3845 try testArgs(i64, u33, 1 << 0);
3846 try testArgs(i64, u33, 1 << 32);
3847 try testArgs(i128, u33, 0);
3848 try testArgs(i128, u33, 1 << 0);
3849 try testArgs(i128, u33, 1 << 32);
3850 try testArgs(i256, u33, 0);
3851 try testArgs(i256, u33, 1 << 0);
3852 try testArgs(i256, u33, 1 << 32);
3853 try testArgs(i512, u33, 0);
3854 try testArgs(i512, u33, 1 << 0);
3855 try testArgs(i512, u33, 1 << 32);
3856 try testArgs(i1024, u33, 0);
3857 try testArgs(i1024, u33, 1 << 0);
3858 try testArgs(i1024, u33, 1 << 32);
3859
3860 try testArgs(u8, i63, -1 << 62);
3861 try testArgs(u8, i63, -1);
3862 try testArgs(u8, i63, 0);
3863 try testArgs(u16, i63, -1 << 62);
3864 try testArgs(u16, i63, -1);
3865 try testArgs(u16, i63, 0);
3866 try testArgs(u32, i63, -1 << 62);
3867 try testArgs(u32, i63, -1);
3868 try testArgs(u32, i63, 0);
3869 try testArgs(u64, i63, -1 << 62);
3870 try testArgs(u64, i63, -1);
3871 try testArgs(u64, i63, 0);
3872 try testArgs(u128, i63, -1 << 62);
3873 try testArgs(u128, i63, -1);
3874 try testArgs(u128, i63, 0);
3875 try testArgs(u256, i63, -1 << 62);
3876 try testArgs(u256, i63, -1);
3877 try testArgs(u256, i63, 0);
3878 try testArgs(u512, i63, -1 << 62);
3879 try testArgs(u512, i63, -1);
3880 try testArgs(u512, i63, 0);
3881 try testArgs(u1024, i63, -1 << 62);
3882 try testArgs(u1024, i63, -1);
3883 try testArgs(u1024, i63, 0);
3884 try testArgs(i8, u63, 0);
3885 try testArgs(i8, u63, 1 << 0);
3886 try testArgs(i8, u63, 1 << 62);
3887 try testArgs(i16, u63, 0);
3888 try testArgs(i16, u63, 1 << 0);
3889 try testArgs(i16, u63, 1 << 62);
3890 try testArgs(i32, u63, 0);
3891 try testArgs(i32, u63, 1 << 0);
3892 try testArgs(i32, u63, 1 << 62);
3893 try testArgs(i64, u63, 0);
3894 try testArgs(i64, u63, 1 << 0);
3895 try testArgs(i64, u63, 1 << 62);
3896 try testArgs(i128, u63, 0);
3897 try testArgs(i128, u63, 1 << 0);
3898 try testArgs(i128, u63, 1 << 62);
3899 try testArgs(i256, u63, 0);
3900 try testArgs(i256, u63, 1 << 0);
3901 try testArgs(i256, u63, 1 << 62);
3902 try testArgs(i512, u63, 0);
3903 try testArgs(i512, u63, 1 << 0);
3904 try testArgs(i512, u63, 1 << 62);
3905 try testArgs(i1024, u63, 0);
3906 try testArgs(i1024, u63, 1 << 0);
3907 try testArgs(i1024, u63, 1 << 62);
3908
3909 try testArgs(u8, i64, -1 << 63);
3910 try testArgs(u8, i64, -1);
3911 try testArgs(u8, i64, 0);
3912 try testArgs(u16, i64, -1 << 63);
3913 try testArgs(u16, i64, -1);
3914 try testArgs(u16, i64, 0);
31223915 try testArgs(u32, i64, -1 << 63);
31233916 try testArgs(u32, i64, -1);
31243917 try testArgs(u32, i64, 0);
3125 try testArgs(i64, i64, -1 << 63);
3126 try testArgs(i64, i64, -1);
3127 try testArgs(i64, i64, 0);
31283918 try testArgs(u64, i64, -1 << 63);
31293919 try testArgs(u64, i64, -1);
31303920 try testArgs(u64, i64, 0);
3131 try testArgs(i128, i64, -1 << 63);
3132 try testArgs(i128, i64, -1);
3133 try testArgs(i128, i64, 0);
31343921 try testArgs(u128, i64, -1 << 63);
31353922 try testArgs(u128, i64, -1);
31363923 try testArgs(u128, i64, 0);
3137 try testArgs(i256, i64, -1 << 63);
3138 try testArgs(i256, i64, -1);
3139 try testArgs(i256, i64, 0);
31403924 try testArgs(u256, i64, -1 << 63);
31413925 try testArgs(u256, i64, -1);
31423926 try testArgs(u256, i64, 0);
3143 try testArgs(i512, i64, -1 << 63);
3144 try testArgs(i512, i64, -1);
3145 try testArgs(i512, i64, 0);
31463927 try testArgs(u512, i64, -1 << 63);
31473928 try testArgs(u512, i64, -1);
31483929 try testArgs(u512, i64, 0);
3149 try testArgs(i1024, i64, -1 << 63);
3150 try testArgs(i1024, i64, -1);
3151 try testArgs(i1024, i64, 0);
31523930 try testArgs(u1024, i64, -1 << 63);
31533931 try testArgs(u1024, i64, -1);
31543932 try testArgs(u1024, i64, 0);
31553933 try testArgs(i8, u64, 0);
31563934 try testArgs(i8, u64, 1 << 0);
31573935 try testArgs(i8, u64, 1 << 63);
3158 try testArgs(u8, u64, 0);
3159 try testArgs(u8, u64, 1 << 0);
3160 try testArgs(u8, u64, 1 << 63);
31613936 try testArgs(i16, u64, 0);
31623937 try testArgs(i16, u64, 1 << 0);
31633938 try testArgs(i16, u64, 1 << 63);
3164 try testArgs(u16, u64, 0);
3165 try testArgs(u16, u64, 1 << 0);
3166 try testArgs(u16, u64, 1 << 63);
31673939 try testArgs(i32, u64, 0);
31683940 try testArgs(i32, u64, 1 << 0);
31693941 try testArgs(i32, u64, 1 << 63);
3170 try testArgs(u32, u64, 0);
3171 try testArgs(u32, u64, 1 << 0);
3172 try testArgs(u32, u64, 1 << 63);
31733942 try testArgs(i64, u64, 0);
31743943 try testArgs(i64, u64, 1 << 0);
31753944 try testArgs(i64, u64, 1 << 63);
3176 try testArgs(u64, u64, 0);
3177 try testArgs(u64, u64, 1 << 0);
3178 try testArgs(u64, u64, 1 << 63);
31793945 try testArgs(i128, u64, 0);
31803946 try testArgs(i128, u64, 1 << 0);
31813947 try testArgs(i128, u64, 1 << 63);
3182 try testArgs(u128, u64, 0);
3183 try testArgs(u128, u64, 1 << 0);
3184 try testArgs(u128, u64, 1 << 63);
31853948 try testArgs(i256, u64, 0);
31863949 try testArgs(i256, u64, 1 << 0);
31873950 try testArgs(i256, u64, 1 << 63);
3188 try testArgs(u256, u64, 0);
3189 try testArgs(u256, u64, 1 << 0);
3190 try testArgs(u256, u64, 1 << 63);
31913951 try testArgs(i512, u64, 0);
31923952 try testArgs(i512, u64, 1 << 0);
31933953 try testArgs(i512, u64, 1 << 63);
3194 try testArgs(u512, u64, 0);
3195 try testArgs(u512, u64, 1 << 0);
3196 try testArgs(u512, u64, 1 << 63);
31973954 try testArgs(i1024, u64, 0);
31983955 try testArgs(i1024, u64, 1 << 0);
31993956 try testArgs(i1024, u64, 1 << 63);
3200 try testArgs(u1024, u64, 0);
3201 try testArgs(u1024, u64, 1 << 0);
3202 try testArgs(u1024, u64, 1 << 63);
32033957
3204 try testArgs(i8, i65, -1 << 64);
3205 try testArgs(i8, i65, -1);
3206 try testArgs(i8, i65, 0);
32073958 try testArgs(u8, i65, -1 << 64);
32083959 try testArgs(u8, i65, -1);
32093960 try testArgs(u8, i65, 0);
3210 try testArgs(i16, i65, -1 << 64);
3211 try testArgs(i16, i65, -1);
3212 try testArgs(i16, i65, 0);
32133961 try testArgs(u16, i65, -1 << 64);
32143962 try testArgs(u16, i65, -1);
32153963 try testArgs(u16, i65, 0);
3216 try testArgs(i32, i65, -1 << 64);
3217 try testArgs(i32, i65, -1);
3218 try testArgs(i32, i65, 0);
32193964 try testArgs(u32, i65, -1 << 64);
32203965 try testArgs(u32, i65, -1);
32213966 try testArgs(u32, i65, 0);
3222 try testArgs(i64, i65, -1 << 64);
3223 try testArgs(i64, i65, -1);
3224 try testArgs(i64, i65, 0);
32253967 try testArgs(u64, i65, -1 << 64);
32263968 try testArgs(u64, i65, -1);
32273969 try testArgs(u64, i65, 0);
3228 try testArgs(i128, i65, -1 << 64);
3229 try testArgs(i128, i65, -1);
3230 try testArgs(i128, i65, 0);
32313970 try testArgs(u128, i65, -1 << 64);
32323971 try testArgs(u128, i65, -1);
32333972 try testArgs(u128, i65, 0);
3234 try testArgs(i256, i65, -1 << 64);
3235 try testArgs(i256, i65, -1);
3236 try testArgs(i256, i65, 0);
32373973 try testArgs(u256, i65, -1 << 64);
32383974 try testArgs(u256, i65, -1);
32393975 try testArgs(u256, i65, 0);
3240 try testArgs(i512, i65, -1 << 64);
3241 try testArgs(i512, i65, -1);
3242 try testArgs(i512, i65, 0);
32433976 try testArgs(u512, i65, -1 << 64);
32443977 try testArgs(u512, i65, -1);
32453978 try testArgs(u512, i65, 0);
3246 try testArgs(i1024, i65, -1 << 64);
3247 try testArgs(i1024, i65, -1);
3248 try testArgs(i1024, i65, 0);
32493979 try testArgs(u1024, i65, -1 << 64);
32503980 try testArgs(u1024, i65, -1);
32513981 try testArgs(u1024, i65, 0);
32523982 try testArgs(i8, u65, 0);
32533983 try testArgs(i8, u65, 1 << 0);
32543984 try testArgs(i8, u65, 1 << 64);
3255 try testArgs(u8, u65, 0);
3256 try testArgs(u8, u65, 1 << 0);
3257 try testArgs(u8, u65, 1 << 64);
32583985 try testArgs(i16, u65, 0);
32593986 try testArgs(i16, u65, 1 << 0);
32603987 try testArgs(i16, u65, 1 << 64);
3261 try testArgs(u16, u65, 0);
3262 try testArgs(u16, u65, 1 << 0);
3263 try testArgs(u16, u65, 1 << 64);
32643988 try testArgs(i32, u65, 0);
32653989 try testArgs(i32, u65, 1 << 0);
32663990 try testArgs(i32, u65, 1 << 64);
3267 try testArgs(u32, u65, 0);
3268 try testArgs(u32, u65, 1 << 0);
3269 try testArgs(u32, u65, 1 << 64);
32703991 try testArgs(i64, u65, 0);
32713992 try testArgs(i64, u65, 1 << 0);
32723993 try testArgs(i64, u65, 1 << 64);
3273 try testArgs(u64, u65, 0);
3274 try testArgs(u64, u65, 1 << 0);
3275 try testArgs(u64, u65, 1 << 64);
32763994 try testArgs(i128, u65, 0);
32773995 try testArgs(i128, u65, 1 << 0);
32783996 try testArgs(i128, u65, 1 << 64);
3279 try testArgs(u128, u65, 0);
3280 try testArgs(u128, u65, 1 << 0);
3281 try testArgs(u128, u65, 1 << 64);
32823997 try testArgs(i256, u65, 0);
32833998 try testArgs(i256, u65, 1 << 0);
32843999 try testArgs(i256, u65, 1 << 64);
3285 try testArgs(u256, u65, 0);
3286 try testArgs(u256, u65, 1 << 0);
3287 try testArgs(u256, u65, 1 << 64);
32884000 try testArgs(i512, u65, 0);
32894001 try testArgs(i512, u65, 1 << 0);
32904002 try testArgs(i512, u65, 1 << 64);
3291 try testArgs(u512, u65, 0);
3292 try testArgs(u512, u65, 1 << 0);
3293 try testArgs(u512, u65, 1 << 64);
32944003 try testArgs(i1024, u65, 0);
32954004 try testArgs(i1024, u65, 1 << 0);
32964005 try testArgs(i1024, u65, 1 << 64);
3297 try testArgs(u1024, u65, 0);
3298 try testArgs(u1024, u65, 1 << 0);
3299 try testArgs(u1024, u65, 1 << 64);
33004006
3301 try testArgs(i8, i95, -1 << 94);
3302 try testArgs(i8, i95, -1);
3303 try testArgs(i8, i95, 0);
33044007 try testArgs(u8, i95, -1 << 94);
33054008 try testArgs(u8, i95, -1);
33064009 try testArgs(u8, i95, 0);
3307 try testArgs(i16, i95, -1 << 94);
3308 try testArgs(i16, i95, -1);
3309 try testArgs(i16, i95, 0);
33104010 try testArgs(u16, i95, -1 << 94);
33114011 try testArgs(u16, i95, -1);
33124012 try testArgs(u16, i95, 0);
3313 try testArgs(i32, i95, -1 << 94);
3314 try testArgs(i32, i95, -1);
3315 try testArgs(i32, i95, 0);
33164013 try testArgs(u32, i95, -1 << 94);
33174014 try testArgs(u32, i95, -1);
33184015 try testArgs(u32, i95, 0);
3319 try testArgs(i64, i95, -1 << 94);
3320 try testArgs(i64, i95, -1);
3321 try testArgs(i64, i95, 0);
33224016 try testArgs(u64, i95, -1 << 94);
33234017 try testArgs(u64, i95, -1);
33244018 try testArgs(u64, i95, 0);
3325 try testArgs(i128, i95, -1 << 94);
3326 try testArgs(i128, i95, -1);
3327 try testArgs(i128, i95, 0);
33284019 try testArgs(u128, i95, -1 << 94);
33294020 try testArgs(u128, i95, -1);
33304021 try testArgs(u128, i95, 0);
3331 try testArgs(i256, i95, -1 << 94);
3332 try testArgs(i256, i95, -1);
3333 try testArgs(i256, i95, 0);
33344022 try testArgs(u256, i95, -1 << 94);
33354023 try testArgs(u256, i95, -1);
33364024 try testArgs(u256, i95, 0);
3337 try testArgs(i512, i95, -1 << 94);
3338 try testArgs(i512, i95, -1);
3339 try testArgs(i512, i95, 0);
33404025 try testArgs(u512, i95, -1 << 94);
33414026 try testArgs(u512, i95, -1);
33424027 try testArgs(u512, i95, 0);
3343 try testArgs(i1024, i95, -1 << 94);
3344 try testArgs(i1024, i95, -1);
3345 try testArgs(i1024, i95, 0);
33464028 try testArgs(u1024, i95, -1 << 94);
33474029 try testArgs(u1024, i95, -1);
33484030 try testArgs(u1024, i95, 0);
33494031 try testArgs(i8, u95, 0);
33504032 try testArgs(i8, u95, 1 << 0);
33514033 try testArgs(i8, u95, 1 << 94);
3352 try testArgs(u8, u95, 0);
3353 try testArgs(u8, u95, 1 << 0);
3354 try testArgs(u8, u95, 1 << 94);
33554034 try testArgs(i16, u95, 0);
33564035 try testArgs(i16, u95, 1 << 0);
33574036 try testArgs(i16, u95, 1 << 94);
3358 try testArgs(u16, u95, 0);
3359 try testArgs(u16, u95, 1 << 0);
3360 try testArgs(u16, u95, 1 << 94);
33614037 try testArgs(i32, u95, 0);
33624038 try testArgs(i32, u95, 1 << 0);
33634039 try testArgs(i32, u95, 1 << 94);
3364 try testArgs(u32, u95, 0);
3365 try testArgs(u32, u95, 1 << 0);
3366 try testArgs(u32, u95, 1 << 94);
33674040 try testArgs(i64, u95, 0);
33684041 try testArgs(i64, u95, 1 << 0);
33694042 try testArgs(i64, u95, 1 << 94);
3370 try testArgs(u64, u95, 0);
3371 try testArgs(u64, u95, 1 << 0);
3372 try testArgs(u64, u95, 1 << 94);
33734043 try testArgs(i128, u95, 0);
33744044 try testArgs(i128, u95, 1 << 0);
33754045 try testArgs(i128, u95, 1 << 94);
3376 try testArgs(u128, u95, 0);
3377 try testArgs(u128, u95, 1 << 0);
3378 try testArgs(u128, u95, 1 << 94);
33794046 try testArgs(i256, u95, 0);
33804047 try testArgs(i256, u95, 1 << 0);
33814048 try testArgs(i256, u95, 1 << 94);
3382 try testArgs(u256, u95, 0);
3383 try testArgs(u256, u95, 1 << 0);
3384 try testArgs(u256, u95, 1 << 94);
33854049 try testArgs(i512, u95, 0);
33864050 try testArgs(i512, u95, 1 << 0);
33874051 try testArgs(i512, u95, 1 << 94);
3388 try testArgs(u512, u95, 0);
3389 try testArgs(u512, u95, 1 << 0);
3390 try testArgs(u512, u95, 1 << 94);
33914052 try testArgs(i1024, u95, 0);
33924053 try testArgs(i1024, u95, 1 << 0);
33934054 try testArgs(i1024, u95, 1 << 94);
3394 try testArgs(u1024, u95, 0);
3395 try testArgs(u1024, u95, 1 << 0);
3396 try testArgs(u1024, u95, 1 << 94);
33974055
3398 try testArgs(i8, i96, -1 << 95);
3399 try testArgs(i8, i96, -1);
3400 try testArgs(i8, i96, 0);
34014056 try testArgs(u8, i96, -1 << 95);
34024057 try testArgs(u8, i96, -1);
34034058 try testArgs(u8, i96, 0);
3404 try testArgs(i16, i96, -1 << 95);
3405 try testArgs(i16, i96, -1);
3406 try testArgs(i16, i96, 0);
34074059 try testArgs(u16, i96, -1 << 95);
34084060 try testArgs(u16, i96, -1);
34094061 try testArgs(u16, i96, 0);
3410 try testArgs(i32, i96, -1 << 95);
3411 try testArgs(i32, i96, -1);
3412 try testArgs(i32, i96, 0);
34134062 try testArgs(u32, i96, -1 << 95);
34144063 try testArgs(u32, i96, -1);
34154064 try testArgs(u32, i96, 0);
3416 try testArgs(i64, i96, -1 << 95);
3417 try testArgs(i64, i96, -1);
3418 try testArgs(i64, i96, 0);
34194065 try testArgs(u64, i96, -1 << 95);
34204066 try testArgs(u64, i96, -1);
34214067 try testArgs(u64, i96, 0);
3422 try testArgs(i128, i96, -1 << 95);
3423 try testArgs(i128, i96, -1);
3424 try testArgs(i128, i96, 0);
34254068 try testArgs(u128, i96, -1 << 95);
34264069 try testArgs(u128, i96, -1);
34274070 try testArgs(u128, i96, 0);
3428 try testArgs(i256, i96, -1 << 95);
3429 try testArgs(i256, i96, -1);
3430 try testArgs(i256, i96, 0);
34314071 try testArgs(u256, i96, -1 << 95);
34324072 try testArgs(u256, i96, -1);
34334073 try testArgs(u256, i96, 0);
3434 try testArgs(i512, i96, -1 << 95);
3435 try testArgs(i512, i96, -1);
3436 try testArgs(i512, i96, 0);
34374074 try testArgs(u512, i96, -1 << 95);
34384075 try testArgs(u512, i96, -1);
34394076 try testArgs(u512, i96, 0);
3440 try testArgs(i1024, i96, -1 << 95);
3441 try testArgs(i1024, i96, -1);
3442 try testArgs(i1024, i96, 0);
34434077 try testArgs(u1024, i96, -1 << 95);
34444078 try testArgs(u1024, i96, -1);
34454079 try testArgs(u1024, i96, 0);
34464080 try testArgs(i8, u96, 0);
34474081 try testArgs(i8, u96, 1 << 0);
34484082 try testArgs(i8, u96, 1 << 95);
3449 try testArgs(u8, u96, 0);
3450 try testArgs(u8, u96, 1 << 0);
3451 try testArgs(u8, u96, 1 << 95);
34524083 try testArgs(i16, u96, 0);
34534084 try testArgs(i16, u96, 1 << 0);
34544085 try testArgs(i16, u96, 1 << 95);
3455 try testArgs(u16, u96, 0);
3456 try testArgs(u16, u96, 1 << 0);
3457 try testArgs(u16, u96, 1 << 95);
34584086 try testArgs(i32, u96, 0);
34594087 try testArgs(i32, u96, 1 << 0);
34604088 try testArgs(i32, u96, 1 << 95);
3461 try testArgs(u32, u96, 0);
3462 try testArgs(u32, u96, 1 << 0);
3463 try testArgs(u32, u96, 1 << 95);
34644089 try testArgs(i64, u96, 0);
34654090 try testArgs(i64, u96, 1 << 0);
34664091 try testArgs(i64, u96, 1 << 95);
3467 try testArgs(u64, u96, 0);
3468 try testArgs(u64, u96, 1 << 0);
3469 try testArgs(u64, u96, 1 << 95);
34704092 try testArgs(i128, u96, 0);
34714093 try testArgs(i128, u96, 1 << 0);
34724094 try testArgs(i128, u96, 1 << 95);
3473 try testArgs(u128, u96, 0);
3474 try testArgs(u128, u96, 1 << 0);
3475 try testArgs(u128, u96, 1 << 95);
34764095 try testArgs(i256, u96, 0);
34774096 try testArgs(i256, u96, 1 << 0);
34784097 try testArgs(i256, u96, 1 << 95);
3479 try testArgs(u256, u96, 0);
3480 try testArgs(u256, u96, 1 << 0);
3481 try testArgs(u256, u96, 1 << 95);
34824098 try testArgs(i512, u96, 0);
34834099 try testArgs(i512, u96, 1 << 0);
34844100 try testArgs(i512, u96, 1 << 95);
3485 try testArgs(u512, u96, 0);
3486 try testArgs(u512, u96, 1 << 0);
3487 try testArgs(u512, u96, 1 << 95);
34884101 try testArgs(i1024, u96, 0);
34894102 try testArgs(i1024, u96, 1 << 0);
34904103 try testArgs(i1024, u96, 1 << 95);
3491 try testArgs(u1024, u96, 0);
3492 try testArgs(u1024, u96, 1 << 0);
3493 try testArgs(u1024, u96, 1 << 95);
34944104
3495 try testArgs(i8, i97, -1 << 96);
3496 try testArgs(i8, i97, -1);
3497 try testArgs(i8, i97, 0);
34984105 try testArgs(u8, i97, -1 << 96);
34994106 try testArgs(u8, i97, -1);
35004107 try testArgs(u8, i97, 0);
3501 try testArgs(i16, i97, -1 << 96);
3502 try testArgs(i16, i97, -1);
3503 try testArgs(i16, i97, 0);
35044108 try testArgs(u16, i97, -1 << 96);
35054109 try testArgs(u16, i97, -1);
35064110 try testArgs(u16, i97, 0);
3507 try testArgs(i32, i97, -1 << 96);
3508 try testArgs(i32, i97, -1);
3509 try testArgs(i32, i97, 0);
35104111 try testArgs(u32, i97, -1 << 96);
35114112 try testArgs(u32, i97, -1);
35124113 try testArgs(u32, i97, 0);
3513 try testArgs(i64, i97, -1 << 96);
3514 try testArgs(i64, i97, -1);
3515 try testArgs(i64, i97, 0);
35164114 try testArgs(u64, i97, -1 << 96);
35174115 try testArgs(u64, i97, -1);
35184116 try testArgs(u64, i97, 0);
3519 try testArgs(i128, i97, -1 << 96);
3520 try testArgs(i128, i97, -1);
3521 try testArgs(i128, i97, 0);
35224117 try testArgs(u128, i97, -1 << 96);
35234118 try testArgs(u128, i97, -1);
35244119 try testArgs(u128, i97, 0);
3525 try testArgs(i256, i97, -1 << 96);
3526 try testArgs(i256, i97, -1);
3527 try testArgs(i256, i97, 0);
35284120 try testArgs(u256, i97, -1 << 96);
35294121 try testArgs(u256, i97, -1);
35304122 try testArgs(u256, i97, 0);
3531 try testArgs(i512, i97, -1 << 96);
3532 try testArgs(i512, i97, -1);
3533 try testArgs(i512, i97, 0);
35344123 try testArgs(u512, i97, -1 << 96);
35354124 try testArgs(u512, i97, -1);
35364125 try testArgs(u512, i97, 0);
3537 try testArgs(i1024, i97, -1 << 96);
3538 try testArgs(i1024, i97, -1);
3539 try testArgs(i1024, i97, 0);
35404126 try testArgs(u1024, i97, -1 << 96);
35414127 try testArgs(u1024, i97, -1);
35424128 try testArgs(u1024, i97, 0);
35434129 try testArgs(i8, u97, 0);
35444130 try testArgs(i8, u97, 1 << 0);
35454131 try testArgs(i8, u97, 1 << 96);
3546 try testArgs(u8, u97, 0);
3547 try testArgs(u8, u97, 1 << 0);
3548 try testArgs(u8, u97, 1 << 96);
35494132 try testArgs(i16, u97, 0);
35504133 try testArgs(i16, u97, 1 << 0);
35514134 try testArgs(i16, u97, 1 << 96);
3552 try testArgs(u16, u97, 0);
3553 try testArgs(u16, u97, 1 << 0);
3554 try testArgs(u16, u97, 1 << 96);
35554135 try testArgs(i32, u97, 0);
35564136 try testArgs(i32, u97, 1 << 0);
35574137 try testArgs(i32, u97, 1 << 96);
3558 try testArgs(u32, u97, 0);
3559 try testArgs(u32, u97, 1 << 0);
3560 try testArgs(u32, u97, 1 << 96);
35614138 try testArgs(i64, u97, 0);
35624139 try testArgs(i64, u97, 1 << 0);
35634140 try testArgs(i64, u97, 1 << 96);
3564 try testArgs(u64, u97, 0);
3565 try testArgs(u64, u97, 1 << 0);
3566 try testArgs(u64, u97, 1 << 96);
35674141 try testArgs(i128, u97, 0);
35684142 try testArgs(i128, u97, 1 << 0);
35694143 try testArgs(i128, u97, 1 << 96);
3570 try testArgs(u128, u97, 0);
3571 try testArgs(u128, u97, 1 << 0);
3572 try testArgs(u128, u97, 1 << 96);
35734144 try testArgs(i256, u97, 0);
35744145 try testArgs(i256, u97, 1 << 0);
35754146 try testArgs(i256, u97, 1 << 96);
3576 try testArgs(u256, u97, 0);
3577 try testArgs(u256, u97, 1 << 0);
3578 try testArgs(u256, u97, 1 << 96);
35794147 try testArgs(i512, u97, 0);
35804148 try testArgs(i512, u97, 1 << 0);
35814149 try testArgs(i512, u97, 1 << 96);
3582 try testArgs(u512, u97, 0);
3583 try testArgs(u512, u97, 1 << 0);
3584 try testArgs(u512, u97, 1 << 96);
35854150 try testArgs(i1024, u97, 0);
35864151 try testArgs(i1024, u97, 1 << 0);
35874152 try testArgs(i1024, u97, 1 << 96);
3588 try testArgs(u1024, u97, 0);
3589 try testArgs(u1024, u97, 1 << 0);
3590 try testArgs(u1024, u97, 1 << 96);
35914153
3592 try testArgs(i8, i127, -1 << 126);
3593 try testArgs(i8, i127, -1);
3594 try testArgs(i8, i127, 0);
35954154 try testArgs(u8, i127, -1 << 126);
35964155 try testArgs(u8, i127, -1);
35974156 try testArgs(u8, i127, 0);
3598 try testArgs(i16, i127, -1 << 126);
3599 try testArgs(i16, i127, -1);
3600 try testArgs(i16, i127, 0);
36014157 try testArgs(u16, i127, -1 << 126);
36024158 try testArgs(u16, i127, -1);
36034159 try testArgs(u16, i127, 0);
3604 try testArgs(i32, i127, -1 << 126);
3605 try testArgs(i32, i127, -1);
3606 try testArgs(i32, i127, 0);
36074160 try testArgs(u32, i127, -1 << 126);
36084161 try testArgs(u32, i127, -1);
36094162 try testArgs(u32, i127, 0);
3610 try testArgs(i64, i127, -1 << 126);
3611 try testArgs(i64, i127, -1);
3612 try testArgs(i64, i127, 0);
36134163 try testArgs(u64, i127, -1 << 126);
36144164 try testArgs(u64, i127, -1);
36154165 try testArgs(u64, i127, 0);
3616 try testArgs(i128, i127, -1 << 126);
3617 try testArgs(i128, i127, -1);
3618 try testArgs(i128, i127, 0);
36194166 try testArgs(u128, i127, -1 << 126);
36204167 try testArgs(u128, i127, -1);
36214168 try testArgs(u128, i127, 0);
3622 try testArgs(i256, i127, -1 << 126);
3623 try testArgs(i256, i127, -1);
3624 try testArgs(i256, i127, 0);
36254169 try testArgs(u256, i127, -1 << 126);
36264170 try testArgs(u256, i127, -1);
36274171 try testArgs(u256, i127, 0);
3628 try testArgs(i512, i127, -1 << 126);
3629 try testArgs(i512, i127, -1);
3630 try testArgs(i512, i127, 0);
36314172 try testArgs(u512, i127, -1 << 126);
36324173 try testArgs(u512, i127, -1);
36334174 try testArgs(u512, i127, 0);
3634 try testArgs(i1024, i127, -1 << 126);
3635 try testArgs(i1024, i127, -1);
3636 try testArgs(i1024, i127, 0);
36374175 try testArgs(u1024, i127, -1 << 126);
36384176 try testArgs(u1024, i127, -1);
36394177 try testArgs(u1024, i127, 0);
36404178 try testArgs(i8, u127, 0);
36414179 try testArgs(i8, u127, 1 << 0);
36424180 try testArgs(i8, u127, 1 << 126);
3643 try testArgs(u8, u127, 0);
3644 try testArgs(u8, u127, 1 << 0);
3645 try testArgs(u8, u127, 1 << 126);
36464181 try testArgs(i16, u127, 0);
36474182 try testArgs(i16, u127, 1 << 0);
36484183 try testArgs(i16, u127, 1 << 126);
3649 try testArgs(u16, u127, 0);
3650 try testArgs(u16, u127, 1 << 0);
3651 try testArgs(u16, u127, 1 << 126);
36524184 try testArgs(i32, u127, 0);
36534185 try testArgs(i32, u127, 1 << 0);
36544186 try testArgs(i32, u127, 1 << 126);
3655 try testArgs(u32, u127, 0);
3656 try testArgs(u32, u127, 1 << 0);
3657 try testArgs(u32, u127, 1 << 126);
36584187 try testArgs(i64, u127, 0);
36594188 try testArgs(i64, u127, 1 << 0);
36604189 try testArgs(i64, u127, 1 << 126);
3661 try testArgs(u64, u127, 0);
3662 try testArgs(u64, u127, 1 << 0);
3663 try testArgs(u64, u127, 1 << 126);
36644190 try testArgs(i128, u127, 0);
36654191 try testArgs(i128, u127, 1 << 0);
36664192 try testArgs(i128, u127, 1 << 126);
3667 try testArgs(u128, u127, 0);
3668 try testArgs(u128, u127, 1 << 0);
3669 try testArgs(u128, u127, 1 << 126);
36704193 try testArgs(i256, u127, 0);
36714194 try testArgs(i256, u127, 1 << 0);
36724195 try testArgs(i256, u127, 1 << 126);
3673 try testArgs(u256, u127, 0);
3674 try testArgs(u256, u127, 1 << 0);
3675 try testArgs(u256, u127, 1 << 126);
36764196 try testArgs(i512, u127, 0);
36774197 try testArgs(i512, u127, 1 << 0);
36784198 try testArgs(i512, u127, 1 << 126);
3679 try testArgs(u512, u127, 0);
3680 try testArgs(u512, u127, 1 << 0);
3681 try testArgs(u512, u127, 1 << 126);
36824199 try testArgs(i1024, u127, 0);
36834200 try testArgs(i1024, u127, 1 << 0);
36844201 try testArgs(i1024, u127, 1 << 126);
3685 try testArgs(u1024, u127, 0);
3686 try testArgs(u1024, u127, 1 << 0);
3687 try testArgs(u1024, u127, 1 << 126);
36884202
3689 try testArgs(i8, i128, -1 << 127);
3690 try testArgs(i8, i128, -1);
3691 try testArgs(i8, i128, 0);
36924203 try testArgs(u8, i128, -1 << 127);
36934204 try testArgs(u8, i128, -1);
36944205 try testArgs(u8, i128, 0);
3695 try testArgs(i16, i128, -1 << 127);
3696 try testArgs(i16, i128, -1);
3697 try testArgs(i16, i128, 0);
36984206 try testArgs(u16, i128, -1 << 127);
36994207 try testArgs(u16, i128, -1);
37004208 try testArgs(u16, i128, 0);
3701 try testArgs(i32, i128, -1 << 127);
3702 try testArgs(i32, i128, -1);
3703 try testArgs(i32, i128, 0);
37044209 try testArgs(u32, i128, -1 << 127);
37054210 try testArgs(u32, i128, -1);
37064211 try testArgs(u32, i128, 0);
3707 try testArgs(i64, i128, -1 << 127);
3708 try testArgs(i64, i128, -1);
3709 try testArgs(i64, i128, 0);
37104212 try testArgs(u64, i128, -1 << 127);
37114213 try testArgs(u64, i128, -1);
37124214 try testArgs(u64, i128, 0);
3713 try testArgs(i128, i128, -1 << 127);
3714 try testArgs(i128, i128, -1);
3715 try testArgs(i128, i128, 0);
37164215 try testArgs(u128, i128, -1 << 127);
37174216 try testArgs(u128, i128, -1);
37184217 try testArgs(u128, i128, 0);
3719 try testArgs(i256, i128, -1 << 127);
3720 try testArgs(i256, i128, -1);
3721 try testArgs(i256, i128, 0);
37224218 try testArgs(u256, i128, -1 << 127);
37234219 try testArgs(u256, i128, -1);
37244220 try testArgs(u256, i128, 0);
3725 try testArgs(i512, i128, -1 << 127);
3726 try testArgs(i512, i128, -1);
3727 try testArgs(i512, i128, 0);
37284221 try testArgs(u512, i128, -1 << 127);
37294222 try testArgs(u512, i128, -1);
37304223 try testArgs(u512, i128, 0);
3731 try testArgs(i1024, i128, -1 << 127);
3732 try testArgs(i1024, i128, -1);
3733 try testArgs(i1024, i128, 0);
37344224 try testArgs(u1024, i128, -1 << 127);
37354225 try testArgs(u1024, i128, -1);
37364226 try testArgs(u1024, i128, 0);
37374227 try testArgs(i8, u128, 0);
37384228 try testArgs(i8, u128, 1 << 0);
37394229 try testArgs(i8, u128, 1 << 127);
3740 try testArgs(u8, u128, 0);
3741 try testArgs(u8, u128, 1 << 0);
3742 try testArgs(u8, u128, 1 << 127);
37434230 try testArgs(i16, u128, 0);
37444231 try testArgs(i16, u128, 1 << 0);
37454232 try testArgs(i16, u128, 1 << 127);
3746 try testArgs(u16, u128, 0);
3747 try testArgs(u16, u128, 1 << 0);
3748 try testArgs(u16, u128, 1 << 127);
37494233 try testArgs(i32, u128, 0);
37504234 try testArgs(i32, u128, 1 << 0);
37514235 try testArgs(i32, u128, 1 << 127);
3752 try testArgs(u32, u128, 0);
3753 try testArgs(u32, u128, 1 << 0);
3754 try testArgs(u32, u128, 1 << 127);
37554236 try testArgs(i64, u128, 0);
37564237 try testArgs(i64, u128, 1 << 0);
37574238 try testArgs(i64, u128, 1 << 127);
3758 try testArgs(u64, u128, 0);
3759 try testArgs(u64, u128, 1 << 0);
3760 try testArgs(u64, u128, 1 << 127);
37614239 try testArgs(i128, u128, 0);
37624240 try testArgs(i128, u128, 1 << 0);
37634241 try testArgs(i128, u128, 1 << 127);
3764 try testArgs(u128, u128, 0);
3765 try testArgs(u128, u128, 1 << 0);
3766 try testArgs(u128, u128, 1 << 127);
37674242 try testArgs(i256, u128, 0);
37684243 try testArgs(i256, u128, 1 << 0);
37694244 try testArgs(i256, u128, 1 << 127);
3770 try testArgs(u256, u128, 0);
3771 try testArgs(u256, u128, 1 << 0);
3772 try testArgs(u256, u128, 1 << 127);
37734245 try testArgs(i512, u128, 0);
37744246 try testArgs(i512, u128, 1 << 0);
37754247 try testArgs(i512, u128, 1 << 127);
3776 try testArgs(u512, u128, 0);
3777 try testArgs(u512, u128, 1 << 0);
3778 try testArgs(u512, u128, 1 << 127);
37794248 try testArgs(i1024, u128, 0);
37804249 try testArgs(i1024, u128, 1 << 0);
37814250 try testArgs(i1024, u128, 1 << 127);
3782 try testArgs(u1024, u128, 0);
3783 try testArgs(u1024, u128, 1 << 0);
3784 try testArgs(u1024, u128, 1 << 127);
37854251
3786 try testArgs(i8, i129, -1 << 128);
3787 try testArgs(i8, i129, -1);
3788 try testArgs(i8, i129, 0);
37894252 try testArgs(u8, i129, -1 << 128);
37904253 try testArgs(u8, i129, -1);
37914254 try testArgs(u8, i129, 0);
3792 try testArgs(i16, i129, -1 << 128);
3793 try testArgs(i16, i129, -1);
3794 try testArgs(i16, i129, 0);
37954255 try testArgs(u16, i129, -1 << 128);
37964256 try testArgs(u16, i129, -1);
37974257 try testArgs(u16, i129, 0);
3798 try testArgs(i32, i129, -1 << 128);
3799 try testArgs(i32, i129, -1);
3800 try testArgs(i32, i129, 0);
38014258 try testArgs(u32, i129, -1 << 128);
38024259 try testArgs(u32, i129, -1);
38034260 try testArgs(u32, i129, 0);
3804 try testArgs(i64, i129, -1 << 128);
3805 try testArgs(i64, i129, -1);
3806 try testArgs(i64, i129, 0);
38074261 try testArgs(u64, i129, -1 << 128);
38084262 try testArgs(u64, i129, -1);
38094263 try testArgs(u64, i129, 0);
3810 try testArgs(i128, i129, -1 << 128);
3811 try testArgs(i128, i129, -1);
3812 try testArgs(i128, i129, 0);
38134264 try testArgs(u128, i129, -1 << 128);
38144265 try testArgs(u128, i129, -1);
38154266 try testArgs(u128, i129, 0);
3816 try testArgs(i256, i129, -1 << 128);
3817 try testArgs(i256, i129, -1);
3818 try testArgs(i256, i129, 0);
38194267 try testArgs(u256, i129, -1 << 128);
38204268 try testArgs(u256, i129, -1);
38214269 try testArgs(u256, i129, 0);
3822 try testArgs(i512, i129, -1 << 128);
3823 try testArgs(i512, i129, -1);
3824 try testArgs(i512, i129, 0);
38254270 try testArgs(u512, i129, -1 << 128);
38264271 try testArgs(u512, i129, -1);
38274272 try testArgs(u512, i129, 0);
3828 try testArgs(i1024, i129, -1 << 128);
3829 try testArgs(i1024, i129, -1);
3830 try testArgs(i1024, i129, 0);
38314273 try testArgs(u1024, i129, -1 << 128);
38324274 try testArgs(u1024, i129, -1);
38334275 try testArgs(u1024, i129, 0);
38344276 try testArgs(i8, u129, 0);
38354277 try testArgs(i8, u129, 1 << 0);
38364278 try testArgs(i8, u129, 1 << 128);
3837 try testArgs(u8, u129, 0);
3838 try testArgs(u8, u129, 1 << 0);
3839 try testArgs(u8, u129, 1 << 128);
38404279 try testArgs(i16, u129, 0);
38414280 try testArgs(i16, u129, 1 << 0);
38424281 try testArgs(i16, u129, 1 << 128);
3843 try testArgs(u16, u129, 0);
3844 try testArgs(u16, u129, 1 << 0);
3845 try testArgs(u16, u129, 1 << 128);
38464282 try testArgs(i32, u129, 0);
38474283 try testArgs(i32, u129, 1 << 0);
38484284 try testArgs(i32, u129, 1 << 128);
3849 try testArgs(u32, u129, 0);
3850 try testArgs(u32, u129, 1 << 0);
3851 try testArgs(u32, u129, 1 << 128);
38524285 try testArgs(i64, u129, 0);
38534286 try testArgs(i64, u129, 1 << 0);
38544287 try testArgs(i64, u129, 1 << 128);
3855 try testArgs(u64, u129, 0);
3856 try testArgs(u64, u129, 1 << 0);
3857 try testArgs(u64, u129, 1 << 128);
38584288 try testArgs(i128, u129, 0);
38594289 try testArgs(i128, u129, 1 << 0);
38604290 try testArgs(i128, u129, 1 << 128);
3861 try testArgs(u128, u129, 0);
3862 try testArgs(u128, u129, 1 << 0);
3863 try testArgs(u128, u129, 1 << 128);
38644291 try testArgs(i256, u129, 0);
38654292 try testArgs(i256, u129, 1 << 0);
38664293 try testArgs(i256, u129, 1 << 128);
3867 try testArgs(u256, u129, 0);
3868 try testArgs(u256, u129, 1 << 0);
3869 try testArgs(u256, u129, 1 << 128);
38704294 try testArgs(i512, u129, 0);
38714295 try testArgs(i512, u129, 1 << 0);
38724296 try testArgs(i512, u129, 1 << 128);
3873 try testArgs(u512, u129, 0);
3874 try testArgs(u512, u129, 1 << 0);
3875 try testArgs(u512, u129, 1 << 128);
38764297 try testArgs(i1024, u129, 0);
38774298 try testArgs(i1024, u129, 1 << 0);
38784299 try testArgs(i1024, u129, 1 << 128);
3879 try testArgs(u1024, u129, 0);
3880 try testArgs(u1024, u129, 1 << 0);
3881 try testArgs(u1024, u129, 1 << 128);
38824300
3883 try testArgs(i8, i159, -1 << 158);
3884 try testArgs(i8, i159, -1);
3885 try testArgs(i8, i159, 0);
3886 try testArgs(u8, i159, -1 << 158);
3887 try testArgs(u8, i159, -1);
3888 try testArgs(u8, i159, 0);
3889 try testArgs(i16, i159, -1 << 158);
3890 try testArgs(i16, i159, -1);
3891 try testArgs(i16, i159, 0);
3892 try testArgs(u16, i159, -1 << 158);
3893 try testArgs(u16, i159, -1);
3894 try testArgs(u16, i159, 0);
3895 try testArgs(i32, i159, -1 << 158);
3896 try testArgs(i32, i159, -1);
3897 try testArgs(i32, i159, 0);
3898 try testArgs(u32, i159, -1 << 158);
3899 try testArgs(u32, i159, -1);
3900 try testArgs(u32, i159, 0);
3901 try testArgs(i64, i159, -1 << 158);
3902 try testArgs(i64, i159, -1);
3903 try testArgs(i64, i159, 0);
3904 try testArgs(u64, i159, -1 << 158);
3905 try testArgs(u64, i159, -1);
3906 try testArgs(u64, i159, 0);
3907 try testArgs(i128, i159, -1 << 158);
3908 try testArgs(i128, i159, -1);
3909 try testArgs(i128, i159, 0);
3910 try testArgs(u128, i159, -1 << 158);
3911 try testArgs(u128, i159, -1);
3912 try testArgs(u128, i159, 0);
3913 try testArgs(i256, i159, -1 << 158);
3914 try testArgs(i256, i159, -1);
3915 try testArgs(i256, i159, 0);
3916 try testArgs(u256, i159, -1 << 158);
3917 try testArgs(u256, i159, -1);
3918 try testArgs(u256, i159, 0);
3919 try testArgs(i512, i159, -1 << 158);
3920 try testArgs(i512, i159, -1);
3921 try testArgs(i512, i159, 0);
3922 try testArgs(u512, i159, -1 << 158);
3923 try testArgs(u512, i159, -1);
3924 try testArgs(u512, i159, 0);
3925 try testArgs(i1024, i159, -1 << 158);
3926 try testArgs(i1024, i159, -1);
3927 try testArgs(i1024, i159, 0);
3928 try testArgs(u1024, i159, -1 << 158);
3929 try testArgs(u1024, i159, -1);
3930 try testArgs(u1024, i159, 0);
3931 try testArgs(i8, u159, 0);
3932 try testArgs(i8, u159, 1 << 0);
3933 try testArgs(i8, u159, 1 << 158);
3934 try testArgs(u8, u159, 0);
3935 try testArgs(u8, u159, 1 << 0);
3936 try testArgs(u8, u159, 1 << 158);
3937 try testArgs(i16, u159, 0);
3938 try testArgs(i16, u159, 1 << 0);
3939 try testArgs(i16, u159, 1 << 158);
3940 try testArgs(u16, u159, 0);
3941 try testArgs(u16, u159, 1 << 0);
3942 try testArgs(u16, u159, 1 << 158);
3943 try testArgs(i32, u159, 0);
3944 try testArgs(i32, u159, 1 << 0);
3945 try testArgs(i32, u159, 1 << 158);
3946 try testArgs(u32, u159, 0);
3947 try testArgs(u32, u159, 1 << 0);
3948 try testArgs(u32, u159, 1 << 158);
3949 try testArgs(i64, u159, 0);
3950 try testArgs(i64, u159, 1 << 0);
3951 try testArgs(i64, u159, 1 << 158);
3952 try testArgs(u64, u159, 0);
3953 try testArgs(u64, u159, 1 << 0);
3954 try testArgs(u64, u159, 1 << 158);
3955 try testArgs(i128, u159, 0);
3956 try testArgs(i128, u159, 1 << 0);
3957 try testArgs(i128, u159, 1 << 158);
3958 try testArgs(u128, u159, 0);
3959 try testArgs(u128, u159, 1 << 0);
3960 try testArgs(u128, u159, 1 << 158);
3961 try testArgs(i256, u159, 0);
3962 try testArgs(i256, u159, 1 << 0);
3963 try testArgs(i256, u159, 1 << 158);
3964 try testArgs(u256, u159, 0);
3965 try testArgs(u256, u159, 1 << 0);
3966 try testArgs(u256, u159, 1 << 158);
3967 try testArgs(i512, u159, 0);
3968 try testArgs(i512, u159, 1 << 0);
3969 try testArgs(i512, u159, 1 << 158);
3970 try testArgs(u512, u159, 0);
3971 try testArgs(u512, u159, 1 << 0);
3972 try testArgs(u512, u159, 1 << 158);
3973 try testArgs(i1024, u159, 0);
3974 try testArgs(i1024, u159, 1 << 0);
3975 try testArgs(i1024, u159, 1 << 158);
3976 try testArgs(u1024, u159, 0);
3977 try testArgs(u1024, u159, 1 << 0);
3978 try testArgs(u1024, u159, 1 << 158);
3979
3980 try testArgs(i8, i160, -1 << 159);
3981 try testArgs(i8, i160, -1);
3982 try testArgs(i8, i160, 0);
3983 try testArgs(u8, i160, -1 << 159);
3984 try testArgs(u8, i160, -1);
3985 try testArgs(u8, i160, 0);
3986 try testArgs(i16, i160, -1 << 159);
3987 try testArgs(i16, i160, -1);
3988 try testArgs(i16, i160, 0);
3989 try testArgs(u16, i160, -1 << 159);
3990 try testArgs(u16, i160, -1);
3991 try testArgs(u16, i160, 0);
3992 try testArgs(i32, i160, -1 << 159);
3993 try testArgs(i32, i160, -1);
3994 try testArgs(i32, i160, 0);
3995 try testArgs(u32, i160, -1 << 159);
3996 try testArgs(u32, i160, -1);
3997 try testArgs(u32, i160, 0);
3998 try testArgs(i64, i160, -1 << 159);
3999 try testArgs(i64, i160, -1);
4000 try testArgs(i64, i160, 0);
4001 try testArgs(u64, i160, -1 << 159);
4002 try testArgs(u64, i160, -1);
4003 try testArgs(u64, i160, 0);
4004 try testArgs(i128, i160, -1 << 159);
4005 try testArgs(i128, i160, -1);
4006 try testArgs(i128, i160, 0);
4007 try testArgs(u128, i160, -1 << 159);
4008 try testArgs(u128, i160, -1);
4009 try testArgs(u128, i160, 0);
4010 try testArgs(i256, i160, -1 << 159);
4011 try testArgs(i256, i160, -1);
4012 try testArgs(i256, i160, 0);
4013 try testArgs(u256, i160, -1 << 159);
4014 try testArgs(u256, i160, -1);
4015 try testArgs(u256, i160, 0);
4016 try testArgs(i512, i160, -1 << 159);
4017 try testArgs(i512, i160, -1);
4018 try testArgs(i512, i160, 0);
4019 try testArgs(u512, i160, -1 << 159);
4020 try testArgs(u512, i160, -1);
4021 try testArgs(u512, i160, 0);
4022 try testArgs(i1024, i160, -1 << 159);
4023 try testArgs(i1024, i160, -1);
4024 try testArgs(i1024, i160, 0);
4025 try testArgs(u1024, i160, -1 << 159);
4026 try testArgs(u1024, i160, -1);
4027 try testArgs(u1024, i160, 0);
4028 try testArgs(i8, u160, 0);
4029 try testArgs(i8, u160, 1 << 0);
4030 try testArgs(i8, u160, 1 << 159);
4031 try testArgs(u8, u160, 0);
4032 try testArgs(u8, u160, 1 << 0);
4033 try testArgs(u8, u160, 1 << 159);
4034 try testArgs(i16, u160, 0);
4035 try testArgs(i16, u160, 1 << 0);
4036 try testArgs(i16, u160, 1 << 159);
4037 try testArgs(u16, u160, 0);
4038 try testArgs(u16, u160, 1 << 0);
4039 try testArgs(u16, u160, 1 << 159);
4040 try testArgs(i32, u160, 0);
4041 try testArgs(i32, u160, 1 << 0);
4042 try testArgs(i32, u160, 1 << 159);
4043 try testArgs(u32, u160, 0);
4044 try testArgs(u32, u160, 1 << 0);
4045 try testArgs(u32, u160, 1 << 159);
4046 try testArgs(i64, u160, 0);
4047 try testArgs(i64, u160, 1 << 0);
4048 try testArgs(i64, u160, 1 << 159);
4049 try testArgs(u64, u160, 0);
4050 try testArgs(u64, u160, 1 << 0);
4051 try testArgs(u64, u160, 1 << 159);
4052 try testArgs(i128, u160, 0);
4053 try testArgs(i128, u160, 1 << 0);
4054 try testArgs(i128, u160, 1 << 159);
4055 try testArgs(u128, u160, 0);
4056 try testArgs(u128, u160, 1 << 0);
4057 try testArgs(u128, u160, 1 << 159);
4058 try testArgs(i256, u160, 0);
4059 try testArgs(i256, u160, 1 << 0);
4060 try testArgs(i256, u160, 1 << 159);
4061 try testArgs(u256, u160, 0);
4062 try testArgs(u256, u160, 1 << 0);
4063 try testArgs(u256, u160, 1 << 159);
4064 try testArgs(i512, u160, 0);
4065 try testArgs(i512, u160, 1 << 0);
4066 try testArgs(i512, u160, 1 << 159);
4067 try testArgs(u512, u160, 0);
4068 try testArgs(u512, u160, 1 << 0);
4069 try testArgs(u512, u160, 1 << 159);
4070 try testArgs(i1024, u160, 0);
4071 try testArgs(i1024, u160, 1 << 0);
4072 try testArgs(i1024, u160, 1 << 159);
4073 try testArgs(u1024, u160, 0);
4074 try testArgs(u1024, u160, 1 << 0);
4075 try testArgs(u1024, u160, 1 << 159);
4076
4077 try testArgs(i8, i161, -1 << 160);
4078 try testArgs(i8, i161, -1);
4079 try testArgs(i8, i161, 0);
4080 try testArgs(u8, i161, -1 << 160);
4081 try testArgs(u8, i161, -1);
4082 try testArgs(u8, i161, 0);
4083 try testArgs(i16, i161, -1 << 160);
4084 try testArgs(i16, i161, -1);
4085 try testArgs(i16, i161, 0);
4086 try testArgs(u16, i161, -1 << 160);
4087 try testArgs(u16, i161, -1);
4088 try testArgs(u16, i161, 0);
4089 try testArgs(i32, i161, -1 << 160);
4090 try testArgs(i32, i161, -1);
4091 try testArgs(i32, i161, 0);
4092 try testArgs(u32, i161, -1 << 160);
4093 try testArgs(u32, i161, -1);
4094 try testArgs(u32, i161, 0);
4095 try testArgs(i64, i161, -1 << 160);
4096 try testArgs(i64, i161, -1);
4097 try testArgs(i64, i161, 0);
4098 try testArgs(u64, i161, -1 << 160);
4099 try testArgs(u64, i161, -1);
4100 try testArgs(u64, i161, 0);
4101 try testArgs(i128, i161, -1 << 160);
4102 try testArgs(i128, i161, -1);
4103 try testArgs(i128, i161, 0);
4104 try testArgs(u128, i161, -1 << 160);
4105 try testArgs(u128, i161, -1);
4106 try testArgs(u128, i161, 0);
4107 try testArgs(i256, i161, -1 << 160);
4108 try testArgs(i256, i161, -1);
4109 try testArgs(i256, i161, 0);
4110 try testArgs(u256, i161, -1 << 160);
4111 try testArgs(u256, i161, -1);
4112 try testArgs(u256, i161, 0);
4113 try testArgs(i512, i161, -1 << 160);
4114 try testArgs(i512, i161, -1);
4115 try testArgs(i512, i161, 0);
4116 try testArgs(u512, i161, -1 << 160);
4117 try testArgs(u512, i161, -1);
4118 try testArgs(u512, i161, 0);
4119 try testArgs(i1024, i161, -1 << 160);
4120 try testArgs(i1024, i161, -1);
4121 try testArgs(i1024, i161, 0);
4122 try testArgs(u1024, i161, -1 << 160);
4123 try testArgs(u1024, i161, -1);
4124 try testArgs(u1024, i161, 0);
4125 try testArgs(i8, u161, 0);
4126 try testArgs(i8, u161, 1 << 0);
4127 try testArgs(i8, u161, 1 << 160);
4128 try testArgs(u8, u161, 0);
4129 try testArgs(u8, u161, 1 << 0);
4130 try testArgs(u8, u161, 1 << 160);
4131 try testArgs(i16, u161, 0);
4132 try testArgs(i16, u161, 1 << 0);
4133 try testArgs(i16, u161, 1 << 160);
4134 try testArgs(u16, u161, 0);
4135 try testArgs(u16, u161, 1 << 0);
4136 try testArgs(u16, u161, 1 << 160);
4137 try testArgs(i32, u161, 0);
4138 try testArgs(i32, u161, 1 << 0);
4139 try testArgs(i32, u161, 1 << 160);
4140 try testArgs(u32, u161, 0);
4141 try testArgs(u32, u161, 1 << 0);
4142 try testArgs(u32, u161, 1 << 160);
4143 try testArgs(i64, u161, 0);
4144 try testArgs(i64, u161, 1 << 0);
4145 try testArgs(i64, u161, 1 << 160);
4146 try testArgs(u64, u161, 0);
4147 try testArgs(u64, u161, 1 << 0);
4148 try testArgs(u64, u161, 1 << 160);
4149 try testArgs(i128, u161, 0);
4150 try testArgs(i128, u161, 1 << 0);
4151 try testArgs(i128, u161, 1 << 160);
4152 try testArgs(u128, u161, 0);
4153 try testArgs(u128, u161, 1 << 0);
4154 try testArgs(u128, u161, 1 << 160);
4155 try testArgs(i256, u161, 0);
4156 try testArgs(i256, u161, 1 << 0);
4157 try testArgs(i256, u161, 1 << 160);
4158 try testArgs(u256, u161, 0);
4159 try testArgs(u256, u161, 1 << 0);
4160 try testArgs(u256, u161, 1 << 160);
4161 try testArgs(i512, u161, 0);
4162 try testArgs(i512, u161, 1 << 0);
4163 try testArgs(i512, u161, 1 << 160);
4164 try testArgs(u512, u161, 0);
4165 try testArgs(u512, u161, 1 << 0);
4166 try testArgs(u512, u161, 1 << 160);
4167 try testArgs(i1024, u161, 0);
4168 try testArgs(i1024, u161, 1 << 0);
4169 try testArgs(i1024, u161, 1 << 160);
4170 try testArgs(u1024, u161, 0);
4171 try testArgs(u1024, u161, 1 << 0);
4172 try testArgs(u1024, u161, 1 << 160);
4173
4174 try testArgs(i8, i191, -1 << 190);
4175 try testArgs(i8, i191, -1);
4176 try testArgs(i8, i191, 0);
4177 try testArgs(u8, i191, -1 << 190);
4178 try testArgs(u8, i191, -1);
4179 try testArgs(u8, i191, 0);
4180 try testArgs(i16, i191, -1 << 190);
4181 try testArgs(i16, i191, -1);
4182 try testArgs(i16, i191, 0);
4183 try testArgs(u16, i191, -1 << 190);
4184 try testArgs(u16, i191, -1);
4185 try testArgs(u16, i191, 0);
4186 try testArgs(i32, i191, -1 << 190);
4187 try testArgs(i32, i191, -1);
4188 try testArgs(i32, i191, 0);
4189 try testArgs(u32, i191, -1 << 190);
4190 try testArgs(u32, i191, -1);
4191 try testArgs(u32, i191, 0);
4192 try testArgs(i64, i191, -1 << 190);
4193 try testArgs(i64, i191, -1);
4194 try testArgs(i64, i191, 0);
4195 try testArgs(u64, i191, -1 << 190);
4196 try testArgs(u64, i191, -1);
4197 try testArgs(u64, i191, 0);
4198 try testArgs(i128, i191, -1 << 190);
4199 try testArgs(i128, i191, -1);
4200 try testArgs(i128, i191, 0);
4201 try testArgs(u128, i191, -1 << 190);
4202 try testArgs(u128, i191, -1);
4203 try testArgs(u128, i191, 0);
4204 try testArgs(i256, i191, -1 << 190);
4205 try testArgs(i256, i191, -1);
4206 try testArgs(i256, i191, 0);
4207 try testArgs(u256, i191, -1 << 190);
4208 try testArgs(u256, i191, -1);
4209 try testArgs(u256, i191, 0);
4210 try testArgs(i512, i191, -1 << 190);
4211 try testArgs(i512, i191, -1);
4212 try testArgs(i512, i191, 0);
4213 try testArgs(u512, i191, -1 << 190);
4214 try testArgs(u512, i191, -1);
4215 try testArgs(u512, i191, 0);
4216 try testArgs(i1024, i191, -1 << 190);
4217 try testArgs(i1024, i191, -1);
4218 try testArgs(i1024, i191, 0);
4219 try testArgs(u1024, i191, -1 << 190);
4220 try testArgs(u1024, i191, -1);
4221 try testArgs(u1024, i191, 0);
4222 try testArgs(i8, u191, 0);
4223 try testArgs(i8, u191, 1 << 0);
4224 try testArgs(i8, u191, 1 << 190);
4225 try testArgs(u8, u191, 0);
4226 try testArgs(u8, u191, 1 << 0);
4227 try testArgs(u8, u191, 1 << 190);
4228 try testArgs(i16, u191, 0);
4229 try testArgs(i16, u191, 1 << 0);
4230 try testArgs(i16, u191, 1 << 190);
4231 try testArgs(u16, u191, 0);
4232 try testArgs(u16, u191, 1 << 0);
4233 try testArgs(u16, u191, 1 << 190);
4234 try testArgs(i32, u191, 0);
4235 try testArgs(i32, u191, 1 << 0);
4236 try testArgs(i32, u191, 1 << 190);
4237 try testArgs(u32, u191, 0);
4238 try testArgs(u32, u191, 1 << 0);
4239 try testArgs(u32, u191, 1 << 190);
4240 try testArgs(i64, u191, 0);
4241 try testArgs(i64, u191, 1 << 0);
4242 try testArgs(i64, u191, 1 << 190);
4243 try testArgs(u64, u191, 0);
4244 try testArgs(u64, u191, 1 << 0);
4245 try testArgs(u64, u191, 1 << 190);
4246 try testArgs(i128, u191, 0);
4247 try testArgs(i128, u191, 1 << 0);
4248 try testArgs(i128, u191, 1 << 190);
4249 try testArgs(u128, u191, 0);
4250 try testArgs(u128, u191, 1 << 0);
4251 try testArgs(u128, u191, 1 << 190);
4252 try testArgs(i256, u191, 0);
4253 try testArgs(i256, u191, 1 << 0);
4254 try testArgs(i256, u191, 1 << 190);
4255 try testArgs(u256, u191, 0);
4256 try testArgs(u256, u191, 1 << 0);
4257 try testArgs(u256, u191, 1 << 190);
4258 try testArgs(i512, u191, 0);
4259 try testArgs(i512, u191, 1 << 0);
4260 try testArgs(i512, u191, 1 << 190);
4261 try testArgs(u512, u191, 0);
4262 try testArgs(u512, u191, 1 << 0);
4263 try testArgs(u512, u191, 1 << 190);
4264 try testArgs(i1024, u191, 0);
4265 try testArgs(i1024, u191, 1 << 0);
4266 try testArgs(i1024, u191, 1 << 190);
4267 try testArgs(u1024, u191, 0);
4268 try testArgs(u1024, u191, 1 << 0);
4269 try testArgs(u1024, u191, 1 << 190);
4270
4271 try testArgs(i8, i192, -1 << 191);
4272 try testArgs(i8, i192, -1);
4273 try testArgs(i8, i192, 0);
4274 try testArgs(u8, i192, -1 << 191);
4275 try testArgs(u8, i192, -1);
4276 try testArgs(u8, i192, 0);
4277 try testArgs(i16, i192, -1 << 191);
4278 try testArgs(i16, i192, -1);
4279 try testArgs(i16, i192, 0);
4280 try testArgs(u16, i192, -1 << 191);
4281 try testArgs(u16, i192, -1);
4282 try testArgs(u16, i192, 0);
4283 try testArgs(i32, i192, -1 << 191);
4284 try testArgs(i32, i192, -1);
4285 try testArgs(i32, i192, 0);
4286 try testArgs(u32, i192, -1 << 191);
4287 try testArgs(u32, i192, -1);
4288 try testArgs(u32, i192, 0);
4289 try testArgs(i64, i192, -1 << 191);
4290 try testArgs(i64, i192, -1);
4291 try testArgs(i64, i192, 0);
4292 try testArgs(u64, i192, -1 << 191);
4293 try testArgs(u64, i192, -1);
4294 try testArgs(u64, i192, 0);
4295 try testArgs(i128, i192, -1 << 191);
4296 try testArgs(i128, i192, -1);
4297 try testArgs(i128, i192, 0);
4298 try testArgs(u128, i192, -1 << 191);
4299 try testArgs(u128, i192, -1);
4300 try testArgs(u128, i192, 0);
4301 try testArgs(i256, i192, -1 << 191);
4302 try testArgs(i256, i192, -1);
4303 try testArgs(i256, i192, 0);
4304 try testArgs(u256, i192, -1 << 191);
4305 try testArgs(u256, i192, -1);
4306 try testArgs(u256, i192, 0);
4307 try testArgs(i512, i192, -1 << 191);
4308 try testArgs(i512, i192, -1);
4309 try testArgs(i512, i192, 0);
4310 try testArgs(u512, i192, -1 << 191);
4311 try testArgs(u512, i192, -1);
4312 try testArgs(u512, i192, 0);
4313 try testArgs(i1024, i192, -1 << 191);
4314 try testArgs(i1024, i192, -1);
4315 try testArgs(i1024, i192, 0);
4316 try testArgs(u1024, i192, -1 << 191);
4317 try testArgs(u1024, i192, -1);
4318 try testArgs(u1024, i192, 0);
4319 try testArgs(i8, u192, 0);
4320 try testArgs(i8, u192, 1 << 0);
4321 try testArgs(i8, u192, 1 << 191);
4322 try testArgs(u8, u192, 0);
4323 try testArgs(u8, u192, 1 << 0);
4324 try testArgs(u8, u192, 1 << 191);
4325 try testArgs(i16, u192, 0);
4326 try testArgs(i16, u192, 1 << 0);
4327 try testArgs(i16, u192, 1 << 191);
4328 try testArgs(u16, u192, 0);
4329 try testArgs(u16, u192, 1 << 0);
4330 try testArgs(u16, u192, 1 << 191);
4331 try testArgs(i32, u192, 0);
4332 try testArgs(i32, u192, 1 << 0);
4333 try testArgs(i32, u192, 1 << 191);
4334 try testArgs(u32, u192, 0);
4335 try testArgs(u32, u192, 1 << 0);
4336 try testArgs(u32, u192, 1 << 191);
4337 try testArgs(i64, u192, 0);
4338 try testArgs(i64, u192, 1 << 0);
4339 try testArgs(i64, u192, 1 << 191);
4340 try testArgs(u64, u192, 0);
4341 try testArgs(u64, u192, 1 << 0);
4342 try testArgs(u64, u192, 1 << 191);
4343 try testArgs(i128, u192, 0);
4344 try testArgs(i128, u192, 1 << 0);
4345 try testArgs(i128, u192, 1 << 191);
4346 try testArgs(u128, u192, 0);
4347 try testArgs(u128, u192, 1 << 0);
4348 try testArgs(u128, u192, 1 << 191);
4349 try testArgs(i256, u192, 0);
4350 try testArgs(i256, u192, 1 << 0);
4351 try testArgs(i256, u192, 1 << 191);
4352 try testArgs(u256, u192, 0);
4353 try testArgs(u256, u192, 1 << 0);
4354 try testArgs(u256, u192, 1 << 191);
4355 try testArgs(i512, u192, 0);
4356 try testArgs(i512, u192, 1 << 0);
4357 try testArgs(i512, u192, 1 << 191);
4358 try testArgs(u512, u192, 0);
4359 try testArgs(u512, u192, 1 << 0);
4360 try testArgs(u512, u192, 1 << 191);
4361 try testArgs(i1024, u192, 0);
4362 try testArgs(i1024, u192, 1 << 0);
4363 try testArgs(i1024, u192, 1 << 191);
4364 try testArgs(u1024, u192, 0);
4365 try testArgs(u1024, u192, 1 << 0);
4366 try testArgs(u1024, u192, 1 << 191);
4367
4368 try testArgs(i8, i193, -1 << 192);
4369 try testArgs(i8, i193, -1);
4370 try testArgs(i8, i193, 0);
4371 try testArgs(u8, i193, -1 << 192);
4372 try testArgs(u8, i193, -1);
4373 try testArgs(u8, i193, 0);
4374 try testArgs(i16, i193, -1 << 192);
4375 try testArgs(i16, i193, -1);
4376 try testArgs(i16, i193, 0);
4377 try testArgs(u16, i193, -1 << 192);
4378 try testArgs(u16, i193, -1);
4379 try testArgs(u16, i193, 0);
4380 try testArgs(i32, i193, -1 << 192);
4381 try testArgs(i32, i193, -1);
4382 try testArgs(i32, i193, 0);
4383 try testArgs(u32, i193, -1 << 192);
4384 try testArgs(u32, i193, -1);
4385 try testArgs(u32, i193, 0);
4386 try testArgs(i64, i193, -1 << 192);
4387 try testArgs(i64, i193, -1);
4388 try testArgs(i64, i193, 0);
4389 try testArgs(u64, i193, -1 << 192);
4390 try testArgs(u64, i193, -1);
4391 try testArgs(u64, i193, 0);
4392 try testArgs(i128, i193, -1 << 192);
4393 try testArgs(i128, i193, -1);
4394 try testArgs(i128, i193, 0);
4395 try testArgs(u128, i193, -1 << 192);
4396 try testArgs(u128, i193, -1);
4397 try testArgs(u128, i193, 0);
4398 try testArgs(i256, i193, -1 << 192);
4399 try testArgs(i256, i193, -1);
4400 try testArgs(i256, i193, 0);
4401 try testArgs(u256, i193, -1 << 192);
4402 try testArgs(u256, i193, -1);
4403 try testArgs(u256, i193, 0);
4404 try testArgs(i512, i193, -1 << 192);
4405 try testArgs(i512, i193, -1);
4406 try testArgs(i512, i193, 0);
4407 try testArgs(u512, i193, -1 << 192);
4408 try testArgs(u512, i193, -1);
4409 try testArgs(u512, i193, 0);
4410 try testArgs(i1024, i193, -1 << 192);
4411 try testArgs(i1024, i193, -1);
4412 try testArgs(i1024, i193, 0);
4413 try testArgs(u1024, i193, -1 << 192);
4414 try testArgs(u1024, i193, -1);
4415 try testArgs(u1024, i193, 0);
4416 try testArgs(i8, u193, 0);
4417 try testArgs(i8, u193, 1 << 0);
4418 try testArgs(i8, u193, 1 << 192);
4419 try testArgs(u8, u193, 0);
4420 try testArgs(u8, u193, 1 << 0);
4421 try testArgs(u8, u193, 1 << 192);
4422 try testArgs(i16, u193, 0);
4423 try testArgs(i16, u193, 1 << 0);
4424 try testArgs(i16, u193, 1 << 192);
4425 try testArgs(u16, u193, 0);
4426 try testArgs(u16, u193, 1 << 0);
4427 try testArgs(u16, u193, 1 << 192);
4428 try testArgs(i32, u193, 0);
4429 try testArgs(i32, u193, 1 << 0);
4430 try testArgs(i32, u193, 1 << 192);
4431 try testArgs(u32, u193, 0);
4432 try testArgs(u32, u193, 1 << 0);
4433 try testArgs(u32, u193, 1 << 192);
4434 try testArgs(i64, u193, 0);
4435 try testArgs(i64, u193, 1 << 0);
4436 try testArgs(i64, u193, 1 << 192);
4437 try testArgs(u64, u193, 0);
4438 try testArgs(u64, u193, 1 << 0);
4439 try testArgs(u64, u193, 1 << 192);
4440 try testArgs(i128, u193, 0);
4441 try testArgs(i128, u193, 1 << 0);
4442 try testArgs(i128, u193, 1 << 192);
4443 try testArgs(u128, u193, 0);
4444 try testArgs(u128, u193, 1 << 0);
4445 try testArgs(u128, u193, 1 << 192);
4446 try testArgs(i256, u193, 0);
4447 try testArgs(i256, u193, 1 << 0);
4448 try testArgs(i256, u193, 1 << 192);
4449 try testArgs(u256, u193, 0);
4450 try testArgs(u256, u193, 1 << 0);
4451 try testArgs(u256, u193, 1 << 192);
4452 try testArgs(i512, u193, 0);
4453 try testArgs(i512, u193, 1 << 0);
4454 try testArgs(i512, u193, 1 << 192);
4455 try testArgs(u512, u193, 0);
4456 try testArgs(u512, u193, 1 << 0);
4457 try testArgs(u512, u193, 1 << 192);
4458 try testArgs(i1024, u193, 0);
4459 try testArgs(i1024, u193, 1 << 0);
4460 try testArgs(i1024, u193, 1 << 192);
4461 try testArgs(u1024, u193, 0);
4462 try testArgs(u1024, u193, 1 << 0);
4463 try testArgs(u1024, u193, 1 << 192);
4464
4465 try testArgs(i8, i223, -1 << 222);
4466 try testArgs(i8, i223, -1);
4467 try testArgs(i8, i223, 0);
4468 try testArgs(u8, i223, -1 << 222);
4469 try testArgs(u8, i223, -1);
4470 try testArgs(u8, i223, 0);
4471 try testArgs(i16, i223, -1 << 222);
4472 try testArgs(i16, i223, -1);
4473 try testArgs(i16, i223, 0);
4474 try testArgs(u16, i223, -1 << 222);
4475 try testArgs(u16, i223, -1);
4476 try testArgs(u16, i223, 0);
4477 try testArgs(i32, i223, -1 << 222);
4478 try testArgs(i32, i223, -1);
4479 try testArgs(i32, i223, 0);
4480 try testArgs(u32, i223, -1 << 222);
4481 try testArgs(u32, i223, -1);
4482 try testArgs(u32, i223, 0);
4483 try testArgs(i64, i223, -1 << 222);
4484 try testArgs(i64, i223, -1);
4485 try testArgs(i64, i223, 0);
4486 try testArgs(u64, i223, -1 << 222);
4487 try testArgs(u64, i223, -1);
4488 try testArgs(u64, i223, 0);
4489 try testArgs(i128, i223, -1 << 222);
4490 try testArgs(i128, i223, -1);
4491 try testArgs(i128, i223, 0);
4492 try testArgs(u128, i223, -1 << 222);
4493 try testArgs(u128, i223, -1);
4494 try testArgs(u128, i223, 0);
4495 try testArgs(i256, i223, -1 << 222);
4496 try testArgs(i256, i223, -1);
4497 try testArgs(i256, i223, 0);
4498 try testArgs(u256, i223, -1 << 222);
4499 try testArgs(u256, i223, -1);
4500 try testArgs(u256, i223, 0);
4501 try testArgs(i512, i223, -1 << 222);
4502 try testArgs(i512, i223, -1);
4503 try testArgs(i512, i223, 0);
4504 try testArgs(u512, i223, -1 << 222);
4505 try testArgs(u512, i223, -1);
4506 try testArgs(u512, i223, 0);
4507 try testArgs(i1024, i223, -1 << 222);
4508 try testArgs(i1024, i223, -1);
4509 try testArgs(i1024, i223, 0);
4510 try testArgs(u1024, i223, -1 << 222);
4511 try testArgs(u1024, i223, -1);
4512 try testArgs(u1024, i223, 0);
4513 try testArgs(i8, u223, 0);
4514 try testArgs(i8, u223, 1 << 0);
4515 try testArgs(i8, u223, 1 << 222);
4516 try testArgs(u8, u223, 0);
4517 try testArgs(u8, u223, 1 << 0);
4518 try testArgs(u8, u223, 1 << 222);
4519 try testArgs(i16, u223, 0);
4520 try testArgs(i16, u223, 1 << 0);
4521 try testArgs(i16, u223, 1 << 222);
4522 try testArgs(u16, u223, 0);
4523 try testArgs(u16, u223, 1 << 0);
4524 try testArgs(u16, u223, 1 << 222);
4525 try testArgs(i32, u223, 0);
4526 try testArgs(i32, u223, 1 << 0);
4527 try testArgs(i32, u223, 1 << 222);
4528 try testArgs(u32, u223, 0);
4529 try testArgs(u32, u223, 1 << 0);
4530 try testArgs(u32, u223, 1 << 222);
4531 try testArgs(i64, u223, 0);
4532 try testArgs(i64, u223, 1 << 0);
4533 try testArgs(i64, u223, 1 << 222);
4534 try testArgs(u64, u223, 0);
4535 try testArgs(u64, u223, 1 << 0);
4536 try testArgs(u64, u223, 1 << 222);
4537 try testArgs(i128, u223, 0);
4538 try testArgs(i128, u223, 1 << 0);
4539 try testArgs(i128, u223, 1 << 222);
4540 try testArgs(u128, u223, 0);
4541 try testArgs(u128, u223, 1 << 0);
4542 try testArgs(u128, u223, 1 << 222);
4543 try testArgs(i256, u223, 0);
4544 try testArgs(i256, u223, 1 << 0);
4545 try testArgs(i256, u223, 1 << 222);
4546 try testArgs(u256, u223, 0);
4547 try testArgs(u256, u223, 1 << 0);
4548 try testArgs(u256, u223, 1 << 222);
4549 try testArgs(i512, u223, 0);
4550 try testArgs(i512, u223, 1 << 0);
4551 try testArgs(i512, u223, 1 << 222);
4552 try testArgs(u512, u223, 0);
4553 try testArgs(u512, u223, 1 << 0);
4554 try testArgs(u512, u223, 1 << 222);
4555 try testArgs(i1024, u223, 0);
4556 try testArgs(i1024, u223, 1 << 0);
4557 try testArgs(i1024, u223, 1 << 222);
4558 try testArgs(u1024, u223, 0);
4559 try testArgs(u1024, u223, 1 << 0);
4560 try testArgs(u1024, u223, 1 << 222);
4561
4562 try testArgs(i8, i224, -1 << 223);
4563 try testArgs(i8, i224, -1);
4564 try testArgs(i8, i224, 0);
4565 try testArgs(u8, i224, -1 << 223);
4566 try testArgs(u8, i224, -1);
4567 try testArgs(u8, i224, 0);
4568 try testArgs(i16, i224, -1 << 223);
4569 try testArgs(i16, i224, -1);
4570 try testArgs(i16, i224, 0);
4571 try testArgs(u16, i224, -1 << 223);
4572 try testArgs(u16, i224, -1);
4573 try testArgs(u16, i224, 0);
4574 try testArgs(i32, i224, -1 << 223);
4575 try testArgs(i32, i224, -1);
4576 try testArgs(i32, i224, 0);
4577 try testArgs(u32, i224, -1 << 223);
4578 try testArgs(u32, i224, -1);
4579 try testArgs(u32, i224, 0);
4580 try testArgs(i64, i224, -1 << 223);
4581 try testArgs(i64, i224, -1);
4582 try testArgs(i64, i224, 0);
4583 try testArgs(u64, i224, -1 << 223);
4584 try testArgs(u64, i224, -1);
4585 try testArgs(u64, i224, 0);
4586 try testArgs(i128, i224, -1 << 223);
4587 try testArgs(i128, i224, -1);
4588 try testArgs(i128, i224, 0);
4589 try testArgs(u128, i224, -1 << 223);
4590 try testArgs(u128, i224, -1);
4591 try testArgs(u128, i224, 0);
4592 try testArgs(i256, i224, -1 << 223);
4593 try testArgs(i256, i224, -1);
4594 try testArgs(i256, i224, 0);
4595 try testArgs(u256, i224, -1 << 223);
4596 try testArgs(u256, i224, -1);
4597 try testArgs(u256, i224, 0);
4598 try testArgs(i512, i224, -1 << 223);
4599 try testArgs(i512, i224, -1);
4600 try testArgs(i512, i224, 0);
4601 try testArgs(u512, i224, -1 << 223);
4602 try testArgs(u512, i224, -1);
4603 try testArgs(u512, i224, 0);
4604 try testArgs(i1024, i224, -1 << 223);
4605 try testArgs(i1024, i224, -1);
4606 try testArgs(i1024, i224, 0);
4607 try testArgs(u1024, i224, -1 << 223);
4608 try testArgs(u1024, i224, -1);
4609 try testArgs(u1024, i224, 0);
4610 try testArgs(i8, u224, 0);
4611 try testArgs(i8, u224, 1 << 0);
4612 try testArgs(i8, u224, 1 << 223);
4613 try testArgs(u8, u224, 0);
4614 try testArgs(u8, u224, 1 << 0);
4615 try testArgs(u8, u224, 1 << 223);
4616 try testArgs(i16, u224, 0);
4617 try testArgs(i16, u224, 1 << 0);
4618 try testArgs(i16, u224, 1 << 223);
4619 try testArgs(u16, u224, 0);
4620 try testArgs(u16, u224, 1 << 0);
4621 try testArgs(u16, u224, 1 << 223);
4622 try testArgs(i32, u224, 0);
4623 try testArgs(i32, u224, 1 << 0);
4624 try testArgs(i32, u224, 1 << 223);
4625 try testArgs(u32, u224, 0);
4626 try testArgs(u32, u224, 1 << 0);
4627 try testArgs(u32, u224, 1 << 223);
4628 try testArgs(i64, u224, 0);
4629 try testArgs(i64, u224, 1 << 0);
4630 try testArgs(i64, u224, 1 << 223);
4631 try testArgs(u64, u224, 0);
4632 try testArgs(u64, u224, 1 << 0);
4633 try testArgs(u64, u224, 1 << 223);
4634 try testArgs(i128, u224, 0);
4635 try testArgs(i128, u224, 1 << 0);
4636 try testArgs(i128, u224, 1 << 223);
4637 try testArgs(u128, u224, 0);
4638 try testArgs(u128, u224, 1 << 0);
4639 try testArgs(u128, u224, 1 << 223);
4640 try testArgs(i256, u224, 0);
4641 try testArgs(i256, u224, 1 << 0);
4642 try testArgs(i256, u224, 1 << 223);
4643 try testArgs(u256, u224, 0);
4644 try testArgs(u256, u224, 1 << 0);
4645 try testArgs(u256, u224, 1 << 223);
4646 try testArgs(i512, u224, 0);
4647 try testArgs(i512, u224, 1 << 0);
4648 try testArgs(i512, u224, 1 << 223);
4649 try testArgs(u512, u224, 0);
4650 try testArgs(u512, u224, 1 << 0);
4651 try testArgs(u512, u224, 1 << 223);
4652 try testArgs(i1024, u224, 0);
4653 try testArgs(i1024, u224, 1 << 0);
4654 try testArgs(i1024, u224, 1 << 223);
4655 try testArgs(u1024, u224, 0);
4656 try testArgs(u1024, u224, 1 << 0);
4657 try testArgs(u1024, u224, 1 << 223);
4658
4659 try testArgs(i8, i225, -1 << 224);
4660 try testArgs(i8, i225, -1);
4661 try testArgs(i8, i225, 0);
4662 try testArgs(u8, i225, -1 << 224);
4663 try testArgs(u8, i225, -1);
4664 try testArgs(u8, i225, 0);
4665 try testArgs(i16, i225, -1 << 224);
4666 try testArgs(i16, i225, -1);
4667 try testArgs(i16, i225, 0);
4668 try testArgs(u16, i225, -1 << 224);
4669 try testArgs(u16, i225, -1);
4670 try testArgs(u16, i225, 0);
4671 try testArgs(i32, i225, -1 << 224);
4672 try testArgs(i32, i225, -1);
4673 try testArgs(i32, i225, 0);
4674 try testArgs(u32, i225, -1 << 224);
4675 try testArgs(u32, i225, -1);
4676 try testArgs(u32, i225, 0);
4677 try testArgs(i64, i225, -1 << 224);
4678 try testArgs(i64, i225, -1);
4679 try testArgs(i64, i225, 0);
4680 try testArgs(u64, i225, -1 << 224);
4681 try testArgs(u64, i225, -1);
4682 try testArgs(u64, i225, 0);
4683 try testArgs(i128, i225, -1 << 224);
4684 try testArgs(i128, i225, -1);
4685 try testArgs(i128, i225, 0);
4686 try testArgs(u128, i225, -1 << 224);
4687 try testArgs(u128, i225, -1);
4688 try testArgs(u128, i225, 0);
4689 try testArgs(i256, i225, -1 << 224);
4690 try testArgs(i256, i225, -1);
4691 try testArgs(i256, i225, 0);
4692 try testArgs(u256, i225, -1 << 224);
4693 try testArgs(u256, i225, -1);
4694 try testArgs(u256, i225, 0);
4695 try testArgs(i512, i225, -1 << 224);
4696 try testArgs(i512, i225, -1);
4697 try testArgs(i512, i225, 0);
4698 try testArgs(u512, i225, -1 << 224);
4699 try testArgs(u512, i225, -1);
4700 try testArgs(u512, i225, 0);
4701 try testArgs(i1024, i225, -1 << 224);
4702 try testArgs(i1024, i225, -1);
4703 try testArgs(i1024, i225, 0);
4704 try testArgs(u1024, i225, -1 << 224);
4705 try testArgs(u1024, i225, -1);
4706 try testArgs(u1024, i225, 0);
4707 try testArgs(i8, u225, 0);
4708 try testArgs(i8, u225, 1 << 0);
4709 try testArgs(i8, u225, 1 << 224);
4710 try testArgs(u8, u225, 0);
4711 try testArgs(u8, u225, 1 << 0);
4712 try testArgs(u8, u225, 1 << 224);
4713 try testArgs(i16, u225, 0);
4714 try testArgs(i16, u225, 1 << 0);
4715 try testArgs(i16, u225, 1 << 224);
4716 try testArgs(u16, u225, 0);
4717 try testArgs(u16, u225, 1 << 0);
4718 try testArgs(u16, u225, 1 << 224);
4719 try testArgs(i32, u225, 0);
4720 try testArgs(i32, u225, 1 << 0);
4721 try testArgs(i32, u225, 1 << 224);
4722 try testArgs(u32, u225, 0);
4723 try testArgs(u32, u225, 1 << 0);
4724 try testArgs(u32, u225, 1 << 224);
4725 try testArgs(i64, u225, 0);
4726 try testArgs(i64, u225, 1 << 0);
4727 try testArgs(i64, u225, 1 << 224);
4728 try testArgs(u64, u225, 0);
4729 try testArgs(u64, u225, 1 << 0);
4730 try testArgs(u64, u225, 1 << 224);
4731 try testArgs(i128, u225, 0);
4732 try testArgs(i128, u225, 1 << 0);
4733 try testArgs(i128, u225, 1 << 224);
4734 try testArgs(u128, u225, 0);
4735 try testArgs(u128, u225, 1 << 0);
4736 try testArgs(u128, u225, 1 << 224);
4737 try testArgs(i256, u225, 0);
4738 try testArgs(i256, u225, 1 << 0);
4739 try testArgs(i256, u225, 1 << 224);
4740 try testArgs(u256, u225, 0);
4741 try testArgs(u256, u225, 1 << 0);
4742 try testArgs(u256, u225, 1 << 224);
4743 try testArgs(i512, u225, 0);
4744 try testArgs(i512, u225, 1 << 0);
4745 try testArgs(i512, u225, 1 << 224);
4746 try testArgs(u512, u225, 0);
4747 try testArgs(u512, u225, 1 << 0);
4748 try testArgs(u512, u225, 1 << 224);
4749 try testArgs(i1024, u225, 0);
4750 try testArgs(i1024, u225, 1 << 0);
4751 try testArgs(i1024, u225, 1 << 224);
4752 try testArgs(u1024, u225, 0);
4753 try testArgs(u1024, u225, 1 << 0);
4754 try testArgs(u1024, u225, 1 << 224);
4755
4756 try testArgs(i8, i255, -1 << 254);
4757 try testArgs(i8, i255, -1);
4758 try testArgs(i8, i255, 0);
47594301 try testArgs(u8, i255, -1 << 254);
47604302 try testArgs(u8, i255, -1);
47614303 try testArgs(u8, i255, 0);
4762 try testArgs(i16, i255, -1 << 254);
4763 try testArgs(i16, i255, -1);
4764 try testArgs(i16, i255, 0);
47654304 try testArgs(u16, i255, -1 << 254);
47664305 try testArgs(u16, i255, -1);
47674306 try testArgs(u16, i255, 0);
4768 try testArgs(i32, i255, -1 << 254);
4769 try testArgs(i32, i255, -1);
4770 try testArgs(i32, i255, 0);
47714307 try testArgs(u32, i255, -1 << 254);
47724308 try testArgs(u32, i255, -1);
47734309 try testArgs(u32, i255, 0);
4774 try testArgs(i64, i255, -1 << 254);
4775 try testArgs(i64, i255, -1);
4776 try testArgs(i64, i255, 0);
47774310 try testArgs(u64, i255, -1 << 254);
47784311 try testArgs(u64, i255, -1);
47794312 try testArgs(u64, i255, 0);
4780 try testArgs(i128, i255, -1 << 254);
4781 try testArgs(i128, i255, -1);
4782 try testArgs(i128, i255, 0);
47834313 try testArgs(u128, i255, -1 << 254);
47844314 try testArgs(u128, i255, -1);
47854315 try testArgs(u128, i255, 0);
4786 try testArgs(i256, i255, -1 << 254);
4787 try testArgs(i256, i255, -1);
4788 try testArgs(i256, i255, 0);
47894316 try testArgs(u256, i255, -1 << 254);
47904317 try testArgs(u256, i255, -1);
47914318 try testArgs(u256, i255, 0);
4792 try testArgs(i512, i255, -1 << 254);
4793 try testArgs(i512, i255, -1);
4794 try testArgs(i512, i255, 0);
47954319 try testArgs(u512, i255, -1 << 254);
47964320 try testArgs(u512, i255, -1);
47974321 try testArgs(u512, i255, 0);
4798 try testArgs(i1024, i255, -1 << 254);
4799 try testArgs(i1024, i255, -1);
4800 try testArgs(i1024, i255, 0);
48014322 try testArgs(u1024, i255, -1 << 254);
48024323 try testArgs(u1024, i255, -1);
48034324 try testArgs(u1024, i255, 0);
48044325 try testArgs(i8, u255, 0);
48054326 try testArgs(i8, u255, 1 << 0);
48064327 try testArgs(i8, u255, 1 << 254);
4807 try testArgs(u8, u255, 0);
4808 try testArgs(u8, u255, 1 << 0);
4809 try testArgs(u8, u255, 1 << 254);
48104328 try testArgs(i16, u255, 0);
48114329 try testArgs(i16, u255, 1 << 0);
48124330 try testArgs(i16, u255, 1 << 254);
4813 try testArgs(u16, u255, 0);
4814 try testArgs(u16, u255, 1 << 0);
4815 try testArgs(u16, u255, 1 << 254);
48164331 try testArgs(i32, u255, 0);
48174332 try testArgs(i32, u255, 1 << 0);
48184333 try testArgs(i32, u255, 1 << 254);
4819 try testArgs(u32, u255, 0);
4820 try testArgs(u32, u255, 1 << 0);
4821 try testArgs(u32, u255, 1 << 254);
48224334 try testArgs(i64, u255, 0);
48234335 try testArgs(i64, u255, 1 << 0);
48244336 try testArgs(i64, u255, 1 << 254);
4825 try testArgs(u64, u255, 0);
4826 try testArgs(u64, u255, 1 << 0);
4827 try testArgs(u64, u255, 1 << 254);
48284337 try testArgs(i128, u255, 0);
48294338 try testArgs(i128, u255, 1 << 0);
48304339 try testArgs(i128, u255, 1 << 254);
4831 try testArgs(u128, u255, 0);
4832 try testArgs(u128, u255, 1 << 0);
4833 try testArgs(u128, u255, 1 << 254);
48344340 try testArgs(i256, u255, 0);
48354341 try testArgs(i256, u255, 1 << 0);
48364342 try testArgs(i256, u255, 1 << 254);
4837 try testArgs(u256, u255, 0);
4838 try testArgs(u256, u255, 1 << 0);
4839 try testArgs(u256, u255, 1 << 254);
48404343 try testArgs(i512, u255, 0);
48414344 try testArgs(i512, u255, 1 << 0);
48424345 try testArgs(i512, u255, 1 << 254);
4843 try testArgs(u512, u255, 0);
4844 try testArgs(u512, u255, 1 << 0);
4845 try testArgs(u512, u255, 1 << 254);
48464346 try testArgs(i1024, u255, 0);
48474347 try testArgs(i1024, u255, 1 << 0);
48484348 try testArgs(i1024, u255, 1 << 254);
4849 try testArgs(u1024, u255, 0);
4850 try testArgs(u1024, u255, 1 << 0);
4851 try testArgs(u1024, u255, 1 << 254);
48524349
4853 try testArgs(i8, i256, -1 << 255);
4854 try testArgs(i8, i256, -1);
4855 try testArgs(i8, i256, 0);
48564350 try testArgs(u8, i256, -1 << 255);
48574351 try testArgs(u8, i256, -1);
48584352 try testArgs(u8, i256, 0);
4859 try testArgs(i16, i256, -1 << 255);
4860 try testArgs(i16, i256, -1);
4861 try testArgs(i16, i256, 0);
48624353 try testArgs(u16, i256, -1 << 255);
48634354 try testArgs(u16, i256, -1);
48644355 try testArgs(u16, i256, 0);
4865 try testArgs(i32, i256, -1 << 255);
4866 try testArgs(i32, i256, -1);
4867 try testArgs(i32, i256, 0);
48684356 try testArgs(u32, i256, -1 << 255);
48694357 try testArgs(u32, i256, -1);
48704358 try testArgs(u32, i256, 0);
4871 try testArgs(i64, i256, -1 << 255);
4872 try testArgs(i64, i256, -1);
4873 try testArgs(i64, i256, 0);
48744359 try testArgs(u64, i256, -1 << 255);
48754360 try testArgs(u64, i256, -1);
48764361 try testArgs(u64, i256, 0);
4877 try testArgs(i128, i256, -1 << 255);
4878 try testArgs(i128, i256, -1);
4879 try testArgs(i128, i256, 0);
48804362 try testArgs(u128, i256, -1 << 255);
48814363 try testArgs(u128, i256, -1);
48824364 try testArgs(u128, i256, 0);
4883 try testArgs(i256, i256, -1 << 255);
4884 try testArgs(i256, i256, -1);
4885 try testArgs(i256, i256, 0);
48864365 try testArgs(u256, i256, -1 << 255);
48874366 try testArgs(u256, i256, -1);
48884367 try testArgs(u256, i256, 0);
4889 try testArgs(i512, i256, -1 << 255);
4890 try testArgs(i512, i256, -1);
4891 try testArgs(i512, i256, 0);
48924368 try testArgs(u512, i256, -1 << 255);
48934369 try testArgs(u512, i256, -1);
48944370 try testArgs(u512, i256, 0);
4895 try testArgs(i1024, i256, -1 << 255);
4896 try testArgs(i1024, i256, -1);
4897 try testArgs(i1024, i256, 0);
48984371 try testArgs(u1024, i256, -1 << 255);
48994372 try testArgs(u1024, i256, -1);
49004373 try testArgs(u1024, i256, 0);
49014374 try testArgs(i8, u256, 0);
49024375 try testArgs(i8, u256, 1 << 0);
49034376 try testArgs(i8, u256, 1 << 255);
4904 try testArgs(u8, u256, 0);
4905 try testArgs(u8, u256, 1 << 0);
4906 try testArgs(u8, u256, 1 << 255);
49074377 try testArgs(i16, u256, 0);
49084378 try testArgs(i16, u256, 1 << 0);
49094379 try testArgs(i16, u256, 1 << 255);
4910 try testArgs(u16, u256, 0);
4911 try testArgs(u16, u256, 1 << 0);
4912 try testArgs(u16, u256, 1 << 255);
49134380 try testArgs(i32, u256, 0);
49144381 try testArgs(i32, u256, 1 << 0);
49154382 try testArgs(i32, u256, 1 << 255);
4916 try testArgs(u32, u256, 0);
4917 try testArgs(u32, u256, 1 << 0);
4918 try testArgs(u32, u256, 1 << 255);
49194383 try testArgs(i64, u256, 0);
49204384 try testArgs(i64, u256, 1 << 0);
49214385 try testArgs(i64, u256, 1 << 255);
4922 try testArgs(u64, u256, 0);
4923 try testArgs(u64, u256, 1 << 0);
4924 try testArgs(u64, u256, 1 << 255);
49254386 try testArgs(i128, u256, 0);
49264387 try testArgs(i128, u256, 1 << 0);
49274388 try testArgs(i128, u256, 1 << 255);
4928 try testArgs(u128, u256, 0);
4929 try testArgs(u128, u256, 1 << 0);
4930 try testArgs(u128, u256, 1 << 255);
49314389 try testArgs(i256, u256, 0);
49324390 try testArgs(i256, u256, 1 << 0);
49334391 try testArgs(i256, u256, 1 << 255);
4934 try testArgs(u256, u256, 0);
4935 try testArgs(u256, u256, 1 << 0);
4936 try testArgs(u256, u256, 1 << 255);
49374392 try testArgs(i512, u256, 0);
49384393 try testArgs(i512, u256, 1 << 0);
49394394 try testArgs(i512, u256, 1 << 255);
4940 try testArgs(u512, u256, 0);
4941 try testArgs(u512, u256, 1 << 0);
4942 try testArgs(u512, u256, 1 << 255);
49434395 try testArgs(i1024, u256, 0);
49444396 try testArgs(i1024, u256, 1 << 0);
49454397 try testArgs(i1024, u256, 1 << 255);
4946 try testArgs(u1024, u256, 0);
4947 try testArgs(u1024, u256, 1 << 0);
4948 try testArgs(u1024, u256, 1 << 255);
49494398
4950 try testArgs(i8, i257, -1 << 256);
4951 try testArgs(i8, i257, -1);
4952 try testArgs(i8, i257, 0);
49534399 try testArgs(u8, i257, -1 << 256);
49544400 try testArgs(u8, i257, -1);
49554401 try testArgs(u8, i257, 0);
4956 try testArgs(i16, i257, -1 << 256);
4957 try testArgs(i16, i257, -1);
4958 try testArgs(i16, i257, 0);
49594402 try testArgs(u16, i257, -1 << 256);
49604403 try testArgs(u16, i257, -1);
49614404 try testArgs(u16, i257, 0);
4962 try testArgs(i32, i257, -1 << 256);
4963 try testArgs(i32, i257, -1);
4964 try testArgs(i32, i257, 0);
49654405 try testArgs(u32, i257, -1 << 256);
49664406 try testArgs(u32, i257, -1);
49674407 try testArgs(u32, i257, 0);
4968 try testArgs(i64, i257, -1 << 256);
4969 try testArgs(i64, i257, -1);
4970 try testArgs(i64, i257, 0);
49714408 try testArgs(u64, i257, -1 << 256);
49724409 try testArgs(u64, i257, -1);
49734410 try testArgs(u64, i257, 0);
4974 try testArgs(i128, i257, -1 << 256);
4975 try testArgs(i128, i257, -1);
4976 try testArgs(i128, i257, 0);
49774411 try testArgs(u128, i257, -1 << 256);
49784412 try testArgs(u128, i257, -1);
49794413 try testArgs(u128, i257, 0);
4980 try testArgs(i256, i257, -1 << 256);
4981 try testArgs(i256, i257, -1);
4982 try testArgs(i256, i257, 0);
49834414 try testArgs(u256, i257, -1 << 256);
49844415 try testArgs(u256, i257, -1);
49854416 try testArgs(u256, i257, 0);
4986 try testArgs(i512, i257, -1 << 256);
4987 try testArgs(i512, i257, -1);
4988 try testArgs(i512, i257, 0);
49894417 try testArgs(u512, i257, -1 << 256);
49904418 try testArgs(u512, i257, -1);
49914419 try testArgs(u512, i257, 0);
4992 try testArgs(i1024, i257, -1 << 256);
4993 try testArgs(i1024, i257, -1);
4994 try testArgs(i1024, i257, 0);
49954420 try testArgs(u1024, i257, -1 << 256);
49964421 try testArgs(u1024, i257, -1);
49974422 try testArgs(u1024, i257, 0);
49984423 try testArgs(i8, u257, 0);
49994424 try testArgs(i8, u257, 1 << 0);
50004425 try testArgs(i8, u257, 1 << 256);
5001 try testArgs(u8, u257, 0);
5002 try testArgs(u8, u257, 1 << 0);
5003 try testArgs(u8, u257, 1 << 256);
50044426 try testArgs(i16, u257, 0);
50054427 try testArgs(i16, u257, 1 << 0);
50064428 try testArgs(i16, u257, 1 << 256);
5007 try testArgs(u16, u257, 0);
5008 try testArgs(u16, u257, 1 << 0);
5009 try testArgs(u16, u257, 1 << 256);
50104429 try testArgs(i32, u257, 0);
50114430 try testArgs(i32, u257, 1 << 0);
50124431 try testArgs(i32, u257, 1 << 256);
5013 try testArgs(u32, u257, 0);
5014 try testArgs(u32, u257, 1 << 0);
5015 try testArgs(u32, u257, 1 << 256);
50164432 try testArgs(i64, u257, 0);
50174433 try testArgs(i64, u257, 1 << 0);
50184434 try testArgs(i64, u257, 1 << 256);
5019 try testArgs(u64, u257, 0);
5020 try testArgs(u64, u257, 1 << 0);
5021 try testArgs(u64, u257, 1 << 256);
50224435 try testArgs(i128, u257, 0);
50234436 try testArgs(i128, u257, 1 << 0);
50244437 try testArgs(i128, u257, 1 << 256);
5025 try testArgs(u128, u257, 0);
5026 try testArgs(u128, u257, 1 << 0);
5027 try testArgs(u128, u257, 1 << 256);
50284438 try testArgs(i256, u257, 0);
50294439 try testArgs(i256, u257, 1 << 0);
50304440 try testArgs(i256, u257, 1 << 256);
5031 try testArgs(u256, u257, 0);
5032 try testArgs(u256, u257, 1 << 0);
5033 try testArgs(u256, u257, 1 << 256);
50344441 try testArgs(i512, u257, 0);
50354442 try testArgs(i512, u257, 1 << 0);
50364443 try testArgs(i512, u257, 1 << 256);
5037 try testArgs(u512, u257, 0);
5038 try testArgs(u512, u257, 1 << 0);
5039 try testArgs(u512, u257, 1 << 256);
50404444 try testArgs(i1024, u257, 0);
50414445 try testArgs(i1024, u257, 1 << 0);
50424446 try testArgs(i1024, u257, 1 << 256);
5043 try testArgs(u1024, u257, 0);
5044 try testArgs(u1024, u257, 1 << 0);
5045 try testArgs(u1024, u257, 1 << 256);
50464447
5047 try testArgs(i8, i511, -1 << 510);
5048 try testArgs(i8, i511, -1);
5049 try testArgs(i8, i511, 0);
50504448 try testArgs(u8, i511, -1 << 510);
50514449 try testArgs(u8, i511, -1);
50524450 try testArgs(u8, i511, 0);
5053 try testArgs(i16, i511, -1 << 510);
5054 try testArgs(i16, i511, -1);
5055 try testArgs(i16, i511, 0);
50564451 try testArgs(u16, i511, -1 << 510);
50574452 try testArgs(u16, i511, -1);
50584453 try testArgs(u16, i511, 0);
5059 try testArgs(i32, i511, -1 << 510);
5060 try testArgs(i32, i511, -1);
5061 try testArgs(i32, i511, 0);
50624454 try testArgs(u32, i511, -1 << 510);
50634455 try testArgs(u32, i511, -1);
50644456 try testArgs(u32, i511, 0);
5065 try testArgs(i64, i511, -1 << 510);
5066 try testArgs(i64, i511, -1);
5067 try testArgs(i64, i511, 0);
50684457 try testArgs(u64, i511, -1 << 510);
50694458 try testArgs(u64, i511, -1);
50704459 try testArgs(u64, i511, 0);
5071 try testArgs(i128, i511, -1 << 510);
5072 try testArgs(i128, i511, -1);
5073 try testArgs(i128, i511, 0);
50744460 try testArgs(u128, i511, -1 << 510);
50754461 try testArgs(u128, i511, -1);
50764462 try testArgs(u128, i511, 0);
5077 try testArgs(i256, i511, -1 << 510);
5078 try testArgs(i256, i511, -1);
5079 try testArgs(i256, i511, 0);
50804463 try testArgs(u256, i511, -1 << 510);
50814464 try testArgs(u256, i511, -1);
50824465 try testArgs(u256, i511, 0);
5083 try testArgs(i512, i511, -1 << 510);
5084 try testArgs(i512, i511, -1);
5085 try testArgs(i512, i511, 0);
50864466 try testArgs(u512, i511, -1 << 510);
50874467 try testArgs(u512, i511, -1);
50884468 try testArgs(u512, i511, 0);
5089 try testArgs(i1024, i511, -1 << 510);
5090 try testArgs(i1024, i511, -1);
5091 try testArgs(i1024, i511, 0);
50924469 try testArgs(u1024, i511, -1 << 510);
50934470 try testArgs(u1024, i511, -1);
50944471 try testArgs(u1024, i511, 0);
50954472 try testArgs(i8, u511, 0);
50964473 try testArgs(i8, u511, 1 << 0);
50974474 try testArgs(i8, u511, 1 << 510);
5098 try testArgs(u8, u511, 0);
5099 try testArgs(u8, u511, 1 << 0);
5100 try testArgs(u8, u511, 1 << 510);
51014475 try testArgs(i16, u511, 0);
51024476 try testArgs(i16, u511, 1 << 0);
51034477 try testArgs(i16, u511, 1 << 510);
5104 try testArgs(u16, u511, 0);
5105 try testArgs(u16, u511, 1 << 0);
5106 try testArgs(u16, u511, 1 << 510);
51074478 try testArgs(i32, u511, 0);
51084479 try testArgs(i32, u511, 1 << 0);
51094480 try testArgs(i32, u511, 1 << 510);
5110 try testArgs(u32, u511, 0);
5111 try testArgs(u32, u511, 1 << 0);
5112 try testArgs(u32, u511, 1 << 510);
51134481 try testArgs(i64, u511, 0);
51144482 try testArgs(i64, u511, 1 << 0);
51154483 try testArgs(i64, u511, 1 << 510);
5116 try testArgs(u64, u511, 0);
5117 try testArgs(u64, u511, 1 << 0);
5118 try testArgs(u64, u511, 1 << 510);
51194484 try testArgs(i128, u511, 0);
51204485 try testArgs(i128, u511, 1 << 0);
51214486 try testArgs(i128, u511, 1 << 510);
5122 try testArgs(u128, u511, 0);
5123 try testArgs(u128, u511, 1 << 0);
5124 try testArgs(u128, u511, 1 << 510);
51254487 try testArgs(i256, u511, 0);
51264488 try testArgs(i256, u511, 1 << 0);
51274489 try testArgs(i256, u511, 1 << 510);
5128 try testArgs(u256, u511, 0);
5129 try testArgs(u256, u511, 1 << 0);
5130 try testArgs(u256, u511, 1 << 510);
51314490 try testArgs(i512, u511, 0);
51324491 try testArgs(i512, u511, 1 << 0);
51334492 try testArgs(i512, u511, 1 << 510);
5134 try testArgs(u512, u511, 0);
5135 try testArgs(u512, u511, 1 << 0);
5136 try testArgs(u512, u511, 1 << 510);
51374493 try testArgs(i1024, u511, 0);
51384494 try testArgs(i1024, u511, 1 << 0);
51394495 try testArgs(i1024, u511, 1 << 510);
5140 try testArgs(u1024, u511, 0);
5141 try testArgs(u1024, u511, 1 << 0);
5142 try testArgs(u1024, u511, 1 << 510);
51434496
5144 try testArgs(i8, i512, -1 << 511);
5145 try testArgs(i8, i512, -1);
5146 try testArgs(i8, i512, 0);
51474497 try testArgs(u8, i512, -1 << 511);
51484498 try testArgs(u8, i512, -1);
51494499 try testArgs(u8, i512, 0);
5150 try testArgs(i16, i512, -1 << 511);
5151 try testArgs(i16, i512, -1);
5152 try testArgs(i16, i512, 0);
51534500 try testArgs(u16, i512, -1 << 511);
51544501 try testArgs(u16, i512, -1);
51554502 try testArgs(u16, i512, 0);
5156 try testArgs(i32, i512, -1 << 511);
5157 try testArgs(i32, i512, -1);
5158 try testArgs(i32, i512, 0);
51594503 try testArgs(u32, i512, -1 << 511);
51604504 try testArgs(u32, i512, -1);
51614505 try testArgs(u32, i512, 0);
5162 try testArgs(i64, i512, -1 << 511);
5163 try testArgs(i64, i512, -1);
5164 try testArgs(i64, i512, 0);
51654506 try testArgs(u64, i512, -1 << 511);
51664507 try testArgs(u64, i512, -1);
51674508 try testArgs(u64, i512, 0);
5168 try testArgs(i128, i512, -1 << 511);
5169 try testArgs(i128, i512, -1);
5170 try testArgs(i128, i512, 0);
51714509 try testArgs(u128, i512, -1 << 511);
51724510 try testArgs(u128, i512, -1);
51734511 try testArgs(u128, i512, 0);
5174 try testArgs(i256, i512, -1 << 511);
5175 try testArgs(i256, i512, -1);
5176 try testArgs(i256, i512, 0);
51774512 try testArgs(u256, i512, -1 << 511);
51784513 try testArgs(u256, i512, -1);
51794514 try testArgs(u256, i512, 0);
5180 try testArgs(i512, i512, -1 << 511);
5181 try testArgs(i512, i512, -1);
5182 try testArgs(i512, i512, 0);
51834515 try testArgs(u512, i512, -1 << 511);
51844516 try testArgs(u512, i512, -1);
51854517 try testArgs(u512, i512, 0);
5186 try testArgs(i1024, i512, -1 << 511);
5187 try testArgs(i1024, i512, -1);
5188 try testArgs(i1024, i512, 0);
51894518 try testArgs(u1024, i512, -1 << 511);
51904519 try testArgs(u1024, i512, -1);
51914520 try testArgs(u1024, i512, 0);
51924521 try testArgs(i8, u512, 0);
51934522 try testArgs(i8, u512, 1 << 0);
51944523 try testArgs(i8, u512, 1 << 511);
5195 try testArgs(u8, u512, 0);
5196 try testArgs(u8, u512, 1 << 0);
5197 try testArgs(u8, u512, 1 << 511);
51984524 try testArgs(i16, u512, 0);
51994525 try testArgs(i16, u512, 1 << 0);
52004526 try testArgs(i16, u512, 1 << 511);
5201 try testArgs(u16, u512, 0);
5202 try testArgs(u16, u512, 1 << 0);
5203 try testArgs(u16, u512, 1 << 511);
52044527 try testArgs(i32, u512, 0);
52054528 try testArgs(i32, u512, 1 << 0);
52064529 try testArgs(i32, u512, 1 << 511);
5207 try testArgs(u32, u512, 0);
5208 try testArgs(u32, u512, 1 << 0);
5209 try testArgs(u32, u512, 1 << 511);
52104530 try testArgs(i64, u512, 0);
52114531 try testArgs(i64, u512, 1 << 0);
52124532 try testArgs(i64, u512, 1 << 511);
5213 try testArgs(u64, u512, 0);
5214 try testArgs(u64, u512, 1 << 0);
5215 try testArgs(u64, u512, 1 << 511);
52164533 try testArgs(i128, u512, 0);
52174534 try testArgs(i128, u512, 1 << 0);
52184535 try testArgs(i128, u512, 1 << 511);
5219 try testArgs(u128, u512, 0);
5220 try testArgs(u128, u512, 1 << 0);
5221 try testArgs(u128, u512, 1 << 511);
52224536 try testArgs(i256, u512, 0);
52234537 try testArgs(i256, u512, 1 << 0);
52244538 try testArgs(i256, u512, 1 << 511);
5225 try testArgs(u256, u512, 0);
5226 try testArgs(u256, u512, 1 << 0);
5227 try testArgs(u256, u512, 1 << 511);
52284539 try testArgs(i512, u512, 0);
52294540 try testArgs(i512, u512, 1 << 0);
52304541 try testArgs(i512, u512, 1 << 511);
5231 try testArgs(u512, u512, 0);
5232 try testArgs(u512, u512, 1 << 0);
5233 try testArgs(u512, u512, 1 << 511);
52344542 try testArgs(i1024, u512, 0);
52354543 try testArgs(i1024, u512, 1 << 0);
52364544 try testArgs(i1024, u512, 1 << 511);
5237 try testArgs(u1024, u512, 0);
5238 try testArgs(u1024, u512, 1 << 0);
5239 try testArgs(u1024, u512, 1 << 511);
52404545
5241 try testArgs(i8, i513, -1 << 512);
5242 try testArgs(i8, i513, -1);
5243 try testArgs(i8, i513, 0);
52444546 try testArgs(u8, i513, -1 << 512);
52454547 try testArgs(u8, i513, -1);
52464548 try testArgs(u8, i513, 0);
5247 try testArgs(i16, i513, -1 << 512);
5248 try testArgs(i16, i513, -1);
5249 try testArgs(i16, i513, 0);
52504549 try testArgs(u16, i513, -1 << 512);
52514550 try testArgs(u16, i513, -1);
52524551 try testArgs(u16, i513, 0);
5253 try testArgs(i32, i513, -1 << 512);
5254 try testArgs(i32, i513, -1);
5255 try testArgs(i32, i513, 0);
52564552 try testArgs(u32, i513, -1 << 512);
52574553 try testArgs(u32, i513, -1);
52584554 try testArgs(u32, i513, 0);
5259 try testArgs(i64, i513, -1 << 512);
5260 try testArgs(i64, i513, -1);
5261 try testArgs(i64, i513, 0);
52624555 try testArgs(u64, i513, -1 << 512);
52634556 try testArgs(u64, i513, -1);
52644557 try testArgs(u64, i513, 0);
5265 try testArgs(i128, i513, -1 << 512);
5266 try testArgs(i128, i513, -1);
5267 try testArgs(i128, i513, 0);
52684558 try testArgs(u128, i513, -1 << 512);
52694559 try testArgs(u128, i513, -1);
52704560 try testArgs(u128, i513, 0);
5271 try testArgs(i256, i513, -1 << 512);
5272 try testArgs(i256, i513, -1);
5273 try testArgs(i256, i513, 0);
52744561 try testArgs(u256, i513, -1 << 512);
52754562 try testArgs(u256, i513, -1);
52764563 try testArgs(u256, i513, 0);
5277 try testArgs(i512, i513, -1 << 512);
5278 try testArgs(i512, i513, -1);
5279 try testArgs(i512, i513, 0);
52804564 try testArgs(u512, i513, -1 << 512);
52814565 try testArgs(u512, i513, -1);
52824566 try testArgs(u512, i513, 0);
5283 try testArgs(i1024, i513, -1 << 512);
5284 try testArgs(i1024, i513, -1);
5285 try testArgs(i1024, i513, 0);
52864567 try testArgs(u1024, i513, -1 << 512);
52874568 try testArgs(u1024, i513, -1);
52884569 try testArgs(u1024, i513, 0);
52894570 try testArgs(i8, u513, 0);
52904571 try testArgs(i8, u513, 1 << 0);
52914572 try testArgs(i8, u513, 1 << 512);
5292 try testArgs(u8, u513, 0);
5293 try testArgs(u8, u513, 1 << 0);
5294 try testArgs(u8, u513, 1 << 512);
52954573 try testArgs(i16, u513, 0);
52964574 try testArgs(i16, u513, 1 << 0);
52974575 try testArgs(i16, u513, 1 << 512);
5298 try testArgs(u16, u513, 0);
5299 try testArgs(u16, u513, 1 << 0);
5300 try testArgs(u16, u513, 1 << 512);
53014576 try testArgs(i32, u513, 0);
53024577 try testArgs(i32, u513, 1 << 0);
53034578 try testArgs(i32, u513, 1 << 512);
5304 try testArgs(u32, u513, 0);
5305 try testArgs(u32, u513, 1 << 0);
5306 try testArgs(u32, u513, 1 << 512);
53074579 try testArgs(i64, u513, 0);
53084580 try testArgs(i64, u513, 1 << 0);
53094581 try testArgs(i64, u513, 1 << 512);
5310 try testArgs(u64, u513, 0);
5311 try testArgs(u64, u513, 1 << 0);
5312 try testArgs(u64, u513, 1 << 512);
53134582 try testArgs(i128, u513, 0);
53144583 try testArgs(i128, u513, 1 << 0);
53154584 try testArgs(i128, u513, 1 << 512);
5316 try testArgs(u128, u513, 0);
5317 try testArgs(u128, u513, 1 << 0);
5318 try testArgs(u128, u513, 1 << 512);
53194585 try testArgs(i256, u513, 0);
53204586 try testArgs(i256, u513, 1 << 0);
53214587 try testArgs(i256, u513, 1 << 512);
5322 try testArgs(u256, u513, 0);
5323 try testArgs(u256, u513, 1 << 0);
5324 try testArgs(u256, u513, 1 << 512);
53254588 try testArgs(i512, u513, 0);
53264589 try testArgs(i512, u513, 1 << 0);
53274590 try testArgs(i512, u513, 1 << 512);
5328 try testArgs(u512, u513, 0);
5329 try testArgs(u512, u513, 1 << 0);
5330 try testArgs(u512, u513, 1 << 512);
53314591 try testArgs(i1024, u513, 0);
53324592 try testArgs(i1024, u513, 1 << 0);
53334593 try testArgs(i1024, u513, 1 << 512);
5334 try testArgs(u1024, u513, 0);
5335 try testArgs(u1024, u513, 1 << 0);
5336 try testArgs(u1024, u513, 1 << 512);
53374594
5338 try testArgs(i8, i1023, -1 << 1022);
5339 try testArgs(i8, i1023, -1);
5340 try testArgs(i8, i1023, 0);
53414595 try testArgs(u8, i1023, -1 << 1022);
53424596 try testArgs(u8, i1023, -1);
53434597 try testArgs(u8, i1023, 0);
5344 try testArgs(i16, i1023, -1 << 1022);
5345 try testArgs(i16, i1023, -1);
5346 try testArgs(i16, i1023, 0);
53474598 try testArgs(u16, i1023, -1 << 1022);
53484599 try testArgs(u16, i1023, -1);
53494600 try testArgs(u16, i1023, 0);
5350 try testArgs(i32, i1023, -1 << 1022);
5351 try testArgs(i32, i1023, -1);
5352 try testArgs(i32, i1023, 0);
53534601 try testArgs(u32, i1023, -1 << 1022);
53544602 try testArgs(u32, i1023, -1);
53554603 try testArgs(u32, i1023, 0);
5356 try testArgs(i64, i1023, -1 << 1022);
5357 try testArgs(i64, i1023, -1);
5358 try testArgs(i64, i1023, 0);
53594604 try testArgs(u64, i1023, -1 << 1022);
53604605 try testArgs(u64, i1023, -1);
53614606 try testArgs(u64, i1023, 0);
5362 try testArgs(i128, i1023, -1 << 1022);
5363 try testArgs(i128, i1023, -1);
5364 try testArgs(i128, i1023, 0);
53654607 try testArgs(u128, i1023, -1 << 1022);
53664608 try testArgs(u128, i1023, -1);
53674609 try testArgs(u128, i1023, 0);
5368 try testArgs(i256, i1023, -1 << 1022);
5369 try testArgs(i256, i1023, -1);
5370 try testArgs(i256, i1023, 0);
53714610 try testArgs(u256, i1023, -1 << 1022);
53724611 try testArgs(u256, i1023, -1);
53734612 try testArgs(u256, i1023, 0);
5374 try testArgs(i512, i1023, -1 << 1022);
5375 try testArgs(i512, i1023, -1);
5376 try testArgs(i512, i1023, 0);
53774613 try testArgs(u512, i1023, -1 << 1022);
53784614 try testArgs(u512, i1023, -1);
53794615 try testArgs(u512, i1023, 0);
5380 try testArgs(i1024, i1023, -1 << 1022);
5381 try testArgs(i1024, i1023, -1);
5382 try testArgs(i1024, i1023, 0);
53834616 try testArgs(u1024, i1023, -1 << 1022);
53844617 try testArgs(u1024, i1023, -1);
53854618 try testArgs(u1024, i1023, 0);
53864619 try testArgs(i8, u1023, 0);
53874620 try testArgs(i8, u1023, 1 << 0);
53884621 try testArgs(i8, u1023, 1 << 1022);
5389 try testArgs(u8, u1023, 0);
5390 try testArgs(u8, u1023, 1 << 0);
5391 try testArgs(u8, u1023, 1 << 1022);
53924622 try testArgs(i16, u1023, 0);
53934623 try testArgs(i16, u1023, 1 << 0);
53944624 try testArgs(i16, u1023, 1 << 1022);
5395 try testArgs(u16, u1023, 0);
5396 try testArgs(u16, u1023, 1 << 0);
5397 try testArgs(u16, u1023, 1 << 1022);
53984625 try testArgs(i32, u1023, 0);
53994626 try testArgs(i32, u1023, 1 << 0);
54004627 try testArgs(i32, u1023, 1 << 1022);
5401 try testArgs(u32, u1023, 0);
5402 try testArgs(u32, u1023, 1 << 0);
5403 try testArgs(u32, u1023, 1 << 1022);
54044628 try testArgs(i64, u1023, 0);
54054629 try testArgs(i64, u1023, 1 << 0);
54064630 try testArgs(i64, u1023, 1 << 1022);
5407 try testArgs(u64, u1023, 0);
5408 try testArgs(u64, u1023, 1 << 0);
5409 try testArgs(u64, u1023, 1 << 1022);
54104631 try testArgs(i128, u1023, 0);
54114632 try testArgs(i128, u1023, 1 << 0);
54124633 try testArgs(i128, u1023, 1 << 1022);
5413 try testArgs(u128, u1023, 0);
5414 try testArgs(u128, u1023, 1 << 0);
5415 try testArgs(u128, u1023, 1 << 1022);
54164634 try testArgs(i256, u1023, 0);
54174635 try testArgs(i256, u1023, 1 << 0);
54184636 try testArgs(i256, u1023, 1 << 1022);
5419 try testArgs(u256, u1023, 0);
5420 try testArgs(u256, u1023, 1 << 0);
5421 try testArgs(u256, u1023, 1 << 1022);
54224637 try testArgs(i512, u1023, 0);
54234638 try testArgs(i512, u1023, 1 << 0);
54244639 try testArgs(i512, u1023, 1 << 1022);
5425 try testArgs(u512, u1023, 0);
5426 try testArgs(u512, u1023, 1 << 0);
5427 try testArgs(u512, u1023, 1 << 1022);
54284640 try testArgs(i1024, u1023, 0);
54294641 try testArgs(i1024, u1023, 1 << 0);
54304642 try testArgs(i1024, u1023, 1 << 1022);
5431 try testArgs(u1024, u1023, 0);
5432 try testArgs(u1024, u1023, 1 << 0);
5433 try testArgs(u1024, u1023, 1 << 1022);
54344643
5435 try testArgs(i8, i1024, -1 << 1023);
5436 try testArgs(i8, i1024, -1);
5437 try testArgs(i8, i1024, 0);
54384644 try testArgs(u8, i1024, -1 << 1023);
54394645 try testArgs(u8, i1024, -1);
54404646 try testArgs(u8, i1024, 0);
5441 try testArgs(i16, i1024, -1 << 1023);
5442 try testArgs(i16, i1024, -1);
5443 try testArgs(i16, i1024, 0);
54444647 try testArgs(u16, i1024, -1 << 1023);
54454648 try testArgs(u16, i1024, -1);
54464649 try testArgs(u16, i1024, 0);
5447 try testArgs(i32, i1024, -1 << 1023);
5448 try testArgs(i32, i1024, -1);
5449 try testArgs(i32, i1024, 0);
54504650 try testArgs(u32, i1024, -1 << 1023);
54514651 try testArgs(u32, i1024, -1);
54524652 try testArgs(u32, i1024, 0);
5453 try testArgs(i64, i1024, -1 << 1023);
5454 try testArgs(i64, i1024, -1);
5455 try testArgs(i64, i1024, 0);
54564653 try testArgs(u64, i1024, -1 << 1023);
54574654 try testArgs(u64, i1024, -1);
54584655 try testArgs(u64, i1024, 0);
5459 try testArgs(i128, i1024, -1 << 1023);
5460 try testArgs(i128, i1024, -1);
5461 try testArgs(i128, i1024, 0);
54624656 try testArgs(u128, i1024, -1 << 1023);
54634657 try testArgs(u128, i1024, -1);
54644658 try testArgs(u128, i1024, 0);
5465 try testArgs(i256, i1024, -1 << 1023);
5466 try testArgs(i256, i1024, -1);
5467 try testArgs(i256, i1024, 0);
54684659 try testArgs(u256, i1024, -1 << 1023);
54694660 try testArgs(u256, i1024, -1);
54704661 try testArgs(u256, i1024, 0);
5471 try testArgs(i512, i1024, -1 << 1023);
5472 try testArgs(i512, i1024, -1);
5473 try testArgs(i512, i1024, 0);
54744662 try testArgs(u512, i1024, -1 << 1023);
54754663 try testArgs(u512, i1024, -1);
54764664 try testArgs(u512, i1024, 0);
5477 try testArgs(i1024, i1024, -1 << 1023);
5478 try testArgs(i1024, i1024, -1);
5479 try testArgs(i1024, i1024, 0);
54804665 try testArgs(u1024, i1024, -1 << 1023);
54814666 try testArgs(u1024, i1024, -1);
54824667 try testArgs(u1024, i1024, 0);
54834668 try testArgs(i8, u1024, 0);
54844669 try testArgs(i8, u1024, 1 << 0);
54854670 try testArgs(i8, u1024, 1 << 1023);
5486 try testArgs(u8, u1024, 0);
5487 try testArgs(u8, u1024, 1 << 0);
5488 try testArgs(u8, u1024, 1 << 1023);
54894671 try testArgs(i16, u1024, 0);
54904672 try testArgs(i16, u1024, 1 << 0);
54914673 try testArgs(i16, u1024, 1 << 1023);
5492 try testArgs(u16, u1024, 0);
5493 try testArgs(u16, u1024, 1 << 0);
5494 try testArgs(u16, u1024, 1 << 1023);
54954674 try testArgs(i32, u1024, 0);
54964675 try testArgs(i32, u1024, 1 << 0);
54974676 try testArgs(i32, u1024, 1 << 1023);
5498 try testArgs(u32, u1024, 0);
5499 try testArgs(u32, u1024, 1 << 0);
5500 try testArgs(u32, u1024, 1 << 1023);
55014677 try testArgs(i64, u1024, 0);
55024678 try testArgs(i64, u1024, 1 << 0);
55034679 try testArgs(i64, u1024, 1 << 1023);
5504 try testArgs(u64, u1024, 0);
5505 try testArgs(u64, u1024, 1 << 0);
5506 try testArgs(u64, u1024, 1 << 1023);
55074680 try testArgs(i128, u1024, 0);
55084681 try testArgs(i128, u1024, 1 << 0);
55094682 try testArgs(i128, u1024, 1 << 1023);
5510 try testArgs(u128, u1024, 0);
5511 try testArgs(u128, u1024, 1 << 0);
5512 try testArgs(u128, u1024, 1 << 1023);
55134683 try testArgs(i256, u1024, 0);
55144684 try testArgs(i256, u1024, 1 << 0);
55154685 try testArgs(i256, u1024, 1 << 1023);
5516 try testArgs(u256, u1024, 0);
5517 try testArgs(u256, u1024, 1 << 0);
5518 try testArgs(u256, u1024, 1 << 1023);
55194686 try testArgs(i512, u1024, 0);
55204687 try testArgs(i512, u1024, 1 << 0);
55214688 try testArgs(i512, u1024, 1 << 1023);
5522 try testArgs(u512, u1024, 0);
5523 try testArgs(u512, u1024, 1 << 0);
5524 try testArgs(u512, u1024, 1 << 1023);
55254689 try testArgs(i1024, u1024, 0);
55264690 try testArgs(i1024, u1024, 1 << 0);
55274691 try testArgs(i1024, u1024, 1 << 1023);
5528 try testArgs(u1024, u1024, 0);
5529 try testArgs(u1024, u1024, 1 << 0);
5530 try testArgs(u1024, u1024, 1 << 1023);
55314692
5532 try testArgs(i8, i1025, -1 << 1024);
5533 try testArgs(i8, i1025, -1);
5534 try testArgs(i8, i1025, 0);
55354693 try testArgs(u8, i1025, -1 << 1024);
55364694 try testArgs(u8, i1025, -1);
55374695 try testArgs(u8, i1025, 0);
5538 try testArgs(i16, i1025, -1 << 1024);
5539 try testArgs(i16, i1025, -1);
5540 try testArgs(i16, i1025, 0);
55414696 try testArgs(u16, i1025, -1 << 1024);
55424697 try testArgs(u16, i1025, -1);
55434698 try testArgs(u16, i1025, 0);
5544 try testArgs(i32, i1025, -1 << 1024);
5545 try testArgs(i32, i1025, -1);
5546 try testArgs(i32, i1025, 0);
55474699 try testArgs(u32, i1025, -1 << 1024);
55484700 try testArgs(u32, i1025, -1);
55494701 try testArgs(u32, i1025, 0);
5550 try testArgs(i64, i1025, -1 << 1024);
5551 try testArgs(i64, i1025, -1);
5552 try testArgs(i64, i1025, 0);
55534702 try testArgs(u64, i1025, -1 << 1024);
55544703 try testArgs(u64, i1025, -1);
55554704 try testArgs(u64, i1025, 0);
5556 try testArgs(i128, i1025, -1 << 1024);
5557 try testArgs(i128, i1025, -1);
5558 try testArgs(i128, i1025, 0);
55594705 try testArgs(u128, i1025, -1 << 1024);
55604706 try testArgs(u128, i1025, -1);
55614707 try testArgs(u128, i1025, 0);
5562 try testArgs(i256, i1025, -1 << 1024);
5563 try testArgs(i256, i1025, -1);
5564 try testArgs(i256, i1025, 0);
55654708 try testArgs(u256, i1025, -1 << 1024);
55664709 try testArgs(u256, i1025, -1);
55674710 try testArgs(u256, i1025, 0);
5568 try testArgs(i512, i1025, -1 << 1024);
5569 try testArgs(i512, i1025, -1);
5570 try testArgs(i512, i1025, 0);
55714711 try testArgs(u512, i1025, -1 << 1024);
55724712 try testArgs(u512, i1025, -1);
55734713 try testArgs(u512, i1025, 0);
5574 try testArgs(i1024, i1025, -1 << 1024);
5575 try testArgs(i1024, i1025, -1);
5576 try testArgs(i1024, i1025, 0);
55774714 try testArgs(u1024, i1025, -1 << 1024);
55784715 try testArgs(u1024, i1025, -1);
55794716 try testArgs(u1024, i1025, 0);
55804717 try testArgs(i8, u1025, 0);
55814718 try testArgs(i8, u1025, 1 << 0);
55824719 try testArgs(i8, u1025, 1 << 1024);
5583 try testArgs(u8, u1025, 0);
5584 try testArgs(u8, u1025, 1 << 0);
5585 try testArgs(u8, u1025, 1 << 1024);
55864720 try testArgs(i16, u1025, 0);
55874721 try testArgs(i16, u1025, 1 << 0);
55884722 try testArgs(i16, u1025, 1 << 1024);
5589 try testArgs(u16, u1025, 0);
5590 try testArgs(u16, u1025, 1 << 0);
5591 try testArgs(u16, u1025, 1 << 1024);
55924723 try testArgs(i32, u1025, 0);
55934724 try testArgs(i32, u1025, 1 << 0);
55944725 try testArgs(i32, u1025, 1 << 1024);
5595 try testArgs(u32, u1025, 0);
5596 try testArgs(u32, u1025, 1 << 0);
5597 try testArgs(u32, u1025, 1 << 1024);
55984726 try testArgs(i64, u1025, 0);
55994727 try testArgs(i64, u1025, 1 << 0);
56004728 try testArgs(i64, u1025, 1 << 1024);
5601 try testArgs(u64, u1025, 0);
5602 try testArgs(u64, u1025, 1 << 0);
5603 try testArgs(u64, u1025, 1 << 1024);
56044729 try testArgs(i128, u1025, 0);
56054730 try testArgs(i128, u1025, 1 << 0);
56064731 try testArgs(i128, u1025, 1 << 1024);
5607 try testArgs(u128, u1025, 0);
5608 try testArgs(u128, u1025, 1 << 0);
5609 try testArgs(u128, u1025, 1 << 1024);
56104732 try testArgs(i256, u1025, 0);
56114733 try testArgs(i256, u1025, 1 << 0);
56124734 try testArgs(i256, u1025, 1 << 1024);
5613 try testArgs(u256, u1025, 0);
5614 try testArgs(u256, u1025, 1 << 0);
5615 try testArgs(u256, u1025, 1 << 1024);
56164735 try testArgs(i512, u1025, 0);
56174736 try testArgs(i512, u1025, 1 << 0);
56184737 try testArgs(i512, u1025, 1 << 1024);
5619 try testArgs(u512, u1025, 0);
5620 try testArgs(u512, u1025, 1 << 0);
5621 try testArgs(u512, u1025, 1 << 1024);
56224738 try testArgs(i1024, u1025, 0);
56234739 try testArgs(i1024, u1025, 1 << 0);
56244740 try testArgs(i1024, u1025, 1 << 1024);
5625 try testArgs(u1024, u1025, 0);
5626 try testArgs(u1024, u1025, 1 << 0);
5627 try testArgs(u1024, u1025, 1 << 1024);
56284741 }
56294742 fn testFloats() !void {
56304743 @setEvalBranchQuota(3_100);
......@@ -10804,6 +9917,46 @@ test clz {
108049917 try test_clz.testIntVectors();
108059918}
108069919
9920inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type) Result {
9921 const res_info = switch (@typeInfo(Result)) {
9922 .int => |info| info,
9923 .vector => |info| @typeInfo(info.child).int,
9924 else => @compileError(@typeName(Result)),
9925 };
9926 const rhs_info = switch (@typeInfo(Type)) {
9927 .int => |info| info,
9928 .vector => |info| @typeInfo(info.child).int,
9929 else => @compileError(@typeName(Type)),
9930 };
9931 const min_bits = @min(res_info.bits, rhs_info.bits);
9932 return @intCast(switch (@as(union(enum) {
9933 shift: std.math.Log2Int(Type),
9934 mask: std.math.Log2IntCeil(Type),
9935 }, switch (res_info.signedness) {
9936 .signed => switch (rhs_info.signedness) {
9937 .signed => .{ .shift = rhs_info.bits - min_bits },
9938 .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) },
9939 },
9940 .unsigned => switch (rhs_info.signedness) {
9941 .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) },
9942 .unsigned => .{ .mask = min_bits },
9943 },
9944 })) {
9945 // TODO: if (bits == 0) rhs else rhs >> bits,
9946 .shift => |bits| if (bits == 0)
9947 rhs
9948 else if (rhs < 0)
9949 rhs | std.math.minInt(Type) >> bits
9950 else
9951 rhs & std.math.maxInt(Type) >> bits,
9952 .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & (1 << bits) - 1,
9953 });
9954}
9955test intCast {
9956 const test_int_cast = cast(intCast, .{});
9957 try test_int_cast.testInts();
9958}
9959
108079960inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type) Result {
108089961 return @floatCast(rhs);
108099962}