authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-26 00:19:47+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-26 00:19:47+02:00
loga1c410d512fe513ca7ae4f11d9cbd59273284efa
tree5c7f16ed4cac46550694f06a3d8ee0beb186edb4
parent8520e4e286a82944a3902b10dad32886e0efd2fa
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

Revert "x86_64: improve support for large enums"

This reverts commit 8520e4e286a82944a3902b10dad32886e0efd2fa.

2 files changed, 45 insertions(+), 239 deletions(-)

src/arch/x86_64/CodeGen.zig+45-220
...@@ -166722,33 +166722,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166722,33 +166722,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166722 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166722 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166723 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },166723 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },
166724 } },166724 } },
166725 }, .{
166726 .required_features = .{ .avx, null, null, null },
166727 .src_constraints = .{ .any_int, .any, .any },
166728 .patterns = &.{
166729 .{ .src = .{ .to_mem, .none, .none } },
166730 },
166731 .call_frame = .{ .alignment = .@"32" },
166732 .extra_temps = .{
166733 .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } },
166734 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
166735 .unused,
166736 .unused,
166737 .unused,
166738 .unused,
166739 .unused,
166740 .unused,
166741 .unused,
166742 .unused,
166743 .unused,
166744 },
166745 .dst_temps = .{ .{ .cc = .nz }, .unused },
166746 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
166747 .each = .{ .once = &.{
166748 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
166749 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
166750 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
166751 } },
166752 }, .{166725 }, .{
166753 .required_features = .{ .sse, null, null, null },166726 .required_features = .{ .sse, null, null, null },
166754 .src_constraints = .{ .{ .int = .gpr }, .any, .any },166727 .src_constraints = .{ .{ .int = .gpr }, .any, .any },
...@@ -166775,33 +166748,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166775,33 +166748,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166775 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166748 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166776 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },166749 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },
166777 } },166750 } },
166778 }, .{
166779 .required_features = .{ .sse, null, null, null },
166780 .src_constraints = .{ .any_int, .any, .any },
166781 .patterns = &.{
166782 .{ .src = .{ .to_mem, .none, .none } },
166783 },
166784 .call_frame = .{ .alignment = .@"16" },
166785 .extra_temps = .{
166786 .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } },
166787 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
166788 .unused,
166789 .unused,
166790 .unused,
166791 .unused,
166792 .unused,
166793 .unused,
166794 .unused,
166795 .unused,
166796 .unused,
166797 },
166798 .dst_temps = .{ .{ .cc = .nz }, .unused },
166799 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
166800 .each = .{ .once = &.{
166801 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
166802 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
166803 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
166804 } },
166805 }, .{166751 }, .{
166806 .src_constraints = .{ .{ .int = .gpr }, .any, .any },166752 .src_constraints = .{ .{ .int = .gpr }, .any, .any },
166807 .patterns = &.{166753 .patterns = &.{
...@@ -166827,32 +166773,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166827,32 +166773,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166827 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166773 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166828 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },166774 .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ },
166829 } },166775 } },
166830 }, .{
166831 .src_constraints = .{ .any_int, .any, .any },
166832 .patterns = &.{
166833 .{ .src = .{ .to_mem, .none, .none } },
166834 },
166835 .call_frame = .{ .alignment = .@"8" },
166836 .extra_temps = .{
166837 .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } },
166838 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
166839 .unused,
166840 .unused,
166841 .unused,
166842 .unused,
166843 .unused,
166844 .unused,
166845 .unused,
166846 .unused,
166847 .unused,
166848 },
166849 .dst_temps = .{ .{ .cc = .nz }, .unused },
166850 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
166851 .each = .{ .once = &.{
166852 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
166853 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
166854 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
166855 } },
166856 } }) catch |err| switch (err) {166776 } }) catch |err| switch (err) {
166857 error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{166777 error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{
166858 @tagName(air_tag),166778 @tagName(air_tag),
...@@ -166892,32 +166812,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166892,32 +166812,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166892 .each = .{ .once = &.{166812 .each = .{ .once = &.{
166893 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166813 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166894 } },166814 } },
166895 }, .{
166896 .required_features = .{ .avx, null, null, null },
166897 .src_constraints = .{ .any_int, .any, .any },
166898 .patterns = &.{
166899 .{ .src = .{ .to_mem, .none, .none } },
166900 },
166901 .call_frame = .{ .alignment = .@"32" },
166902 .extra_temps = .{
166903 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
166904 .unused,
166905 .unused,
166906 .unused,
166907 .unused,
166908 .unused,
166909 .unused,
166910 .unused,
166911 .unused,
166912 .unused,
166913 .unused,
166914 },
166915 .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused },
166916 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
166917 .each = .{ .once = &.{
166918 .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ },
166919 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166920 } },
166921 }, .{166815 }, .{
166922 .required_features = .{ .sse, null, null, null },166816 .required_features = .{ .sse, null, null, null },
166923 .src_constraints = .{ .{ .int = .gpr }, .any, .any },166817 .src_constraints = .{ .{ .int = .gpr }, .any, .any },
...@@ -166943,32 +166837,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166943,32 +166837,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166943 .each = .{ .once = &.{166837 .each = .{ .once = &.{
166944 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166838 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166945 } },166839 } },
166946 }, .{
166947 .required_features = .{ .sse, null, null, null },
166948 .src_constraints = .{ .any_int, .any, .any },
166949 .patterns = &.{
166950 .{ .src = .{ .to_mem, .none, .none } },
166951 },
166952 .call_frame = .{ .alignment = .@"16" },
166953 .extra_temps = .{
166954 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
166955 .unused,
166956 .unused,
166957 .unused,
166958 .unused,
166959 .unused,
166960 .unused,
166961 .unused,
166962 .unused,
166963 .unused,
166964 .unused,
166965 },
166966 .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused },
166967 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
166968 .each = .{ .once = &.{
166969 .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ },
166970 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166971 } },
166972 }, .{166840 }, .{
166973 .src_constraints = .{ .{ .int = .gpr }, .any, .any },166841 .src_constraints = .{ .{ .int = .gpr }, .any, .any },
166974 .patterns = &.{166842 .patterns = &.{
...@@ -166993,32 +166861,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -166993,32 +166861,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
166993 .each = .{ .once = &.{166861 .each = .{ .once = &.{
166994 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },166862 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
166995 } },166863 } },
166996 }, .{
166997 .required_features = .{ .sse, null, null, null },
166998 .src_constraints = .{ .any_int, .any, .any },
166999 .patterns = &.{
167000 .{ .src = .{ .to_mem, .none, .none } },
167001 },
167002 .call_frame = .{ .alignment = .@"8" },
167003 .extra_temps = .{
167004 .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } },
167005 .unused,
167006 .unused,
167007 .unused,
167008 .unused,
167009 .unused,
167010 .unused,
167011 .unused,
167012 .unused,
167013 .unused,
167014 .unused,
167015 },
167016 .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused },
167017 .clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
167018 .each = .{ .once = &.{
167019 .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ },
167020 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
167021 } },
167022 } }) catch |err| switch (err) {166864 } }) catch |err| switch (err) {
167023 error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{166865 error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{
167024 @tagName(air_tag),166866 @tagName(air_tag),
...@@ -167027,7 +166869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -167027,7 +166869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
167027 }),166869 }),
167028 else => |e| return e,166870 else => |e| return e,
167029 };166871 };
167030 if (res[0].tracking(cg).short != .register_pair) try ops[0].toPair(&res[0], cg);166872 try ops[0].toPair(&res[0], cg);
167031 try res[0].finish(inst, &.{un_op}, &ops, cg);166873 try res[0].finish(inst, &.{un_op}, &ops, cg);
167032 },166874 },
167033 .error_name => |air_tag| {166875 .error_name => |air_tag| {
...@@ -169398,43 +169240,32 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {...@@ -169398,43 +169240,32 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {
169398 const enum_ty: Type = .fromInterned(lazy_sym.ty);169240 const enum_ty: Type = .fromInterned(lazy_sym.ty);
169399 wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)});169241 wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)});
169400169242
169401 const ret_regs = abi.getCAbiIntReturnRegs(.auto)[0..2].*;169243 const param_regs = abi.getCAbiIntParamRegs(.auto);
169402 const ret_locks = cg.register_manager.lockRegsAssumeUnused(2, ret_regs);169244 const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*);
169403 defer for (ret_locks) |lock| cg.register_manager.unlockReg(lock);169245 defer for (param_locks) |lock| cg.register_manager.unlockReg(lock);
169404
169405 const param_reg = abi.getCAbiIntParamRegs(.auto)[0];
169406 const param_lock = cg.register_manager.lockReg(param_reg);
169407 defer if (param_lock) |lock| cg.register_manager.unlockReg(lock);
169408169246
169409 const ret_mcv: MCValue = .{ .register_pair = ret_regs };169247 const ret_mcv: MCValue = .{ .register_pair = param_regs[0..2].* };
169248 var enum_temp = try cg.tempInit(enum_ty, .{ .register = param_regs[0] });
169410169249
169411 const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp);169250 const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp);
169412 const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg);169251 const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg);
169413 defer cg.register_manager.unlockReg(data_lock);169252 defer cg.register_manager.unlockReg(data_lock);
169414 try cg.asmRegisterMemory(.{ ._, .lea }, data_reg.to64(), .{169253 try cg.genLazySymbolRef(.lea, data_reg, .{ .kind = .const_data, .ty = lazy_sym.ty });
169415 .base = .{ .lazy_sym = .{ .kind = .const_data, .ty = lazy_sym.ty } },
169416 });
169417169254
169418 var data_off: i32 = 0;169255 var data_off: i32 = 0;
169419 const reset_index = cg.next_temp_index;169256 const reset_index = cg.next_temp_index;
169420 const tag_names = ip.loadEnumType(lazy_sym.ty).names;169257 const tag_names = ip.loadEnumType(lazy_sym.ty).names;
169421 for (0..tag_names.len) |tag_index| {169258 for (0..tag_names.len) |tag_index| {
169422 var enum_temp = try cg.tempInit(enum_ty, if (enum_ty.abiSize(zcu) <= @as(u4, switch (cg.target.cpu.arch) {
169423 else => unreachable,
169424 .x86 => 4,
169425 .x86_64 => 8,
169426 })) .{ .register = param_reg } else .{ .indirect = .{ .reg = param_reg } });
169427
169428 const tag_name_len = tag_names.get(ip)[tag_index].length(ip);169259 const tag_name_len = tag_names.get(ip)[tag_index].length(ip);
169429 var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index)));169260 var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index)));
169430 const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) {169261 const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) {
169431 error.SelectFailed => unreachable,169262 error.SelectFailed => unreachable,
169432 else => |e| return e,169263 else => |e| return e,
169433 };169264 };
169434 try enum_temp.die(cg);
169435 try tag_temp.die(cg);169265 try tag_temp.die(cg);
169436 const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined);169266 const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined);
169437 try cc_temp.die(cg);169267 try cc_temp.die(cg);
169268 try cg.resetTemps(reset_index);
169438169269
169439 try cg.genSetReg(169270 try cg.genSetReg(
169440 ret_mcv.register_pair[0],169271 ret_mcv.register_pair[0],
...@@ -169448,9 +169279,8 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {...@@ -169448,9 +169279,8 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {
169448 cg.performReloc(skip_reloc);169279 cg.performReloc(skip_reloc);
169449169280
169450 data_off += @intCast(tag_name_len + 1);169281 data_off += @intCast(tag_name_len + 1);
169451
169452 try cg.resetTemps(reset_index);
169453 }169282 }
169283 try enum_temp.die(cg);
169454169284
169455 try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{});169285 try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{});
169456 try cg.asmOpOnly(.{ ._, .ret });169286 try cg.asmOpOnly(.{ ._, .ret });
...@@ -169459,16 +169289,12 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {...@@ -169459,16 +169289,12 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void {
169459 const err_ty: Type = .fromInterned(lazy_sym.ty);169289 const err_ty: Type = .fromInterned(lazy_sym.ty);
169460 wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)});169290 wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)});
169461169291
169462 const ret_reg = abi.getCAbiIntReturnRegs(.auto)[0];169292 const param_regs = abi.getCAbiIntParamRegs(.auto);
169463 const ret_lock = cg.register_manager.lockRegAssumeUnused(ret_reg);169293 const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*);
169464 defer cg.register_manager.unlockReg(ret_lock);169294 defer for (param_locks) |lock| cg.register_manager.unlockReg(lock);
169465
169466 const param_reg = abi.getCAbiIntParamRegs(.auto)[0];
169467 const param_lock = cg.register_manager.lockReg(param_reg);
169468 defer if (param_lock) |lock| cg.register_manager.unlockReg(lock);
169469169295
169470 const ret_mcv: MCValue = .{ .register = ret_reg };169296 const ret_mcv: MCValue = .{ .register = param_regs[0] };
169471 const err_mcv: MCValue = .{ .register = param_reg };169297 const err_mcv: MCValue = .{ .register = param_regs[0] };
169472 var err_temp = try cg.tempInit(err_ty, err_mcv);169298 var err_temp = try cg.tempInit(err_ty, err_mcv);
169473169299
169474 const ExpectedContents = [32]Mir.Inst.Index;169300 const ExpectedContents = [32]Mir.Inst.Index;
...@@ -182183,6 +182009,37 @@ fn genInlineMemset(...@@ -182183,6 +182009,37 @@ fn genInlineMemset(
182183 try self.asmOpOnly(.{ .@"rep _sb", .sto });182009 try self.asmOpOnly(.{ .@"rep _sb", .sto });
182184}182010}
182185182011
182012fn genLazySymbolRef(
182013 self: *CodeGen,
182014 comptime tag: Mir.Inst.Tag,
182015 reg: Register,
182016 lazy_sym: link.File.LazySymbol,
182017) InnerError!void {
182018 if (self.mod.pic) {
182019 switch (tag) {
182020 .lea, .call => try self.genSetReg(reg, .usize, .{
182021 .lea_lazy_sym = lazy_sym,
182022 }, .{}),
182023 .mov => try self.genSetReg(reg, .usize, .{
182024 .lea_lazy_sym = lazy_sym,
182025 }, .{}),
182026 else => unreachable,
182027 }
182028 switch (tag) {
182029 .lea, .mov => {},
182030 .call => try self.asmRegister(.{ ._, .call }, reg),
182031 else => unreachable,
182032 }
182033 } else switch (tag) {
182034 .lea, .mov => try self.asmRegisterMemory(.{ ._, tag }, reg.to64(), .{
182035 .base = .{ .lazy_sym = lazy_sym },
182036 .mod = .{ .rm = .{ .size = .qword } },
182037 }),
182038 .call => try self.asmImmediate(.{ ._, .call }, .{ .lazy_sym = lazy_sym }),
182039 else => unreachable,
182040 }
182041}
182042
182186fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void {182043fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void {
182187 const pt = self.pt;182044 const pt = self.pt;
182188 const zcu = pt.zcu;182045 const zcu = pt.zcu;
...@@ -193794,11 +193651,9 @@ const Select = struct {...@@ -193794,11 +193651,9 @@ const Select = struct {
193794 const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } };193651 const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } };
193795 const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 };193652 const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 };
193796 const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 };193653 const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 };
193797 const tmp0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 1 };
193798 const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 };193654 const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 };
193799 const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 };193655 const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 };
193800 const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 };193656 const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 };
193801 const tmp0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 2 };
193802 const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 };193657 const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 };
193803193658
193804 const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } };193659 const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } };
...@@ -193814,11 +193669,9 @@ const Select = struct {...@@ -193814,11 +193669,9 @@ const Select = struct {
193814 const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } };193669 const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } };
193815 const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 };193670 const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 };
193816 const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 };193671 const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 };
193817 const tmp1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 1 };
193818 const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 };193672 const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 };
193819 const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 };193673 const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 };
193820 const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 };193674 const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 };
193821 const tmp1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 2 };
193822 const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 };193675 const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 };
193823193676
193824 const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } };193677 const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } };
...@@ -193834,11 +193687,9 @@ const Select = struct {...@@ -193834,11 +193687,9 @@ const Select = struct {
193834 const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } };193687 const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } };
193835 const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 };193688 const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 };
193836 const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 };193689 const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 };
193837 const tmp2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 1 };
193838 const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 };193690 const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 };
193839 const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 };193691 const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 };
193840 const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 };193692 const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 };
193841 const tmp2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 2 };
193842 const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 };193693 const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 };
193843193694
193844 const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } };193695 const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } };
...@@ -193854,11 +193705,9 @@ const Select = struct {...@@ -193854,11 +193705,9 @@ const Select = struct {
193854 const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } };193705 const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } };
193855 const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 };193706 const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 };
193856 const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 };193707 const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 };
193857 const tmp3p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 1 };
193858 const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 };193708 const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 };
193859 const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 };193709 const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 };
193860 const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 };193710 const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 };
193861 const tmp3p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 2 };
193862 const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 };193711 const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 };
193863193712
193864 const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } };193713 const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } };
...@@ -193874,11 +193723,9 @@ const Select = struct {...@@ -193874,11 +193723,9 @@ const Select = struct {
193874 const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } };193723 const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } };
193875 const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 };193724 const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 };
193876 const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 };193725 const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 };
193877 const tmp4p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 1 };
193878 const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 };193726 const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 };
193879 const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 };193727 const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 };
193880 const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 };193728 const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 };
193881 const tmp4p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 2 };
193882 const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 };193729 const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 };
193883193730
193884 const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } };193731 const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } };
...@@ -193894,11 +193741,9 @@ const Select = struct {...@@ -193894,11 +193741,9 @@ const Select = struct {
193894 const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } };193741 const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } };
193895 const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 };193742 const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 };
193896 const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 };193743 const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 };
193897 const tmp5p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 1 };
193898 const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 };193744 const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 };
193899 const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 };193745 const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 };
193900 const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 };193746 const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 };
193901 const tmp5p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 2 };
193902 const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 };193747 const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 };
193903193748
193904 const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } };193749 const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } };
...@@ -193914,11 +193759,9 @@ const Select = struct {...@@ -193914,11 +193759,9 @@ const Select = struct {
193914 const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } };193759 const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } };
193915 const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 };193760 const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 };
193916 const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 };193761 const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 };
193917 const tmp6p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 1 };
193918 const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 };193762 const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 };
193919 const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 };193763 const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 };
193920 const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 };193764 const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 };
193921 const tmp6p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 2 };
193922 const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 };193765 const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 };
193923193766
193924 const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } };193767 const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } };
...@@ -193934,11 +193777,9 @@ const Select = struct {...@@ -193934,11 +193777,9 @@ const Select = struct {
193934 const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } };193777 const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } };
193935 const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 };193778 const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 };
193936 const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 };193779 const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 };
193937 const tmp7p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 1 };
193938 const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 };193780 const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 };
193939 const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 };193781 const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 };
193940 const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 };193782 const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 };
193941 const tmp7p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 2 };
193942 const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 };193783 const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 };
193943193784
193944 const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } };193785 const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } };
...@@ -193954,11 +193795,9 @@ const Select = struct {...@@ -193954,11 +193795,9 @@ const Select = struct {
193954 const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } };193795 const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } };
193955 const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 };193796 const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 };
193956 const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 };193797 const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 };
193957 const tmp8p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 1 };
193958 const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 };193798 const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 };
193959 const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 };193799 const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 };
193960 const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 };193800 const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 };
193961 const tmp8p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 2 };
193962 const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 };193801 const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 };
193963193802
193964 const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } };193803 const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } };
...@@ -193974,11 +193813,9 @@ const Select = struct {...@@ -193974,11 +193813,9 @@ const Select = struct {
193974 const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } };193813 const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } };
193975 const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 };193814 const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 };
193976 const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 };193815 const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 };
193977 const tmp9p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 1 };
193978 const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 };193816 const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 };
193979 const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 };193817 const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 };
193980 const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 };193818 const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 };
193981 const tmp9p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 2 };
193982 const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 };193819 const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 };
193983193820
193984 const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } };193821 const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } };
...@@ -193994,11 +193831,9 @@ const Select = struct {...@@ -193994,11 +193831,9 @@ const Select = struct {
193994 const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } };193831 const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } };
193995 const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 };193832 const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 };
193996 const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 };193833 const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 };
193997 const tmp10p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 1 };
193998 const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 };193834 const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 };
193999 const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 };193835 const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 };
194000 const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 };193836 const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 };
194001 const tmp10p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 2 };
194002 const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 };193837 const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 };
194003193838
194004 const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } };193839 const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } };
...@@ -194014,11 +193849,9 @@ const Select = struct {...@@ -194014,11 +193849,9 @@ const Select = struct {
194014 const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } };193849 const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } };
194015 const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 };193850 const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 };
194016 const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 };193851 const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 };
194017 const dst0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 1 };
194018 const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 };193852 const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 };
194019 const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 };193853 const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 };
194020 const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 };193854 const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 };
194021 const dst0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 2 };
194022 const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 };193855 const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 };
194023193856
194024 const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } };193857 const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } };
...@@ -194034,11 +193867,9 @@ const Select = struct {...@@ -194034,11 +193867,9 @@ const Select = struct {
194034 const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } };193867 const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } };
194035 const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 };193868 const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 };
194036 const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 };193869 const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 };
194037 const dst1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 1 };
194038 const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 };193870 const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 };
194039 const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 };193871 const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 };
194040 const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 };193872 const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 };
194041 const dst1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 2 };
194042 const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 };193873 const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 };
194043193874
194044 const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } };193875 const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } };
...@@ -194054,11 +193885,9 @@ const Select = struct {...@@ -194054,11 +193885,9 @@ const Select = struct {
194054 const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } };193885 const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } };
194055 const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 };193886 const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 };
194056 const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 };193887 const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 };
194057 const src0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 1 };
194058 const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 };193888 const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 };
194059 const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 };193889 const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 };
194060 const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 };193890 const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 };
194061 const src0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 2 };
194062 const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 };193891 const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 };
194063193892
194064 const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } };193893 const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } };
...@@ -194074,11 +193903,9 @@ const Select = struct {...@@ -194074,11 +193903,9 @@ const Select = struct {
194074 const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } };193903 const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } };
194075 const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 };193904 const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 };
194076 const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 };193905 const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 };
194077 const src1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 1 };
194078 const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 };193906 const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 };
194079 const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 };193907 const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 };
194080 const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 };193908 const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 };
194081 const src1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 2 };
194082 const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 };193909 const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 };
194083193910
194084 const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } };193911 const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } };
...@@ -194094,11 +193921,9 @@ const Select = struct {...@@ -194094,11 +193921,9 @@ const Select = struct {
194094 const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } };193921 const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } };
194095 const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 };193922 const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 };
194096 const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 };193923 const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 };
194097 const src2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 1 };
194098 const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 };193924 const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 };
194099 const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 };193925 const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 };
194100 const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 };193926 const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 };
194101 const src2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 2 };
194102 const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 };193927 const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 };
194103193928
194104 fn si(imm: i32) Select.Operand {193929 fn si(imm: i32) Select.Operand {
test/behavior/enum.zig-19
...@@ -1065,25 +1065,6 @@ test "tag name with signed enum values" {...@@ -1065,25 +1065,6 @@ test "tag name with signed enum values" {
1065 try expect(mem.eql(u8, @tagName(b), "bravo"));1065 try expect(mem.eql(u8, @tagName(b), "bravo"));
1066}1066}
10671067
1068test "tag name with large enum values" {
1069 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1070 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
1071
1072 const Kdf = enum(u128) {
1073 aes_kdf = 0xea4f8ac1080d74bf60448a629af3d9c9,
1074 argon2d = 0x0c0ae303a4a9f7914b44298cdf6d63ef,
1075 argon2id = 0xe6a1f0c63efc3db27347db56198b299e,
1076 };
1077 var kdf: Kdf = .aes_kdf;
1078 try expect(mem.eql(u8, @tagName(kdf), "aes_kdf"));
1079 var argon2d_value: u128 = undefined;
1080 argon2d_value = @intFromEnum(Kdf.argon2d);
1081 kdf = @enumFromInt(argon2d_value);
1082 try expect(mem.eql(u8, @tagName(kdf), "argon2d"));
1083 kdf = .argon2id;
1084 try expect(mem.eql(u8, @tagName(kdf), "argon2id"));
1085}
1086
1087test "@tagName in callconv(.c) function" {1068test "@tagName in callconv(.c) function" {
1088 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1069 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1089 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;1070 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;