package core:rexcode/isa/arm64

⌘K
Ctrl+K
or
/

    Overview

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    Types

    Address_Mode ¶

    Address_Mode :: enum u8 {
    	OFFSET,         // [Xn, #imm]   (imm may be 0)
    	PRE_INDEXED,    // [Xn, #imm]!
    	POST_INDEXED,   // [Xn], #imm
    	REG_OFFSET,     // [Xn, Xm{, LSL #s}]
    	EXT_REG_OFFSET, // [Xn, Wm, SXTW|UXTW|SXTX #s]
    	LITERAL,        // PC-rel target (LDR literal)
    }

    Clobber ¶

    Clobber :: struct {
    	written:      Operand_Set,
    	// operand slots whose register/SIMD reg is written
    	read:         Operand_Set,
    	// operand slots whose register / mem-base is read
    	implicit_wr:  Clobber_Regs,
    	// implicit reg writes (LR on BL/BLR)
    	implicit_rd:  Clobber_Regs,
    	// implicit reg reads (LR on RET, SP on PAC*SP)
    	nzcv_wr:      NZCV_Flags,
    	// condition flags written (ADDS/SUBS/ANDS, CMP, FCMP, CCMP...)
    	nzcv_undef:   NZCV_Flags,
    	// condition flags left UNKNOWN — rare in A64, usually empty
    	nzcv_rd:      NZCV_Flags,
    	// condition flags read (B.cond, CSEL, ADC/SBC, CCMP...)
    	fpsr_wr:      FPSR_Flags,
    	// FP cumulative exception/saturation flags this op may raise
    	reads_fpcr:   bool,
    	// consumes the rounding mode / FP control from FPCR
    	writes_mem:   bool,
    	reads_mem:    bool,
    	side_effects: Side_Effects,
    }

    Clobber_Reg ¶

    Clobber_Reg :: enum u8 {
    	LR,  // x30, implicit link written by BL/BLR, implicitly read by RET
    	SP,  // sp,  implicit base on PACIASP/AUTIASP (and stack-relative forms)
    	X16, // implicit modifier register for PAC*1716 / AUT*1716
    	X17, // implicit pointer register (read-modify-write) for PAC*1716 / AUT*1716
    }

    Cond ¶

    Cond :: enum u8 {
    	EQ = 0x0, 
    	NE = 0x1, 
    	CS = 0x2, // unsigned higher or same (alias HS)
    	CC = 0x3, // unsigned lower (alias LO)
    	MI = 0x4, 
    	PL = 0x5, 
    	VS = 0x6, 
    	VC = 0x7, 
    	HI = 0x8, 
    	LS = 0x9, 
    	GE = 0xA, 
    	LT = 0xB, 
    	GT = 0xC, 
    	LE = 0xD, 
    	AL = 0xE, 
    	NV = 0xF, 
    }

    Related Procedures With Parameters

    Related Constants

    Decode_Entry ¶

    Decode_Entry :: struct #packed {
    	mnemonic: Mnemonic,
    	// 2
    	ops:      [5]Operand_Type,
    	// 4
    	enc:      [5]Operand_Encoding,
    	// 4
    	bits:     u32,
    	// 4
    	mask:     u32,
    	// 4
    	feature:  Feature,
    	// 1
    	flags:    Encoding_Flags,
    }

    Decode_Index ¶

    Decode_Index :: struct #packed {
    	start: u16,
    	count: u16,
    }

    Encode_Run ¶

    Encode_Run :: struct {
    	start: u32,
    	count: u32,
    }
     

    Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS.

    Encoding ¶

    Encoding :: struct #packed {
    	mnemonic: Mnemonic,
    	// 2
    	ops:      [5]Operand_Type,
    	// 4
    	enc:      [5]Operand_Encoding,
    	// 4
    	bits:     u32,
    	// 4
    	mask:     u32,
    	// 4
    	feature:  Feature,
    	// 1
    	flags:    Encoding_Flags,
    }

    Encoding_Flags ¶

    Encoding_Flags :: distinct bit_field u8 {
    	branch:         bool | 1,
    	cond_branch:    bool | 1,
    	writes_pc:      bool | 1,
    	sets_flags:     bool | 1,
    	is_64:          bool | 1,
    	explicit_count: u8 | 3,
    }

    Endianness ¶

    Endianness :: enum u8 {
    	LITTLE = 0, 
    	BIG    = 1, 
    }
     

    Endianness for storing 32-bit instructions to []u8. ARM defaults to little-endian instruction storage on every modern platform; BE-8 mode stores data BE but instructions LE; BE-32 (legacy) is rare on AArch64 and unsupported in mainstream toolchains.

    Related Procedures With Parameters

    Extend ¶

    Extend :: enum u8 {
    	UXTB = 0, 
    	UXTH = 1, 
    	UXTW = 2, 
    	UXTX = 3, 
    	SXTB = 4, 
    	SXTH = 5, 
    	SXTW = 6, 
    	SXTX = 7, 
    }

    Related Procedures With Parameters

    Extended_Reg ¶

    Extended_Reg :: struct #packed {
    	reg:    Register,
    	// 4
    	extend: Extend,
    	// 1
    	amount: u8,
    }

    FPSR_Flag ¶

    FPSR_Flag :: enum u8 {
    	IOC, // invalid operation
    	DZC, // divide by zero
    	OFC, // overflow
    	UFC, // underflow
    	IXC, // inexact
    	IDC, // input denormal
    	QC,  // cumulative saturation (Advanced SIMD saturating ops)
    }

    Feature ¶

    Feature :: enum u8 {
    	BASE,   // AArch64 base integer ISA
    	FP,     // scalar FP (FPSCR-using; FADD/FCMP/FCVT/etc.)
    	NEON,   // Advanced SIMD vector ops
    	CRYPTO, // AES, SHA1, SHA2, SHA3, SM3, SM4
    	CRC32,  // CRC32B/H/W/X + CRC32CB/H/W/X
    	LSE,    // Large System Extensions (atomic LDADD/LDCLR/...)
    	LSE2,   // single-copy-atomicity load/store
    	FP16,   // half-precision FP arithmetic
    	BF16,   // BFloat16
    	DOT,    // SDOT/UDOT integer dot product
    	PAC,    // Pointer Authentication
    	BTI,    // Branch Target Indicator
    	MTE,    // Memory Tagging
    	SVE,    // Scalable Vector Extension
    	SVE2, 
    	SME,    // Scalable Matrix Extension
    	AMX,    // Apple Matrix Extension (undocumented A13+/M1+ coprocessor)
    }
     

    Architectural feature this entry requires (for filtering and tagging at decode/print time).

    Instruction ¶

    Instruction :: struct #align (64) {
    	ops:           [5]Operand `fmt:"v,operand_count"`,
    	// 5 * size_of(Operand) = 55
    	mnemonic:      Mnemonic,
    	// 2
    	operand_count: u8,
    	// 1
    	flags:         Instruction_Flags,
    	// 1
    	length:        u8,
    	// 55 is odd, so mnemonic's alignment costs a byte here; 3 more reach 64.
    	_:             [3]u8,
    }
     

    Sized and aligned to a cache line, deliberately.

    The payload is 45 bytes -- shrinking Operand to 10 got it there -- but leaving the struct at 48 was measurably worse than padding it back out. With #packed the struct aligns to 1, so a 48-byte stride straddles a line boundary 75% of the time and a 64-byte one straddled 100% of the time (the heap base is not line-aligned either). Decode writes whole Instructions, and unaligned stores cost enough that on an i7-9750H this layout decodes ~21% faster than the 48-byte packed one -- while writing MORE bytes. The gap holds even when the whole array is L1-resident, so it is split-store cost at the store ports, not cache-line fetches.

    Encode is within 1% and a pure read traversal is ~9% slower at working sets past L2, both of which the decode win dwarfs for real workloads.

    The spare bytes are free: they cost nothing over a 48-byte struct that straddles, and new fields land in them without changing the layout.

    Instruction_Flags ¶

    Instruction_Flags :: distinct bit_field u8 {
    	_: u8 | 8,
    }

    Instruction_Info ¶

    Instruction_Info :: struct {
    	offset:       u32,
    	decode_entry: u16,
    	_:            u16,
    }

    Memory ¶

    Memory :: distinct bit_field u64 {
    	base:   Register | 16,
    	index:  Register | 16,
    	disp:   i32 | 23,
    	extend: Extend | 3,
    	shift:  u8 | 3,
    	mode:   Address_Mode | 3,
    }
     

    Memory operand packed into one word: base + optional index + signed disp + addressing metadata. Index is NONE for non-register-offset modes.

    A bit_field rather than a struct because this sits in every Operand, so its width is multiplied by four in every Instruction. Field syntax is unchanged (m.base, m.disp) and composite literals still work, so this is invisible to callers.

    Widths: registers get 16 bits. Register itself is a u32, but every class legal in an address lives entirely in its low 16 bits -- only a system register (class REG_SYS) carries field bits above them, and one is never a valid base or index -- so the truncation is lossless and the NONE sentinel (0xFFFF) round-trips. That leaves 23 bits for disp (+/-4.19M) against a worst case of 65,520 -- LDR Q, [Xn, #imm12*16] -- the largest displacement any A64 addressing mode can encode, so there is ~64x headroom.

    Related Procedures With Returns

    Mnemonic ¶

    Mnemonic :: enum u16 {
    	INVALID        = 0, 
    	ADD, 
    	ADDS, 
    	SUB, 
    	SUBS,               // optional LSL #12 carried in shift field
    	MOVZ, 
    	MOVN, 
    	MOVK,               // 16-bit imm + 2-bit hw
    	ADR, 
    	ADRP,               // PC-relative address
    	AND, 
    	ANDS, 
    	ORR, 
    	EOR, 
    	BIC, 
    	BICS, 
    	ORN, 
    	EON, 
    	LSL, 
    	LSR, 
    	ASR, 
    	ROR,                // register and immediate forms both
    	UDIV, 
    	SDIV, 
    	MADD, 
    	MSUB,               // 64x64+64 -> 64 (or 32 variant)
    	SMADDL, 
    	SMSUBL, 
    	UMADDL, 
    	UMSUBL,             // 32x32+64 -> 64
    	SMULH, 
    	UMULH,              // 64x64 -> high 64
    	CLZ, 
    	CLS, 
    	RBIT, 
    	REV, 
    	REV16, 
    	REV32, 
    	CSEL, 
    	CSINC, 
    	CSINV, 
    	CSNEG, 
    	CCMP, 
    	CCMN, 
    	// Aliases of the above with the condition inverted; every assembler both
    	// accepts and prefers these spellings.
    	CSET, 
    	CSETM,              // CSINC/CSINV with Rn = Rm = ZR
    	CINC, 
    	CINV, 
    	CNEG,               // CSINC/CSINV/CSNEG with Rn = Rm
    	EXTR, 
    	B, 
    	BL,                 // 26-bit PC-rel
    	BR, 
    	BLR, 
    	RET,                // register indirect
    	// One member per condition, the way an assembler spells them and the way
    	// x86 does its Jcc. The condition is not an operand: it is four bits of
    	// the opcode, and splitting it lets each entry record the flags it
    	// actually reads -- b.eq consults Z alone, b.le consults N, Z and V --
    	// where a single B_COND had to claim all four for every condition.
    	B_EQ, 
    	B_NE, 
    	B_CS, 
    	B_CC,               // B.cond -- 19-bit PC-rel
    	B_MI, 
    	B_PL, 
    	B_VS, 
    	B_VC, 
    	B_HI, 
    	B_LS, 
    	B_GE, 
    	B_LT, 
    	B_GT, 
    	B_LE, 
    	B_AL, 
    	B_NV, 
    	CBZ, 
    	CBNZ,               // 19-bit PC-rel + Rt
    	TBZ, 
    	TBNZ,               // 14-bit PC-rel + bit position
    	// Plain (unsigned offset / signed unscaled / pre / post)
    	LDR, 
    	STR,                // X/W variants (matched by reg width)
    	LDRB, 
    	STRB, 
    	LDRSB, 
    	LDRH, 
    	STRH, 
    	LDRSH, 
    	LDRSW, 
    	// Pair
    	LDP, 
    	STP, 
    	LDPSW, 
    	// Acquire / release
    	LDAR, 
    	STLR, 
    	LDARB, 
    	STLRB, 
    	LDARH, 
    	STLRH, 
    	// Exclusive (load-linked / store-conditional)
    	LDXR, 
    	STXR, 
    	LDAXR, 
    	STLXR, 
    	NOP, 
    	YIELD, 
    	WFE, 
    	WFI, 
    	SEV, 
    	SEVL, 
    	HINT, 
    	MRS, 
    	MSR, 
    	ISB, 
    	DSB, 
    	DMB, 
    	SVC, 
    	HVC, 
    	SMC, 
    	BRK, 
    	HLT, 
    	ERET, 
    	FMOV,               // reg-reg / imm / between int/FP
    	FABS, 
    	FNEG, 
    	FSQRT, 
    	FADD, 
    	FSUB, 
    	FMUL, 
    	FDIV, 
    	FNMUL, 
    	FMADD, 
    	FMSUB, 
    	FNMADD, 
    	FNMSUB, 
    	FCMP, 
    	FCMPE, 
    	FCSEL, 
    	FMAX, 
    	FMIN, 
    	FMAXNM, 
    	FMINNM, 
    	FCVT,               // between single/double/half
    	SCVTF, 
    	UCVTF, 
    	FCVTZS, 
    	FCVTZU, 
    	FCVTAS, 
    	FCVTAU, 
    	FCVTNS, 
    	FCVTNU, 
    	FCVTPS, 
    	FCVTPU, 
    	FCVTMS, 
    	FCVTMU, 
    	FRINTA, 
    	FRINTI, 
    	FRINTM, 
    	FRINTN, 
    	FRINTP, 
    	FRINTX, 
    	FRINTZ, 
    	// -------------------------------------------------------------------------
    	// Logical immediate (bitmask-encoded; N:imms:immr)
    	// -------------------------------------------------------------------------
    	TST,                // ANDS with Rd=ZR
    	// -------------------------------------------------------------------------
    	// Additional load/store addressing modes
    	// -------------------------------------------------------------------------
    	LDUR, 
    	STUR, 
    	LDURB, 
    	STURB, 
    	LDURSB, 
    	LDURH, 
    	STURH, 
    	LDURSH, 
    	LDURSW, 
    	LDNP, 
    	STNP,               // non-temporal pair
    	LDXP, 
    	STXP, 
    	LDAXP, 
    	STLXP,              // exclusive pair
    	LDXRB, 
    	STXRB, 
    	LDAXRB, 
    	STLXRB,             // exclusive byte
    	LDXRH, 
    	STXRH, 
    	LDAXRH, 
    	STLXRH,             // exclusive halfword
    	LDAPR, 
    	LDAPRB, 
    	LDAPRH,             // load-acquire RCpc
    	// -------------------------------------------------------------------------
    	// LSE atomics (8 ops x 4 acq/rel x 2 width = 64 forms, named by op only;
    	// size and acq/rel encoded in the bits + flags)
    	// -------------------------------------------------------------------------
    	LDADD, 
    	LDADDA, 
    	LDADDL, 
    	LDADDAL, 
    	LDCLR, 
    	LDCLRA, 
    	LDCLRL, 
    	LDCLRAL, 
    	LDEOR, 
    	LDEORA, 
    	LDEORL, 
    	LDEORAL, 
    	LDSET, 
    	LDSETA, 
    	LDSETL, 
    	LDSETAL, 
    	LDSMAX, 
    	LDSMAXA, 
    	LDSMAXL, 
    	LDSMAXAL, 
    	LDSMIN, 
    	LDSMINA, 
    	LDSMINL, 
    	LDSMINAL, 
    	LDUMAX, 
    	LDUMAXA, 
    	LDUMAXL, 
    	LDUMAXAL, 
    	LDUMIN, 
    	LDUMINA, 
    	LDUMINL, 
    	LDUMINAL, 
    	SWP, 
    	SWPA, 
    	SWPL, 
    	SWPAL, 
    	CAS, 
    	CASA, 
    	CASL, 
    	CASAL,              // 32/64
    	CASB, 
    	CASAB, 
    	CASLB, 
    	CASALB,             // byte
    	CASH, 
    	CASAH, 
    	CASLH, 
    	CASALH,             // half
    	CASP, 
    	CASPA, 
    	CASPL, 
    	CASPAL,             // pair (W,W)/(X,X)
    	// -------------------------------------------------------------------------
    	// Pointer Authentication (PAC v8.3-A)
    	// -------------------------------------------------------------------------
    	PACIA, 
    	PACIB, 
    	PACDA, 
    	PACDB, 
    	PACIZA, 
    	PACIZB, 
    	PACDZA, 
    	PACDZB,             // implicit-zero variants
    	AUTIA, 
    	AUTIB, 
    	AUTDA, 
    	AUTDB, 
    	AUTIZA, 
    	AUTIZB, 
    	AUTDZA, 
    	AUTDZB, 
    	PACIASP, 
    	PACIBSP, 
    	AUTIASP, 
    	AUTIBSP,            // hint-encoded SP variants
    	PACIA1716, 
    	PACIB1716, 
    	AUTIA1716, 
    	AUTIB1716, 
    	PACGA, 
    	XPACI, 
    	XPACD, 
    	XPACLRI, 
    	RETAA, 
    	RETAB, 
    	BRAA, 
    	BRAB, 
    	BRAAZ, 
    	BRABZ, 
    	BLRAA, 
    	BLRAB, 
    	BLRAAZ, 
    	BLRABZ, 
    	ERETAA, 
    	ERETAB, 
    	// -------------------------------------------------------------------------
    	// Branch Target Identification (BTI v8.5-A)
    	// -------------------------------------------------------------------------
    	BTI,                // single mnemonic; modifier (c/j/jc) in operand
    	// -------------------------------------------------------------------------
    	// Memory Tagging Extension (MTE v8.5-A)
    	// -------------------------------------------------------------------------
    	IRG, 
    	ADDG, 
    	SUBG, 
    	GMI, 
    	SUBP, 
    	SUBPS, 
    	LDG, 
    	STG, 
    	ST2G, 
    	STZG, 
    	STZ2G, 
    	STGP, 
    	LDGM, 
    	STGM, 
    	STZGM, 
    	// -------------------------------------------------------------------------
    	// CRC32 (v8.0-A optional, mandatory v8.1+)
    	// -------------------------------------------------------------------------
    	CRC32B, 
    	CRC32H, 
    	CRC32W, 
    	CRC32X, 
    	CRC32CB, 
    	CRC32CH, 
    	CRC32CW, 
    	CRC32CX, 
    	// -------------------------------------------------------------------------
    	// Crypto: AES / SHA / SM3 / SM4 / polynomial multiply
    	// -------------------------------------------------------------------------
    	AESE, 
    	AESD, 
    	AESMC, 
    	AESIMC, 
    	SHA1H, 
    	SHA1C, 
    	SHA1P, 
    	SHA1M, 
    	SHA1SU0, 
    	SHA1SU1, 
    	SHA256H, 
    	SHA256H2, 
    	SHA256SU0, 
    	SHA256SU1, 
    	SHA512H, 
    	SHA512H2, 
    	SHA512SU0, 
    	SHA512SU1,          // v8.2-A
    	EOR3, 
    	BCAX, 
    	RAX1, 
    	XAR,                // SHA3 v8.2-A
    	SM3PARTW1, 
    	SM3PARTW2, 
    	SM3SS1, 
    	SM3TT1A, 
    	SM3TT1B, 
    	SM3TT2A, 
    	SM3TT2B, 
    	SM4E, 
    	SM4EKEY, 
    	PMULL, 
    	PMULL2, 
    	// -------------------------------------------------------------------------
    	// BFloat16 (BF16; v8.6-A)
    	// -------------------------------------------------------------------------
    	BFCVT,              // BFloat16 from single
    	BFDOT, 
    	BFMMLA, 
    	BFMLALB, 
    	BFMLALT, 
    	BFCVTN, 
    	BFCVTN2, 
    	// 3-same arithmetic
    	MUL, 
    	MLA, 
    	MLS, 
    	NEG, 
    	ABS, 
    	SHADD, 
    	UHADD, 
    	SHSUB, 
    	UHSUB, 
    	SRHADD, 
    	URHADD, 
    	SQADD, 
    	UQADD, 
    	SQSUB, 
    	UQSUB, 
    	SMAX, 
    	UMAX, 
    	SMIN, 
    	UMIN, 
    	SABD, 
    	UABD, 
    	SABA, 
    	UABA, 
    	ADDP, 
    	ADDV, 
    	SADDLP, 
    	UADDLP, 
    	SADALP, 
    	UADALP, 
    	SADDLV, 
    	UADDLV, 
    	SMAXV, 
    	UMAXV, 
    	SMINV, 
    	UMINV, 
    	SMAXP, 
    	UMAXP, 
    	SMINP, 
    	UMINP, 
    	// long / wide / narrowing
    	SADDL, 
    	SADDL2, 
    	UADDL, 
    	UADDL2, 
    	SSUBL, 
    	SSUBL2, 
    	USUBL, 
    	USUBL2, 
    	SADDW, 
    	SADDW2, 
    	UADDW, 
    	UADDW2, 
    	SSUBW, 
    	SSUBW2, 
    	USUBW, 
    	USUBW2, 
    	RADDHN, 
    	RADDHN2, 
    	RSUBHN, 
    	RSUBHN2, 
    	ADDHN, 
    	ADDHN2, 
    	SUBHN, 
    	SUBHN2, 
    	XTN, 
    	XTN2, 
    	SQXTN, 
    	SQXTN2, 
    	UQXTN, 
    	UQXTN2, 
    	SQXTUN, 
    	SQXTUN2, 
    	// multiply long / multiply-accumulate long
    	SMULL, 
    	SMULL2, 
    	UMULL, 
    	UMULL2, 
    	SMLAL, 
    	SMLAL2, 
    	UMLAL, 
    	UMLAL2, 
    	SMLSL, 
    	SMLSL2, 
    	UMLSL, 
    	UMLSL2, 
    	SQDMULL, 
    	SQDMULL2, 
    	SQDMLAL, 
    	SQDMLAL2, 
    	SQDMLSL, 
    	SQDMLSL2, 
    	SQDMULH, 
    	SQRDMULH, 
    	// dot product
    	SDOT, 
    	UDOT, 
    	USDOT, 
    	// FP vector
    	FMLA, 
    	FMLS, 
    	FMULX, 
    	FMAXP, 
    	FMINP, 
    	FMAXNMP, 
    	FMINNMP, 
    	FMAXV, 
    	FMINV, 
    	FMAXNMV, 
    	FMINNMV, 
    	FRECPE, 
    	FRSQRTE, 
    	FRECPS, 
    	FRSQRTS, 
    	FRECPX, 
    	FADDP, 
    	FCVTL, 
    	FCVTL2, 
    	FCVTN, 
    	FCVTN2, 
    	FCVTXN, 
    	FCVTXN2, 
    	// FP compare (vector)
    	FCMEQ, 
    	FCMGE, 
    	FCMGT, 
    	FCMLE, 
    	FCMLT, 
    	FACGE, 
    	FACGT, 
    	// Integer compare (vector)
    	CMEQ, 
    	CMGE, 
    	CMGT, 
    	CMHI, 
    	CMHS, 
    	CMLE, 
    	CMLT, 
    	CMTST, 
    	// Logical (vector)
    	MVN, 
    	BIT, 
    	BIF, 
    	BSL, 
    	// Shifts
    	SHL, 
    	SQSHL, 
    	SQSHLU, 
    	SRSHL, 
    	URSHL, 
    	SSHR, 
    	USHR, 
    	SSRA, 
    	USRA, 
    	SRSHR, 
    	URSHR, 
    	SRSRA, 
    	URSRA, 
    	SSHL, 
    	USHL, 
    	SLI, 
    	SRI, 
    	SSHLL, 
    	SSHLL2, 
    	USHLL, 
    	USHLL2, 
    	SXTL, 
    	SXTL2, 
    	UXTL, 
    	UXTL2,              // aliases of SSHLL/USHLL with imm=0
    	SHRN, 
    	SHRN2, 
    	RSHRN, 
    	RSHRN2, 
    	SQSHRN, 
    	SQSHRN2, 
    	UQSHRN, 
    	UQSHRN2, 
    	SQRSHRN, 
    	SQRSHRN2, 
    	UQRSHRN, 
    	UQRSHRN2, 
    	SQSHRUN, 
    	SQSHRUN2, 
    	SQRSHRUN, 
    	SQRSHRUN2, 
    	// Misc / permute / bit
    	DUP, 
    	INS, 
    	MOV, 
    	EXT, 
    	TBL, 
    	TBX, 
    	ZIP1, 
    	ZIP2, 
    	UZP1, 
    	UZP2, 
    	TRN1, 
    	TRN2, 
    	NOT, 
    	REV64, 
    	CNT, 
    	URECPE, 
    	URSQRTE, 
    	// Vector immediate
    	MOVI, 
    	MVNI, 
    	// NEON load/store
    	LD1, 
    	LD2, 
    	LD3, 
    	LD4,                // multiple structures
    	ST1, 
    	ST2, 
    	ST3, 
    	ST4, 
    	LD1R, 
    	LD2R, 
    	LD3R, 
    	LD4R,               // load-and-replicate to all lanes
    	// Integer arithmetic (predicated, destructive merging)
    	SUBR, 
    	ASRR, 
    	LSLR, 
    	LSRR, 
    	// FP arithmetic (unpredicated)
    	FTSMUL, 
    	// FP arithmetic (predicated, destructive merging)
    	FSUBR, 
    	FDIVR, 
    	FNMLA, 
    	FNMLS, 
    	// Predicate logical / move
    	NAND, 
    	NOR, 
    	SEL, 
    	ORRS, 
    	EORS, 
    	NANDS, 
    	NORS, 
    	ORNS, 
    	MOVS, 
    	PTRUE, 
    	PTRUES, 
    	PFALSE, 
    	PFIRST, 
    	PNEXT, 
    	BRKA, 
    	BRKB, 
    	BRKAS, 
    	BRKBS, 
    	BRKPA, 
    	BRKPB, 
    	BRKN, 
    	RDFFR, 
    	WRFFR, 
    	SETFFR, 
    	// Integer compare and set predicate
    	CMPEQ, 
    	CMPNE, 
    	CMPGE, 
    	CMPGT, 
    	CMPLE, 
    	CMPLT, 
    	CMPHI, 
    	CMPHS, 
    	CMPLO, 
    	CMPLS, 
    	// FP compare and set predicate
    	FCMNE, 
    	FCMUO, 
    	// Permute / move / replicate
    	INSR, 
    	CPY, 
    	COMPACT, 
    	// Loads / stores (contiguous)
    	LD1B, 
    	LD1H, 
    	LD1W, 
    	LD1D, 
    	LD1SB, 
    	LD1SH, 
    	LD1SW, 
    	ST1B, 
    	ST1H, 
    	ST1W, 
    	ST1D, 
    	LDFF1B, 
    	LDFF1H, 
    	LDFF1W, 
    	LDFF1D,             // first-faulting
    	// SVE2 additions
    	WHILEGE, 
    	WHILEGT, 
    	WHILELE, 
    	WHILELT, 
    	WHILEHI, 
    	WHILEHS, 
    	WHILELO, 
    	WHILELS, 
    	SQRDMLAH, 
    	SQRDMLSH, 
    	ADCLB, 
    	ADCLT, 
    	SBCLB, 
    	SBCLT, 
    	MATCH, 
    	NMATCH, 
    	HISTCNT, 
    	HISTSEG, 
    	// -------------------------------------------------------------------------
    	// SME (Scalable Matrix Extension)
    	// -------------------------------------------------------------------------
    	SMSTART, 
    	SMSTOP, 
    	RDSVL, 
    	ADDHA, 
    	ADDVA, 
    	ZERO, 
    	FMOPA, 
    	FMOPS, 
    	BFMOPA, 
    	BFMOPS, 
    	SMOPA, 
    	SMOPS, 
    	UMOPA, 
    	UMOPS, 
    	USMOPA, 
    	SUMOPA, 
    	CNTB, 
    	CNTH, 
    	CNTW, 
    	CNTD, 
    	INCB, 
    	INCH, 
    	INCW, 
    	INCD, 
    	DECB, 
    	DECH, 
    	DECW, 
    	DECD, 
    	SQINCB, 
    	SQINCH, 
    	SQINCW, 
    	SQINCD, 
    	SQDECB, 
    	SQDECH, 
    	SQDECW, 
    	SQDECD, 
    	UQINCB, 
    	UQINCH, 
    	UQINCW, 
    	UQINCD, 
    	UQDECB, 
    	UQDECH, 
    	UQDECW, 
    	UQDECD, 
    	CNTP, 
    	INCP, 
    	DECP, 
    	SQINCP, 
    	SQDECP, 
    	UQINCP, 
    	UQDECP, 
    	// -------------------------------------------------------------------------
    	// SME tile slice load/store (LD1B/H/W/D/Q to ZA tile slice; ST1 reverse)
    	// -------------------------------------------------------------------------
    	LD1Q, 
    	ST1Q, 
    	// MOVA between Z register and tile slice (both directions)
    	MOVA, 
    	// -------------------------------------------------------------------------
    	// NEON complex FP multiply-add (v8.3-A FCMA extension)
    	// -------------------------------------------------------------------------
    	FCMLA, 
    	FCADD, 
    	// -------------------------------------------------------------------------
    	// SVE prefetch, non-temporal load/store, EXT/SPLICE/INDEX
    	// -------------------------------------------------------------------------
    	PRFB, 
    	PRFH, 
    	PRFW, 
    	PRFD, 
    	LDNT1B, 
    	LDNT1H, 
    	LDNT1W, 
    	LDNT1D, 
    	STNT1B, 
    	STNT1H, 
    	STNT1W, 
    	STNT1D, 
    	SPLICE, 
    	INDEX, 
    	// -------------------------------------------------------------------------
    	// SVE2 bitwise select family + polynomial multiply
    	// -------------------------------------------------------------------------
    	BSL1N, 
    	BSL2N, 
    	NBSL, 
    	PMUL, 
    	PMULLB, 
    	PMULLT, 
    	// -------------------------------------------------------------------------
    	// SVE BF16 conversions (BFCVT in SVE form)
    	// -------------------------------------------------------------------------
    	BFCVTNT, 
    	// -------------------------------------------------------------------------
    	// PAC-authenticated loads (v8.3-A)
    	// -------------------------------------------------------------------------
    	LDRAA, 
    	LDRAB, 
    	// -------------------------------------------------------------------------
    	// Transactional Memory Extension (TME, v9.0-A)
    	// -------------------------------------------------------------------------
    	TSTART, 
    	TCOMMIT, 
    	TCANCEL, 
    	TTEST, 
    	// -------------------------------------------------------------------------
    	// Wait with timeout (v8.7-A)
    	// -------------------------------------------------------------------------
    	WFET, 
    	WFIT, 
    	// -------------------------------------------------------------------------
    	// Branch consistency hint (v8.8-A BC.cond)
    	// -------------------------------------------------------------------------
    	// BC.cond: the consistent-branch form, same 16 conditions.
    	BC_EQ, 
    	BC_NE, 
    	BC_CS, 
    	BC_CC, 
    	BC_MI, 
    	BC_PL, 
    	BC_VS, 
    	BC_VC, 
    	BC_HI, 
    	BC_LS, 
    	BC_GE, 
    	BC_LT, 
    	BC_GT, 
    	BC_LE, 
    	BC_AL, 
    	BC_NV, 
    	// -------------------------------------------------------------------------
    	// Sign/zero extend aliases (canonical names for SBFM/UBFM specific cases)
    	// -------------------------------------------------------------------------
    	UXTB, 
    	UXTH, 
    	UXTW,               // unsigned extends (UBFM aliases)
    	SXTB, 
    	SXTH, 
    	SXTW,               // signed extends (SBFM aliases)
    	// -------------------------------------------------------------------------
    	// Carry arithmetic (add/sub with carry)
    	// -------------------------------------------------------------------------
    	ADC, 
    	ADCS, 
    	SBC, 
    	SBCS, 
    	NGC, 
    	NGCS,               // NGC Rd, Rm = SBC Rd, ZR, Rm; NGCS similar
    	// -------------------------------------------------------------------------
    	// RCpc / LDAPUR / STLUR (v8.4-A unscaled release-consistency loads/stores)
    	// -------------------------------------------------------------------------
    	LDAPUR, 
    	STLUR,              // 32/64-bit word
    	LDAPURB, 
    	STLURB, 
    	LDAPURH, 
    	STLURH,             // byte / half
    	LDAPURSB, 
    	LDAPURSH, 
    	LDAPURSW,           // signed extending
    	// -------------------------------------------------------------------------
    	// SVE BF16 predicated arithmetic (3-same)
    	// -------------------------------------------------------------------------
    	BFADD, 
    	BFSUB, 
    	BFMUL, 
    	BFMLA, 
    	BFMLS, 
    	// -------------------------------------------------------------------------
    	// Speculation / profiling barriers + speculation hints
    	// -------------------------------------------------------------------------
    	SB,                 // Speculation Barrier (v8.0)
    	CSDB,               // Consumption of Speculative Data Barrier
    	DGH,                // Data Gathering Hint (v8.5-A)
    	PSB_CSYNC,          // Profile Synchronization Barrier
    	TSB_CSYNC,          // Trace Synchronization Barrier
    	BTI_J, 
    	BTI_C, 
    	BTI_JC,             // explicit BTI variants
    	// -------------------------------------------------------------------------
    	// SVE2.1 / SME2 -- BF16 unpredicated + clamp/min/max + multi-vector
    	// -------------------------------------------------------------------------
    	BFCLAMP,            // BFCLAMP Zd.H, Zn.H, Zm.H
    	BFMAXNM, 
    	BFMINNM,            // BF16 min/max-num predicated
    	// SME2 multi-vector: contiguous LD/ST and select-table lookup
    	LUTI2, 
    	LUTI4,              // LUTI2/4 table lookup (byte)
    	// SME2 ZIP / UZP multi-way (3-vector and 4-vector forms)
    	ZIP, 
    	UZP, 
    	// -------------------------------------------------------------------------
    	// RME (Realm Management Extension, ARMv9-A)
    	// -------------------------------------------------------------------------
    	TLBI_RPALOS, 
    	TLBI_RPAOS,         // Realm physical address space
    	AT_S1E1A,           // stage-1 translate with implicit authority
    	DC_CIPAPA, 
    	DC_CIGDPAPA,        // physical-address cache mgmt
    	TLBI_PAALL, 
    	TLBI_PAALLOS, 
    	// -------------------------------------------------------------------------
    	// Apple AMX (undocumented vendor coprocessor; A13+/M1+)
    	// -------------------------------------------------------------------------
    	// 
    	// All AMX instructions share the encoding 0x00201000 | (op << 5) | xn,
    	// where xn is a 5-bit operand (typically a GPR holding pointer +
    	// control word). The reserved bit pattern lives in the system-
    	// instruction space (op0 = 0b0000) so it doesn't collide with any
    	// standard A64 mnemonic. Reverse-engineered ops:
    	// 
    	//   00 LDX     load X register set (16 input rows)
    	//   01 LDY     load Y register set (16 input rows)
    	//   02 STX     store X
    	//   03 STY     store Y
    	//   04 LDZ     load Z accumulator (64 rows)
    	//   05 STZ     store Z
    	//   06 LDZI    load Z interleaved
    	//   07 STZI    store Z interleaved
    	//   08 EXTRX   extract from X
    	//   09 EXTRY   extract from Y
    	//   10 FMA64   FP64 fused multiply-add
    	//   11 FMS64   FP64 fused multiply-subtract
    	//   12 FMA32   FP32 fused multiply-add
    	//   13 FMS32   FP32 fused multiply-subtract
    	//   14 MAC16   int16 multiply-accumulate
    	//   15 FMA16   FP16 fused multiply-add
    	//   16 FMS16   FP16 fused multiply-subtract
    	//   17 SET     enable AMX (operand=0)
    	//   18 CLR     disable AMX
    	//   19 VECINT  integer vector ops
    	//   20 VECFP   FP vector ops
    	//   21 MATINT  integer matrix ops
    	//   22 MATFP   FP matrix ops
    	//   23 GENLUT  general lookup table (A14+)
    	AMX_LDX, 
    	AMX_LDY, 
    	AMX_STX, 
    	AMX_STY, 
    	AMX_LDZ, 
    	AMX_STZ, 
    	AMX_LDZI, 
    	AMX_STZI, 
    	AMX_EXTRX, 
    	AMX_EXTRY, 
    	AMX_FMA64, 
    	AMX_FMS64, 
    	AMX_FMA32, 
    	AMX_FMS32, 
    	AMX_MAC16, 
    	AMX_FMA16, 
    	AMX_FMS16, 
    	AMX_SET, 
    	AMX_CLR, 
    	AMX_VECINT, 
    	AMX_VECFP, 
    	AMX_MATINT, 
    	AMX_MATFP, 
    	AMX_GENLUT, 
    	// -------------------------------------------------------------------------
    	// MOPS (Memory Operations, v8.8-A)
    	// -------------------------------------------------------------------------
    	// 
    	// Each operation is split into a 3-instruction Prologue/Main/Epilogue
    	// sequence that all share the same {Xd, Xs, Xn} destructive operands.
    	//   CPY*  : general memcpy (may overlap)
    	//   CPYF* : forward-only memcpy
    	//   SET*  : memset (Xs holds the byte value)
    	CPYP, 
    	CPYM, 
    	CPYE, 
    	CPYFP, 
    	CPYFM, 
    	CPYFE, 
    	SETP, 
    	SETM, 
    	SETE, 
    	// -------------------------------------------------------------------------
    	// Cache management (SYS-encoded under op0=3 or op0=0)
    	// -------------------------------------------------------------------------
    	// 
    	// Data cache:
    	DC_IVAC, 
    	DC_ISW, 
    	DC_CSW, 
    	DC_CISW, 
    	DC_ZVA, 
    	DC_CVAC, 
    	DC_CVAU, 
    	DC_CIVAC, 
    	// Instruction cache:
    	IC_IALLUIS, 
    	IC_IALLU, 
    	IC_IVAU, 
    	// Address translate (PE current EL):
    	AT_S1E1R, 
    	AT_S1E1W, 
    	AT_S1E0R, 
    	AT_S1E0W, 
    	AT_S1E2R, 
    	AT_S1E2W, 
    	AT_S1E3R, 
    	AT_S1E3W, 
    	AT_S12E1R, 
    	AT_S12E1W, 
    	AT_S12E0R, 
    	AT_S12E0W, 
    	// TLB invalidate (the practical subset):
    	TLBI_VMALLE1, 
    	TLBI_VMALLE1IS, 
    	TLBI_VAE1, 
    	TLBI_VAE1IS, 
    	TLBI_ASIDE1, 
    	TLBI_ASIDE1IS, 
    	TLBI_VAAE1, 
    	TLBI_VAAE1IS, 
    	TLBI_VALE1, 
    	TLBI_VALE1IS, 
    	TLBI_VAALE1, 
    	TLBI_VAALE1IS, 
    	TLBI_ALLE1, 
    	TLBI_ALLE1IS, 
    	TLBI_ALLE2, 
    	TLBI_ALLE2IS, 
    	TLBI_ALLE3, 
    	TLBI_ALLE3IS, 
    	// -------------------------------------------------------------------------
    	// Prefetch
    	// -------------------------------------------------------------------------
    	PRFM, 
    	PRFUM, 
    	// -------------------------------------------------------------------------
    	// Aliases (printed canonically; encode the underlying operation with
    	// Rd=ZR or Rn=ZR fixed).
    	// -------------------------------------------------------------------------
    	NEGS,               // NEGS Rd, Rm{,shift} =  SUBS Rd, ZR, Rm{,shift}
    	CMP,                // CMP Rn, Rm{,shift}  =  SUBS ZR, Rn, Rm{,shift}
    	CMN,                // CMN Rn, Rm{,shift}  =  ADDS ZR, Rn, Rm{,shift}
    }

    Related Procedures With Parameters

    NZCV_Flag ¶

    NZCV_Flag :: enum u8 {
    	N, // negative result
    	Z, // zero result
    	C, // carry-out / no-borrow (unsigned sense)
    	V, // signed overflow
    }

    NZCV_Flags ¶

    NZCV_Flags :: distinct bit_set[NZCV_Flag; u8]

    Operand ¶

    Operand :: struct #packed {
    	using _:    struct #packed #raw_union {
    		reg:       Register,
    		// 4
    		mem:       Memory,
    		// 8
    		immediate: i64,
    		// 8
    		relative:  i64,
    		// 8
    		shifted:   Shifted_Reg,
    		// 6
    		extended:  Extended_Reg,
    		// 6
    		cond:      u8,
    		// 1
    		za:        ZA_Slice,
    	},
    	// 8 total -- the largest member wins
    	kind:       Operand_Kind,
    	// 1
    	size:       u8,
    	// How many consecutive registers the syntax writes as a list, starting at
    	// `reg`: `{v0.16b, v1.16b}` is 2. Zero means the operand is a plain
    	// register. The count belongs to the instruction form rather than to the
    	// caller -- LD2 always names two -- so it comes from the encoding.
    	list_count: u8,
    }
     

    11-byte tagged operand. The union holds whichever payload matches kind.

    Related Procedures With Returns

    Operand_Encoding ¶

    Operand_Encoding :: enum u8 {
    	NONE, 
    	IMPL,                    // implicit; no bits emitted
    	// ---- Register slots (5-bit hw fields) ----
    	RD,                      // bits 0-4
    	RT,                      // bits 0-4 (alias of RD used in loads)
    	RN,                      // bits 5-9
    	RT2,                     // bits 10-14
    	RA,                      // bits 10-14 (alias of RT2 used in MADD/MSUB)
    	RM,                      // bits 16-20
    	RN_RM,                   // bits 5-9 AND 16-20 -- one register into both source
    	// ---- Immediates ----
    	IMM12,                   // bits 10-21
    	IMM16,                   // bits 5-20
    	IMM6,                    // bits 10-15  (shift amount; SHAMT)
    	IMM9,                    // bits 12-20  (signed 9-bit; LDUR/pre/post)
    	IMM_HW,                  // bits 21-22  (MOVZ/MOVN/MOVK hw field; value is shift/16)
    	// LSR/ASR by immediate are UBFM/SBFM Rd, Rn, #shift, #(31|63): the shift
    	// goes to immr and imms is a constant already fixed in the form's bits,
    	// so unlike LSL (ENC_LSL_IMM_*) only one field is operand-driven.
    	ENC_SHIFT_IMMR,          // bits 16-21  (immr; LSR/ASR immediate aliases)
    	// RDSVL / the RDVL family put their signed 6-bit immediate at bits 10:5,
    	// not where IMM6 (bits 15:10) writes it.
    	ENC_IMM6_LO,             // bits  5-10  (signed 6-bit; RDSVL)
    	IMM_SH12,                // bit  22     (ADD/SUB imm: LSL #12 flag)
    	SHIFT_TYPE,              // bits 22-23  (LSL/LSR/ASR/ROR for shifted-register)
    	EXT_OPT,                 // bits 13-15  (extend type for extended-register)
    	EXT_IMM3,                // bits 10-12  (extend amount)
    	COND_HI,                 // bits 12-15  (CSEL/CSINC/CSINV/CSNEG, FCSEL, CCMP)
    	COND_HI_INV,             // bits 12-15, stored inverted -- the cset/cinc aliases
    	// read as `cset Wd, eq` but encode CSINC's cond as NE
    	COND_LO,                 // bits  0-3   (B.cond)
    	NZCV_FIELD,              // bits  0-3   (CCMP/CCMN immediate NZCV)
    	SYS_FIELD,               // bits 5-19   (MRS/MSR: op0/op1/CRn/CRm/op2)
    	HINT_FIELD,              // bits 5-11   (HINT type)
    	BARRIER_FIELD,           // bits 8-11   (DMB/DSB/ISB barrier type)
    	// ---- Memory operand composites ----
    	OFFSET_BASE_U12,         // [Xn, #imm * size] with imm12 scaled by data size
    	OFFSET_BASE_S9,          // [Xn, #imm] signed-9 unscaled (LDUR/STUR)
    	OFFSET_BASE_PRE,         // [Xn, #imm]!   signed-9 pre-index
    	OFFSET_BASE_POST,        // [Xn], #imm    signed-9 post-index
    	OFFSET_BASE_A,           // [Xn]          no displacement (exclusives, acquire/release, LSE)
    	// LDP/STP family. Nothing like the single-register modes above: the
    	// displacement is a signed 7-bit value SCALED by the transfer size at
    	// bits 21:15 (single-register forms use an unscaled 9-bit at 20:12), and
    	// bits 11:10 are part of Rt2 here, so the pre/post markers the
    	// single-register encodings OR in would corrupt the second register.
    	// The scale cannot be read off the register type -- LDPSW pairs X
    	// registers but loads words (scale 4), STGP pairs X registers and scales
    	// by 16 -- so it is spelled out per encoding. The addressing mode lives
    	// in the form's bits[24:23] (01 post, 10 signed offset, 11 pre), which
    	// is where the decoder reads it back from.
    	OFFSET_PAIR_4,           // [Xn{, #imm}] / [Xn, #imm]! / [Xn], #imm -- imm7 x 4
    	OFFSET_PAIR_8,           //                                            imm7 x 8
    	OFFSET_PAIR_16,          //                                            imm7 x 16
    	OFFSET_REG,              // [Xn, Xm{, LSL #s}] or [Xn, Wm|Xm, <extend> {#s}];
    	//   option (15:13) comes from the operand's mode/extend
    	OFFSET_EXT,              // subsumed by OFFSET_REG; kept because these values are
    	// ---- PC-relative ----
    	BRANCH_26,               // B / BL  (operand-driven 26-bit field, scaled ×4)
    	BRANCH_19,               // B.cond / CBZ / LDR literal
    	BRANCH_14,               // TBZ / TBNZ
    	BRANCH_PG21,             // ADR / ADRP: imm21 split as immlo[29-30] + immhi[5-23]
    	// ---- TBZ/TBNZ bit position (split field b5 + b40) ----
    	TBZ_BIT,                 // b5 at bit 31, b40 at bits 19-23
    	// ---- NEON / SIMD specific ---------------------------------------------
    	VD, 
    	VN, 
    	VM,                      // 5-bit V regs at bits 0-4 / 5-9 / 16-20 (alias of RD/RN/RM)
    	VA,                      // R4-type 3rd source (FMLA-ish) at bits 10-14
    	NEON_IMM8_FMOV,          // 8-bit imm split (abc at 18-16, defgh at 9-5)
    	NEON_INDEX_H,            // 2-bit H lane index
    	NEON_INDEX_S,            // S lane index
    	NEON_INDEX_D,            // D lane index
    	// ---- NEON shift-by-immediate (immh:immb at bits 22:16) ----
    	// The element-size marker bit is fixed in the entry's `bits`; the operand
    	// drives only the low bits. Left: low = shift. Right: low = esize - shift.
    	NEON_SHL_IMM, 
    	NEON_SHR_IMM, 
    	// ---- NEON copy/permute index fields ----
    	// The element-size marker bit lives in the entry `bits`; the lane index
    	// operand drives the bits above it (DUP/INS imm5, INS imm4) or the plain
    	// imm4 (EXT). The decoder recovers the element size from imm5's marker.
    	VN_VM_DUP,               // one V reg packed into BOTH Vn (9:5) and Vm (20:16) (MOV = ORR alias)
    	NEON_IDX5,               // element lane index in imm5 (20:16); index << (markerbit+1)
    	NEON_IDX4,               // INS source lane index in imm4 (14:11); index << markerbit
    	NEON_EXT_IDX,            // EXT byte index in imm4 (14:11)
    	// ---- MSR (immediate to PSTATE): pstate field selector op1:op2 ----
    	// User passes the combined 6-bit selector (op1<<3 | op2); op1 lands at
    	// bits 18:16, op2 at bits 7:5. The #imm goes to CRm (bits 11:8) via
    	// BARRIER_FIELD, which it shares with the DMB/DSB barrier encoding.
    	IMM5_HI,                 // generic 5-bit immediate at bits 20:16 (CCMP/CCMN immediate)
    	MSR_PSTATE,              // PSTATE field selector: op1 at 18:16, op2 at 7:5
    	FMOV_SCALAR_IMM,         // scalar FMOV 8-bit float immediate at bits 20:13
    	// ---- SVE alias duplicated predicate/Z fields + EXT byte index ----
    	// MOV/NOT/MOVS predicate aliases are EOR/ORR/AND with a duplicated field;
    	// MOV (predicated) is SEL with Zm = Zd. The source register is packed into
    	// every slot it occupies so the alias round-trips to the canonical bytes.
    	PG4_PM_DUP,              // Pg at 10:13 AND Pm at 16:19 (NOT = EOR Pd,Pg/z,Pn,Pg)
    	PN_PM_DUP,               // Pn at 5:8 AND Pm at 16:19 (MOVS/MOV-pred: Pm = Pn)
    	PN_PG_PM_DUP,            // Pn at 5:8, Pg at 10:13, Pm at 16:19 (MOV Pd,Pn)
    	ZD_ZM_DUP,               // Zd at 0:4 AND Zm at 16:20 (MOV Zd,Pg/m,Zn = SEL ...,Zd)
    	SVE_EXT_IMM,             // SVE EXT byte index: imm8h at 20:16, imm8l at 12:10
    	ZA_TILE_LOW,             // SME ZA accumulator tile number at bits 2:0 (ADDHA/ADDVA)
    	// ---- NEON single-structure lane index (LD1..4_LANE / ST1..4_LANE) ----
    	// The lane index is split across Q (bit 30), S (bit 12) and size (bits
    	// 11:10) in an element-size-dependent way; the structure-size/count opcode
    	// bits stay fixed in the entry `bits`.
    	NEON_LANE_B,             // .B[i]: Q<<3 | S<<2 | size  (i in 0..15)
    	NEON_LANE_H,             // .H[i]: Q<<2 | S<<1 | bit11 (i in 0..7)
    	NEON_LANE_S,             // .S[i]: Q<<1 | S            (i in 0..3)
    	NEON_LANE_D,             // .D[i]: Q                   (i in 0..1)
    	// ---- SVE2 XAR rotate amount (tszh:tszl:imm3 split) ----
    	// V = 2*esize - amount placed as tszh(23:22):tszl(20:19):imm3(18:16);
    	// esize comes from the form's Z register (highest set bit of tszh:tszl).
    	SVE_XAR_SHIFT, 
    	// ---- LSE atomics ------------------------------------------------------
    	ATOMIC_RS,               // Rs (source / compare) at bits 16-20
    	ATOMIC_RT,               // Rt (target) at bits 0-4
    	ATOMIC_RN,               // Rn (address) at bits 5-9
    	// ---- Bitmask logical immediate (N:imms:immr at bits 22 / 15:10 / 21:16) ----
    	BITMASK_FIELD, 
    	// ---- Predicate (SVE) --------------------------------------------------
    	PD, 
    	PN, 
    	PM,                      // P-reg positions (bits 0-3 / 5-8 / 16-19 in many SVE forms)
    	PG,                      // governing predicate (3-bit at bits 10-12)
    	PG4,                     // governing predicate (4-bit at bits 10-13, e.g. predicate logical)
    	PM3,                     // 3-bit Pm at bits 15:13 (SME outer products / a few SVE forms)
    	// ---- SVE immediates ---------------------------------------------------
    	SVE_IMM8,                // signed 8-bit at bits 12-5 (DUP/CPY/ADD imm)
    	SVE_IMM5,                // 5-bit at bits 20-16 (INDEX imm, etc.)
    	SVE_SHIFT_TSZ_IMM,       // tsz:imm3 at bits 22:16, encodes element-size + shift amount
    	SVE_PATTERN,             // 5-bit pattern (POW2/VL1.../ALL) at bits 9-5 (PTRUE)
    	IMM_MUL4, 
    	// ---- SVE memory operands ---------------------------------------------
    	SVE_OFFSET_BASE_SS,      // [Xn, Xm, LSL #s] -- scalar+scalar contiguous
    	SVE_OFFSET_BASE_SI,      // [Xn, #imm, MUL VL] -- scalar+imm (signed 4-bit times VL)
    	SVE_OFFSET_BASE_VEC,     // [Xn, Zm.S/D, UXTW|SXTW|LSL #s] -- scalar base + vec offset
    	SVE_OFFSET_VEC_BASE,     // [Zn.S/D, #imm5] -- vector base + scalar imm
    	// ---- SVE indexed lane field (FMLA Zda.T, Zn.T, Zm.T[i]) -----------
    	SVE_FMLA_IDX_H,          // .H index: i3 split as (bit 22, bits 20:19), Zm@18:16
    	SVE_FMLA_IDX_S,          // .S index: i2 at bits 20:19, Zm@18:16
    	SVE_FMLA_IDX_D,          // .D index: i1 at bit 20, Zm@19:16
    	// ---- SME ZA tile + slice fields --------------------------------------
    	ZA_TILE_NUM_B,           // single-tile (ZA0.B): no field (implicit)
    	ZA_TILE_NUM_H,           // tile number bit at bit 22 (ZA0.H..ZA1.H)
    	ZA_TILE_NUM_S,           // tile number bits 23:22 (ZA0.S..ZA3.S)
    	ZA_TILE_NUM_D,           // tile number bits 23:21 (ZA0.D..ZA7.D)
    	SME_PATTERN_FIELD,       // 5-bit SME pattern (for ZERO list / SMSTART/SMSTOP)
    	// ---- SME tile-slice descriptor field (LD1B/LD1H/LD1W/LD1D/LD1Q) ------
    	// 
    	// User passes a packed immediate carrying the full slice descriptor:
    	//   bits  3:0  = imm offset within tile (0..15 for .B, 0..7 for .H, ...)
    	//   bit  4     = direction (0=H, 1=V)
    	//   bits  6:5  = Ws index (Ws is W12+this, range 0..3)
    	//   bits 10:7  = tile number (only the low bits relevant per element size)
    	// 
    	// The encoder unpacks and places the bits per element-size layout.
    	SME_SLICE_B,             // byte tile (single tile, imm 0..15)
    	SME_SLICE_H,             // half tile (2 tiles, imm 0..7)
    	SME_SLICE_W,             // word tile (4 tiles, imm 0..3)
    	SME_SLICE_D,             // double tile (8 tiles, imm 0..1)
    	SME_SLICE_Q,             // quad tile (16 tiles, imm 0)
    	// ---- Misc new operand-encoding values (batch 3) ----
    	ENC_FCMLA_ROT,           // 2-bit rotation at bits 13:12 (FCMLA)
    	NEON_IDX2,               // 2-bit lane index at bits 13:12 (SM3TT)
    	// A register the syntax writes as a list of N consecutive registers,
    	// `{v0.16b, v1.16b}`. Same bits as VD / VN; N is fixed by the form (LD2
    	// always names two), so it rides on the encoding rather than the operand
    	// type -- otherwise every count would need its own type per arrangement.
    	VD_LIST1, 
    	VD_LIST2, 
    	VD_LIST3, 
    	VD_LIST4, 
    	PNG,                     // bits 10-12, predicate-as-counter (SME2)
    	ENC_ZT0,                 // no bits at all; there is only one ZT register
    	LUTI_IDX,                // bits 15-16, LUTI2/LUTI4 table index
    	SME_ZA_ARRAY,            // `za[w12, 0]` -- a vector of the ZA array, not a tile
    	SME_ZA_MASK,             // bits 0-7, ZERO's per-tile mask
    	// SVE scalar+scalar addressing scales the index by the access size, and the
    	// assembler wants that written out (`[x0, x0, lsl #2]`). The amount is a
    	// property of the form, so it rides on the encoding.
    	SVE_OFFSET_BASE_SS1, 
    	SVE_OFFSET_BASE_SS2, 
    	SVE_OFFSET_BASE_SS3, 
    	SVE_OFFSET_BASE_SS4, 
    	// SVE gather/scatter: the index is a vector, and the syntax names its
    	// element size and how the base extends it. A 32-bit index is written
    	// `uxtw`/`sxtw` (bit 22 says which); a 64-bit one needs neither.
    	SVE_OFFSET_BASE_VEC_S, 
    	SVE_OFFSET_BASE_VEC_D, 
    	// A scatter lays the same information out differently: bit 22 is the
    	// index's width and bit 14 is the extend, where a gather has the extend at
    	// 22 and takes the width from its opcode.
    	SVE_OFFSET_BASE_VECST_S, 
    	SVE_OFFSET_BASE_VECST_D, 
    	SVE_IMM5A,               // 5-bit at bits 5-9 (INDEX first operand)
    	// A Z register whose element size is not in the static pattern but in the
    	// instruction's own tsz field, so decode has to read it out of the word
    	// rather than take it from the form (SVE2 XAR).
    	VD_TSZ,                  // bits 0-4
    	VN_TSZ,                  // bits 5-9
    	VN_LIST1, 
    	VN_LIST2, 
    	VN_LIST3, 
    	VN_LIST4, 
    	ENC_FCADD_ROT,           // 1-bit rotation at bit 12 (FCADD)
    	ENC_SVE_PRFOP,           // 4-bit prefetch op at bits 3:0 (SVE PRFB/H/W/D)
    	ENC_LDRAA_IMM10,         // signed 10-bit imm10 at bits 21:12, scaled by 8 (LDRAA/B)
    	// ---- Batch 5 composite-packed encodings ----
    	// 
    	// LSL_IMM Wd, Wn, #imm = UBFM Wd, Wn, #(-imm % 32), #(31-imm).
    	// The single user-passed shift amount drives BOTH immr (21:16) and
    	// imms (15:10). Width 32 (W) vs 64 (X) selects the modulus and N bit.
    	ENC_LSL_IMM_W,           // W-form: immr = (-imm) & 31, imms = 31 - imm
    	ENC_LSL_IMM_X,           // X-form: immr = (-imm) & 63, imms = 63 - imm
    	// ROR_IMM Rd, Rn, #imm = EXTR Rd, Rn, Rn, #imm. The Rn register is
    	// packed at BOTH the Rn slot (9:5) AND the Rm slot (20:16). The shift
    	// amount goes to imms (15:10).
    	ENC_DUAL_RN_RM,          // packs op.reg at both bits 9:5 AND bits 20:16
    	ENC_ROR_SHIFT,           // 6-bit shift amount at bits 15:10 (imms slot)
    	// SME2 multi-vector lists at the Vd/Vn/Vm slots. The user passes the
    	// first register of the list; the matcher validates alignment.
    	// Encoding just packs the first register's hardware number into the
    	// standard slot (the implicit pair/quad is encoded by mnemonic).
    	ENC_Z_PAIR_VD, 
    	ENC_Z_PAIR_VN, 
    	ENC_Z_PAIR_VM, 
    	ENC_Z_QUAD_VD, 
    	ENC_Z_QUAD_VN, 
    	ENC_Z_QUAD_VM, 
    }
     

    Where each operand's bits land in the 32-bit word.

    Operand_Kind ¶

    Operand_Kind :: enum u8 {
    	NONE, 
    	REGISTER, 
    	IMMEDIATE, 
    	MEMORY, 
    	RELATIVE, 
    	SHIFTED_REG,  // X reg + shift type + shift amount
    	EXTENDED_REG, // X/W reg + extend + amount
    	COND,         // 4-bit condition code (EQ/NE/.../AL/NV)
    	ZA_SLICE,     // `za0h.b[w12, 0]` -- a row or column of an SME tile
    }

    Operand_Set ¶

    Operand_Set :: distinct bit_set[int; u8]

    Operand_Type ¶

    Operand_Type :: enum u8 {
    	NONE, 
    	// ---- Integer registers ----
    	W_REG,        // W0..W30 or WZR (hw=31 means ZR)
    	X_REG,        // X0..X30 or XZR
    	WSP_REG,      // W0..W30 or WSP (hw=31 means stack pointer)
    	XSP_REG,      // X0..X30 or SP
    	W_SHIFTED,    // W reg + shift type + 5-bit amount
    	X_SHIFTED,    // X reg + shift type + 6-bit amount
    	W_EXTENDED,   // W reg + extend + 3-bit amount
    	X_EXTENDED,   // X reg + extend + 3-bit amount
    	// ---- SIMD/FP scalar register views ----
    	B_REG, 
    	H_REG, 
    	S_REG, 
    	D_REG, 
    	Q_REG, 
    	// ---- Vector register (NEON full V) ----
    	V_REG, 
    	// NEON vector with explicit arrangement
    	V_8B, 
    	V_16B, 
    	V_4H, 
    	V_8H, 
    	V_2S, 
    	V_4S, 
    	V_1D, 
    	V_2D, 
    	V_4H_FP16, 
    	V_8H_FP16,    // FP16 vector forms
    	// Element-indexed vector (V0.B[i] / .H[i] / .S[i] / .D[i])
    	V_ELEM_B, 
    	V_ELEM_H, 
    	V_ELEM_S, 
    	V_ELEM_D, 
    	// ---- SVE register operands ----
    	Z_REG_B, 
    	Z_REG_H, 
    	Z_REG_S, 
    	Z_REG_D, 
    	P_REG,        // P0..P15 (predicate)
    	P_REG_MERGE, 
    	P_REG_ZERO,   // predicated execution modes
    	P_REG_GOV,    // governing predicate slot (3-bit P0..P7)
    	// ---- SME register operands ----
    	ZA_TILE_B, 
    	ZA_TILE_H, 
    	ZA_TILE_S, 
    	ZA_TILE_D, 
    	ZA_TILE_Q,    // ZA tile by element size
    	SME_PATTERN,  // SME pattern/tile-list mask selector
    	SVE_PATTERN,  // SVE predicate pattern (POW2, VL1.., ALL)
    	// ---- SME tile-slice operand (packed immediate descriptor) ----
    	//   bits  3:0 = imm offset within tile (range varies by element size)
    	//   bit  4    = direction (0=H, 1=V)
    	//   bits 6:5  = Ws index (Ws is W12 + this, range 0..3)
    	//   bits 10:7 = tile number (relevant bits per element size)
    	SME_SLICE_B, 
    	SME_SLICE_H, 
    	SME_SLICE_W, 
    	SME_SLICE_D, 
    	SME_SLICE_Q, 
    	// ---- Misc new operand-type aliases ----
    	FCMLA_ROT,    // 2-bit complex rotation index (0/90/180/270 deg) at bits 13:12
    	FCADD_ROT,    // 1-bit complex rotation index (0=90, 1=270 deg) at bit 12
    	SVE_PRFOP,    // 4-bit SVE prefetch op selector at bits 3:0
    	LDRAA_IMM10,  // signed 10-bit imm10 scaled by 8 (LDRAA / LDRAB)
    	LSL_SHIFT_W,  // shift amount 0..31 for LSL Wd, Wn, #imm (32-bit)
    	LSL_SHIFT_X,  // shift amount 0..63 for LSL Xd, Xn, #imm (64-bit)
    	ROR_SHIFT,    // shift amount for ROR (alias of EXTR), goes to imms
    	// ---- Immediates ----
    	IMM_12,       // 12-bit unsigned (ADD/SUB imm; carries optional LSL #12 in size byte)
    	IMM_16,       // 16-bit unsigned (MOVZ/MOVN/MOVK)
    	IMM_8,        // 8-bit unsigned (NEON MOVI, BTI/CRC32 immediate-like)
    	IMM_6,        // 6-bit unsigned (data-proc shift amount)
    	IMM_5,        // 5-bit unsigned (TBZ/TBNZ bit position; FP rounding lane)
    	IMM_3,        // 3-bit (shift amount for EXTEND, NZCV, system register field)
    	IMM_4,        // 4-bit (HINT, DMB/DSB barrier types, NZCV flags)
    	IMM_2,        // 2-bit (FP rounding mode / NEON cmode bits 14:13 etc.)
    	NZCV_IMM,     // 4-bit NZCV for CCMP/CCMN immediate forms
    	SYS_REG,      // MRS/MSR target system register
    	PSTATE_FIELD, // MSR immediate form: a PSTATE field selector,
    	// a different namespace from the system registers
    	HW_SHIFT,     // 2-bit LSL hw (0/16/32/48) for MOV-immediate
    	BITMASK_IMM,  // Logical immediate (bitmask-encoded N:imms:immr)
    	LSE_SIZE,     // 2-bit size selector for LSE atomics (00=B 01=H 10=W 11=X)
    	IMM_MUL4, 
    	// ---- PC-relative ----
    	REL_26,       // B / BL (signed 26-bit << 2)
    	REL_19,       // B.cond / CBZ / CBNZ / LDR literal (signed 19-bit << 2)
    	REL_14,       // TBZ / TBNZ (signed 14-bit << 2)
    	REL_PG21,     // ADR / ADRP (signed 21-bit; ADRP scales by 4096)
    	// ---- Memory ----
    	// 
    	// One operand type per addressing mode. The mode has to be part of the
    	// operand TYPE, not just the operand encoding, because it is a matching
    	// criterion: `LDR Xt, [Xn, #imm]`, `[Xn, #imm]!`, `[Xn], #imm` and
    	// `[Xn, Xm]` are all the mnemonic LDR, and the matcher picks between
    	// their forms on the addressing mode alone. (Same reason W_REG /
    	// W_SHIFTED / W_EXTENDED are distinct types over one register class.)
    	// Each maps to exactly one Address_Mode; the form's Operand_Encoding
    	// then says how the fields are packed.
    	MEM_OFFSET,   // [Xn{, #imm}]                    -> Address_Mode.OFFSET
    	MEM_PRE,      // [Xn, #imm]!                     -> PRE_INDEXED
    	MEM_POST,     // [Xn], #imm                      -> POST_INDEXED
    	MEM_REG,      // [Xn, Xm{, LSL #s}] or [Xn, Wm|Xm, <extend> {#s}]
    	//   -> REG_OFFSET or EXT_REG_OFFSET; one word, option picks
    	MEM_EXT,      // subsumed by MEM_REG; kept because these values are baked
    	//   into the table blobs
    	// SVE addressing. Kept distinct from the plain modes above: a gather
    	// load has both a scalar+scalar and a scalar+vector form under the one
    	// mnemonic, and those two differ only in the index register's class.
    	MEM_SVE_SS,   // [Xn, Xm, LSL #s]                -> REG_OFFSET, X index
    	MEM_SVE_SI,   // [Xn, #imm, MUL VL]              -> OFFSET
    	MEM_SVE_VEC,  // [Xn, Zm.S/D, UXTW|SXTW|LSL #s]  -> REG_OFFSET, Z index
    	MEM_SVE_VB,   // [Zn.S/D, #imm5]                 -> OFFSET, Z base
    	// ---- Condition code ----
    	COND, 
    	// Condition with AL/NV excluded. The cset/cinc alias family is only the
    	// preferred spelling when cond != 111x -- with AL or NV the underlying
    	// CSINC/CSINV/CSNEG is what an assembler writes.
    	COND_NOT_AL, 
    	// SME2 vector pairs and quads. The element size cannot come from the
    	// encoding the way the list length does, because the operand is written
    	// with it (`{z0.b, z1.b}`) and it is what separates LD1B from LD1H.
    	// A Z register of any element size, for the forms where the size is not in
    	// the static pattern and so cannot select between forms (SVE2 XAR).
    	Z_REG_ANY, 
    	Z_PAIR_B, 
    	Z_PAIR_H, 
    	Z_PAIR_S, 
    	Z_PAIR_D, 
    	Z_QUAD_B, 
    	Z_QUAD_H, 
    	Z_QUAD_S, 
    	Z_QUAD_D, 
    	// SME2 predicate-as-counter (PN8..PN15). `_ZERO` prints the `/z` a load
    	// needs; a store writes it bare.
    	PN_REG, 
    	PN_REG_ZERO, 
    	ZT_REG,       // ZT0 -- SME2's lookup table, and the only one of its kind
    	ZA_ARRAY,     // a ZA array vector, addressed by Wn plus an offset
    	// A Z register written as a table list. SVE's TBL takes one table or two,
    	// and unlike LD2 the caller chooses which, so the count has to be in the
    	// operand type for the matcher to tell the two forms apart.
    	Z_LIST1_B, 
    	Z_LIST1_H, 
    	Z_LIST1_S, 
    	Z_LIST1_D, 
    	Z_LIST2_B, 
    	// A predicate that is written with an element size because it is the
    	// instruction's destination (`cmpge p0.b, p1/z, ...`).
    	P_REG_B, 
    	P_REG_H, 
    	P_REG_S, 
    	P_REG_D, 
    	// ---- NEON shift-by-immediate amount (encoded into immh:immb together
    	//      with the element size: left = esize+shift, right = 2*esize-shift) ----
    	VEC_SHIFT, 
    	// ---- NEON element lane index (DUP/INS/EXT). The element-size marker
    	//      lives in the entry `bits`; the operand drives only the index bits. ----
    	VEC_INDEX, 
    	V_1Q,         // NEON .1q -- one 128-bit lane (PMULL's destination). Not
    }
     

    What the user passes in. Most operand types describe a register class or a specific immediate width that the matcher cares about.

    Register ¶

    Register :: distinct u32

    Related Procedures With Returns

    Related Constants

    Relocation ¶

    Relocation :: struct #packed {
    	offset:   u32,
    	label_id: u32,
    	addend:   i32,
    	type:     Relocation_Type,
    	size:     u8,
    	inst_idx: u16,
    }

    Relocation_Type ¶

    Relocation_Type :: enum u8 {
    	NONE          = 0, 
    	// PC-relative branches
    	B26,               // 26-bit signed offset (×4) -- B / BL
    	B_COND19,          // 19-bit signed offset (×4) -- B.cond, CBZ/CBNZ
    	TBZ14,             // 14-bit signed offset (×4) -- TBZ / TBNZ
    	// PC-relative addressing
    	ADR_PCREL21,       // ±1MB signed offset -- ADR
    	ADRP_PCREL21,      // ±4GB signed offset on 4K page boundary -- ADRP
    	PCREL_LO12_I,      // low 12 of (sym - page_of(ADRP)) -- ADD/LDR/STR after ADRP
    	PCREL_LO12_S,      // S-form variant if needed for store-pair-style ops
    	// Load-literal (PC-relative 19-bit signed, scaled by 4)
    	LDR_LITERAL19, 
    	// Absolute (filled by linker)
    	ABS64, 
    	ABS32, 
    	ABS16, 
    }

    Shift_Type ¶

    Shift_Type :: enum u8 {
    	LSL = 0, 
    	LSR = 1, 
    	ASR = 2, 
    	ROR = 3, 
    }

    Related Procedures With Parameters

    Shifted_Reg ¶

    Shifted_Reg :: struct #packed {
    	reg:    Register,
    	// 4
    	type:   Shift_Type,
    	// 1
    	amount: u8,
    }

    Side_Effect ¶

    Side_Effect :: enum u8 {
    	CONTROL,          // writes pc: B/BL/BR/BLR/RET, B.cond, CBZ/CBNZ, TBZ/TBNZ
    	EXCEPTION,        // exception-generating call: SVC / HVC / SMC
    	TRAP,             // deliberately faults: BRK (breakpoint), UDF (undefined)
    	FENCE,            // memory-ordering barrier: DMB/DSB, and acquire/release accesses
    	ISYNC,            // instruction-stream / context synchronization: ISB
    	ATOMIC,           // indivisible RMW: LDXR/STXR pair, LSE (LDADD/SWP/CAS...)
    	RESERVATION,      // sets/tests/clears the local exclusive monitor: LDXR/STXR, CLREX
    	CACHE,            // cache maintenance with coherence effects: DC, IC
    	HINT,             // architecturally-inert hint: NOP/YIELD/PRFM/SEV/ESB/CSDB
    	BTI,              // branch-target-identification landing pad (control-flow integrity)
    	PAC,              // pointer authentication: reads an implicit key, may fault (FEAT_FPAC)
    	WAIT,             // suspends execution until an event/interrupt: WFI/WFE
    	PRIVILEGED,       // reads/writes system state: MSR/MRS, ERET, TLBI, AT, DAIF
    	FFR,              // reads/writes the SVE first-fault register: SETFFR/RDFFR/WRFFR, LDFF*
    	NONDETERMINISTIC, // RNDR/RNDRRS, counter/timer reads (CNTVCT), TSTART
    }

    Sysreg_Name ¶

    Sysreg_Name :: struct {
    	value: u16,
    	// the bare 15-bit MRS/MSR field (what sysreg_bits returns)
    	name:  string,
    }

    ZA_Slice ¶

    ZA_Slice :: distinct bit_field u32 {
    	tile:     u8 | 4,
    	vertical: bool | 1,
    	ws:       u8 | 2,
    	offset:   u8 | 4,
    	elem:     u8 | 5,
    }
     

    One slice of an SME accumulator tile: which tile, taken along the rows (h) or the columns (v), addressed by one of W12..W15 plus a fixed offset.

    Constants

    One row per constant, under the prefix it shares with others.

    ACTLR_EL1:: Register(0x4081_1000)
    op0 op1 CRn CRm op2
    AFSR0_EL1:: Register(0x4288_1000)
    op0 op1 CRn CRm op2
    AFSR1_EL1:: Register(0x4289_1000)
    3 0 5 1 1
    AMAIR_EL1:: Register(0x4518_1000)
    3 0 10 3 0
    APDAKEYHI_EL1:: Register(0x4111_1000)
    op0 op1 CRn CRm op2
    APDAKEYLO_EL1:: Register(0x4110_1000)
    3 0 2 2 0
    APDBKEYHI_EL1:: Register(0x4113_1000)
    3 0 2 2 3
    APDBKEYLO_EL1:: Register(0x4112_1000)
    3 0 2 2 2
    APGAKEYHI_EL1:: Register(0x4119_1000)
    3 0 2 3 1
    APGAKEYLO_EL1:: Register(0x4118_1000)
    3 0 2 3 0
    APIAKEYHI_EL1:: Register(0x4109_1000)
    3 0 2 1 1
    APIAKEYLO_EL1:: Register(0x4108_1000)
    3 0 2 1 0 (FEAT_PAuth)
    APIBKEYHI_EL1:: Register(0x410B_1000)
    3 0 2 1 3
    APIBKEYLO_EL1:: Register(0x410A_1000)
    3 0 2 1 2
    CCSIDR_EL1:: Register(0x4800_1000)
    op0 op1 CRn CRm op2
    CLIDR_EL1:: Register(0x4801_1000)
    3 1 0 0 1
    CNTFRQ_EL0:: Register(0x5F00_1000)
    op0 op1 CRn CRm op2
    CNTHCTL_EL2:: Register(0x6708_1000)
    3 4 14 1 0
    CNTHP_… 3
    CNTHP_CTL_EL2:: Register(0x6711_1000)
    3 4 14 2 1
    CNTHP_CVAL_EL2:: Register(0x6712_1000)
    3 4 14 2 2
    CNTHP_TVAL_EL2:: Register(0x6710_1000)
    3 4 14 2 0
    CNTHV_… 3
    CNTHV_CTL_EL2:: Register(0x6719_1000)
    3 4 14 3 1
    CNTHV_CVAL_EL2:: Register(0x671A_1000)
    3 4 14 3 2
    CNTHV_TVAL_EL2:: Register(0x6718_1000)
    3 4 14 3 0
    CNTKCTL_EL1:: Register(0x4708_1000)
    3 0 14 1 0
    CNTPCT_EL0:: Register(0x5F01_1000)
    3 3 14 0 1
    CNTPS_… 3
    CNTPS_CTL_EL1:: Register(0x7F11_1000)
    3 7 14 2 1
    CNTPS_CVAL_EL1:: Register(0x7F12_1000)
    3 7 14 2 2
    CNTPS_TVAL_EL1:: Register(0x7F10_1000)
    3 7 14 2 0
    CNTP_… 3
    CNTP_CTL_EL0:: Register(0x5F11_1000)
    3 3 14 2 1
    CNTP_CVAL_EL0:: Register(0x5F12_1000)
    3 3 14 2 2
    CNTP_TVAL_EL0:: Register(0x5F10_1000)
    3 3 14 2 0
    CNTVCT_EL0:: Register(0x5F02_1000)
    3 3 14 0 2
    CNTVOFF_EL2:: Register(0x6703_1000)
    3 4 14 0 3
    CNTV_… 3
    CNTV_CTL_EL0:: Register(0x5F19_1000)
    3 3 14 3 1
    CNTV_CVAL_EL0:: Register(0x5F1A_1000)
    3 3 14 3 2
    CNTV_TVAL_EL0:: Register(0x5F18_1000)
    3 3 14 3 0
    COND_HS:: Cond.CS
    Architectural aliases for the two carry-style conditions.
    COND_LO:: Cond.CC
    CONTEXTIDR_EL1:: Register(0x4681_1000)
    op0 op1 CRn CRm op2
    CPACR_EL1:: Register(0x4082_1000)
    3 0 1 0 2
    CSSELR_EL1:: Register(0x5000_1000)
    3 2 0 0 0
    CTR_EL0:: Register(0x5801_1000)
    3 3 0 0 1
    CURRENT_EL:: Register(0x4212_1000)
    3 0 4 2 2
    DACR32_EL2:: Register(0x6180_1000)
    op0 op1 CRn CRm op2
    DAIF:: Register(0x5A11_1000)
    3 3 4 2 1
    DBGAUTHSTATUS_EL1:: Register(0x03F6_1000)
    op0 op1 CRn CRm op2
    DBGCLAIMCLR_EL1:: Register(0x03CE_1000)
    2 0 7 9 6
    DBGCLAIMSET_EL1:: Register(0x03C6_1000)
    2 0 7 8 6
    DBGDTRRX_EL0:: Register(0x1828_1000)
    2 3 0 5 0
    DBGDTRTX_EL0:: Register(0x1828_1000)
    2 3 0 5 0 (write view of DBGDTRRX_EL0)
    DBGDTR_EL0:: Register(0x1820_1000)
    2 3 0 4 0
    DBGPRCR_EL1:: Register(0x00A4_1000)
    2 0 1 4 4
    DCZID_EL0:: Register(0x5807_1000)
    3 3 0 0 7 (used by __sve_max_vl-style probes too)
    DEFAULT_PRINT_OPTIONS: rexcode_isa.Print_Options : isa.DEFAULT_PRINT_OPTIONS
    DISR_EL1:: Register(0x4609_1000)
    op0 op1 CRn CRm op2
    DLR_EL0:: Register(0x5A29_1000)
    3 3 4 5 1
    DSPSR_EL0:: Register(0x5A28_1000)
    3 3 4 5 0
    ELR_… 3
    ELR_EL1:: Register(0x4201_1000)
    3 0 4 0 1
    ELR_EL2:: Register(0x6201_1000)
    3 4 4 0 1
    ELR_EL3:: Register(0x7201_1000)
    3 6 4 0 1
    ERRIDR_EL1:: Register(0x4298_1000)
    3 0 5 3 0
    ERRSELR_EL1:: Register(0x4299_1000)
    3 0 5 3 1
    ERXADDR_EL1:: Register(0x42A3_1000)
    3 0 5 4 3
    ERXCTLR_EL1:: Register(0x42A1_1000)
    3 0 5 4 1
    ERXFR_EL1:: Register(0x42A0_1000)
    3 0 5 4 0
    ERXMISC0_EL1:: Register(0x42A8_1000)
    3 0 5 5 0
    ERXMISC1_EL1:: Register(0x42A9_1000)
    3 0 5 5 1
    ERXMISC2_EL1:: Register(0x42AA_1000)
    3 0 5 5 2
    ERXMISC3_EL1:: Register(0x42AB_1000)
    3 0 5 5 3
    ERXSTATUS_EL1:: Register(0x42A2_1000)
    3 0 5 4 2
    ESR_EL1:: Register(0x4290_1000)
    3 0 5 2 0
    ESR_EL2:: Register(0x6290_1000)
    3 4 5 2 0
    FAR_EL1:: Register(0x4300_1000)
    3 0 6 0 0
    FAR_EL2:: Register(0x6300_1000)
    3 4 6 0 0
    FPCR:: Register(0x5A20_1000)
    op0 op1 CRn CRm op2
    FPEXC32_EL2:: Register(0x6298_1000)
    3 4 5 3 0
    FPSR:: Register(0x5A21_1000)
    3 3 4 4 1
    FP_REG: Register : X29
    frame pointer (avoid collision with FP if added later)

    frame pointer (avoid collision with FP if added later)

    GCR_EL1:: Register(0x4086_1000)
    op0 op1 CRn CRm op2
    GMID_EL1:: Register(0x4804_1000)
    3 1 0 0 4 (FEAT_MTE)
    GPCCR_EL3:: Register(0x710E_1000)
    op0 op1 CRn CRm op2
    GPTBR_EL3:: Register(0x710C_1000)
    3 6 2 1 4 (Granule Protection Table Base)
    HCR_EL2:: Register(0x6088_1000)
    3 4 1 1 0
    HSTR_EL2:: Register(0x608B_1000)
    3 4 1 1 3
    ICC_… 22
    ICC_ASGI1R_EL1:: Register(0x465E_1000)
    op0 op1 CRn CRm op2
    ICC_BPR0_EL1:: Register(0x4643_1000)
    3 0 12 8 3
    ICC_BPR1_EL1:: Register(0x4663_1000)
    3 0 12 12 3
    ICC_CTLR_EL1:: Register(0x4664_1000)
    3 0 12 12 4
    ICC_CTLR_EL3:: Register(0x7664_1000)
    3 6 12 12 4
    ICC_DIR_EL1:: Register(0x4659_1000)
    3 0 12 11 1
    ICC_EOIR0_EL1:: Register(0x4641_1000)
    3 0 12 8 1
    ICC_EOIR1_EL1:: Register(0x4661_1000)
    3 0 12 12 1
    ICC_HPPIR0_EL1:: Register(0x4642_1000)
    3 0 12 8 2
    ICC_HPPIR1_EL1:: Register(0x4662_1000)
    3 0 12 12 2
    ICC_IAR0_EL1:: Register(0x4640_1000)
    3 0 12 8 0
    ICC_IAR1_EL1:: Register(0x4660_1000)
    3 0 12 12 0
    ICC_IGRPEN0_EL1:: Register(0x4666_1000)
    3 0 12 12 6
    ICC_IGRPEN1_EL1:: Register(0x4667_1000)
    3 0 12 12 7
    ICC_IGRPEN1_EL3:: Register(0x7667_1000)
    3 6 12 12 7
    ICC_PMR_EL1:: Register(0x4230_1000)
    3 0 4 6 0
    ICC_RPR_EL1:: Register(0x465B_1000)
    3 0 12 11 3
    ICC_SGI0R_EL1:: Register(0x465F_1000)
    3 0 12 11 7
    ICC_SGI1R_EL1:: Register(0x465D_1000)
    3 0 12 11 5
    ICC_SRE_EL1:: Register(0x4665_1000)
    3 0 12 12 5
    ICC_SRE_EL2:: Register(0x664D_1000)
    3 4 12 9 5
    ICC_SRE_EL3:: Register(0x7665_1000)
    3 6 12 12 5
    ICH_… 6
    ICH_EISR_EL2:: Register(0x665B_1000)
    3 4 12 11 3
    ICH_ELRSR_EL2:: Register(0x665D_1000)
    3 4 12 11 5
    ICH_HCR_EL2:: Register(0x6658_1000)
    3 4 12 11 0
    ICH_MISR_EL2:: Register(0x665A_1000)
    3 4 12 11 2
    ICH_VMCR_EL2:: Register(0x665F_1000)
    3 4 12 11 7
    ICH_VTR_EL2:: Register(0x6659_1000)
    3 4 12 11 1
    ID_… 34
    ID_AA64AFR0_EL1:: Register(0x402C_1000)
    3 0 0 5 4 (auxiliary)
    ID_AA64AFR1_EL1:: Register(0x402D_1000)
    3 0 0 5 5
    ID_AA64DFR0_EL1:: Register(0x4028_1000)
    3 0 0 5 0
    ID_AA64DFR1_EL1:: Register(0x4029_1000)
    3 0 0 5 1
    ID_AA64DFR2_EL1:: Register(0x402A_1000)
    3 0 0 5 2
    ID_AA64ISAR0_EL1:: Register(0x4030_1000)
    3 0 0 6 0
    ID_AA64ISAR1_EL1:: Register(0x4031_1000)
    3 0 0 6 1
    ID_AA64ISAR2_EL1:: Register(0x4032_1000)
    3 0 0 6 2
    ID_AA64ISAR3_EL1:: Register(0x4033_1000)
    3 0 0 6 3
    ID_AA64MMFR0_EL1:: Register(0x4038_1000)
    3 0 0 7 0
    ID_AA64MMFR1_EL1:: Register(0x4039_1000)
    3 0 0 7 1
    ID_AA64MMFR2_EL1:: Register(0x403A_1000)
    3 0 0 7 2
    ID_AA64PFR0_EL1:: Register(0x4020_1000)
    3 0 0 4 0
    ID_AA64PFR1_EL1:: Register(0x4021_1000)
    3 0 0 4 1
    ID_AA64SMFR0_EL1:: Register(0x4025_1000)
    3 0 0 4 5 (SME feature ID)
    ID_AA64ZFR0_EL1:: Register(0x4024_1000)
    3 0 0 4 4 (SVE feature ID)
    ID_AFR0_EL1:: Register(0x400B_1000)
    3 0 0 1 3
    ID_DFR0_EL1:: Register(0x400A_1000)
    3 0 0 1 2
    ID_ISAR0_EL1:: Register(0x4010_1000)
    3 0 0 2 0
    ID_ISAR1_EL1:: Register(0x4011_1000)
    3 0 0 2 1
    ID_ISAR2_EL1:: Register(0x4012_1000)
    3 0 0 2 2
    ID_ISAR3_EL1:: Register(0x4013_1000)
    3 0 0 2 3
    ID_ISAR4_EL1:: Register(0x4014_1000)
    3 0 0 2 4
    ID_ISAR5_EL1:: Register(0x4015_1000)
    3 0 0 2 5
    ID_ISAR6_EL1:: Register(0x4017_1000)
    3 0 0 2 7
    ID_MMFR0_EL1:: Register(0x400C_1000)
    3 0 0 1 4
    ID_MMFR1_EL1:: Register(0x400D_1000)
    3 0 0 1 5
    ID_MMFR2_EL1:: Register(0x400E_1000)
    3 0 0 1 6
    ID_MMFR3_EL1:: Register(0x400F_1000)
    3 0 0 1 7
    ID_MMFR4_EL1:: Register(0x4016_1000)
    3 0 0 2 6
    ID_MMFR5_EL1:: Register(0x401E_1000)
    3 0 0 3 6
    ID_PFR0_EL1:: Register(0x4008_1000)
    3 0 0 1 0
    ID_PFR1_EL1:: Register(0x4009_1000)
    3 0 0 1 1
    ID_PFR2_EL1:: Register(0x401C_1000)
    3 0 0 3 4
    ISR_EL1:: Register(0x4608_1000)
    3 0 12 1 0
    LABEL_UNDEFINED: rexcode_isa.Label_Definition : isa.LABEL_UNDEFINED
    LANE_INDEX:: u8(0xFF)
    A vector lane index.

    A vector lane index. It is a plain immediate in the encoding, but it prints glued to the register it indexes (v2.s[3]) rather than as a separate operand, so it is marked to tell it apart from an immediate that really is one -- EXT's byte index, for instance, is written #3.

    LORC_EL1:: Register(0x4523_1000)
    3 0 10 4 3
    LOREA_EL1:: Register(0x4521_1000)
    3 0 10 4 1
    LORID_EL1:: Register(0x4527_1000)
    3 0 10 4 7
    LORN_EL1:: Register(0x4522_1000)
    3 0 10 4 2
    LORSA_EL1:: Register(0x4520_1000)
    3 0 10 4 0
    LR: Register : X30
    procedure call link register
    MAIR_EL1:: Register(0x4510_1000)
    3 0 10 2 0
    MAX_INST_SIZE:: 4
    MDCCINT_EL1:: Register(0x0010_1000)
    2 0 0 2 0
    MDCR_EL2:: Register(0x6089_1000)
    3 4 1 1 1
    MDRAR_EL1:: Register(0x0080_1000)
    2 0 1 0 0
    MDSCR_EL1:: Register(0x0012_1000)
    2 0 0 2 2
    MFAR_EL3:: Register(0x7305_1000)
    3 6 6 0 5 (Multiple FAR)
    MIDR_EL1:: Register(0x4000_1000)
    3 0 0 0 0
    MPIDR_EL1:: Register(0x4005_1000)
    3 0 0 0 5
    MVFR0_EL1:: Register(0x4018_1000)
    3 0 0 3 0
    MVFR1_EL1:: Register(0x4019_1000)
    3 0 0 3 1
    MVFR2_EL1:: Register(0x401A_1000)
    3 0 0 3 2
    NONE:: Register(0xFFFF)
    NZCV:: Register(0x5A10_1000)
    3 3 4 2 0
    OSLAR_EL1:: Register(0x0084_1000)
    2 0 1 0 4 (op0=2 -> o0=0)
    OSLSR_EL1:: Register(0x008C_1000)
    2 0 1 1 4
    PAR_EL1:: Register(0x43A0_1000)
    3 0 7 4 0
    PMBIDR_EL1:: Register(0x44D7_1000)
    op0 op1 CRn CRm op2
    PMBLIMITR_EL1:: Register(0x44D0_1000)
    3 0 9 10 0
    PMBPTR_EL1:: Register(0x44D1_1000)
    3 0 9 10 1
    PMBSR_EL1:: Register(0x44D3_1000)
    3 0 9 10 3
    PMCCFILTR_EL0:: Register(0x5F7F_1000)
    op0 op1 CRn CRm op2
    PMCCNTR_EL0:: Register(0x5CE8_1000)
    3 3 9 13 0
    PMCEID0_EL0:: Register(0x5CE6_1000)
    3 3 9 12 6
    PMCEID1_EL0:: Register(0x5CE7_1000)
    3 3 9 12 7
    PMCNTENCLR_EL0:: Register(0x5CE2_1000)
    3 3 9 12 2
    PMCNTENSET_EL0:: Register(0x5CE1_1000)
    3 3 9 12 1
    PMCR_EL0:: Register(0x5CE0_1000)
    3 3 9 12 0
    PMINTENCLR_EL1:: Register(0x44F2_1000)
    3 0 9 14 2
    PMINTENSET_EL1:: Register(0x44F1_1000)
    3 0 9 14 1
    PMOVSCLR_EL0:: Register(0x5CE3_1000)
    3 3 9 12 3
    PMSCR_EL1:: Register(0x44C8_1000)
    3 0 9 9 0
    PMSELR_EL0:: Register(0x5CE5_1000)
    3 3 9 12 5
    PMSEVFR_EL1:: Register(0x44CD_1000)
    3 0 9 9 5
    PMSFCR_EL1:: Register(0x44CC_1000)
    3 0 9 9 4
    PMSICR_EL1:: Register(0x44CA_1000)
    3 0 9 9 2
    PMSIDR_EL1:: Register(0x44CF_1000)
    3 0 9 9 7
    PMSIRR_EL1:: Register(0x44CB_1000)
    3 0 9 9 3
    PMSLATFR_EL1:: Register(0x44CE_1000)
    3 0 9 9 6
    PMSWINC_EL0:: Register(0x5CE4_1000)
    3 3 9 12 4
    PMUSERENR_EL0:: Register(0x5CF0_1000)
    3 3 9 14 0
    PN10:: Register(REG_PN | 10)
    PN11:: Register(REG_PN | 11)
    PN12:: Register(REG_PN | 12)
    PN13:: Register(REG_PN | 13)
    PN14:: Register(REG_PN | 14)
    PN15:: Register(REG_PN | 15)
    PN8:: Register(REG_PN | 8)
    SME2 addresses its predicates as counters rather than masks, and numbers them from 8: the encoding holds pn - 8.
    PN9:: Register(REG_PN | 9)
    PQUAL_… 3
    PQUAL_MERGE:: u8(2)
    PQUAL_NONE:: u8(4)
    PQUAL_ZERO:: u8(1)
    A predicate register's governing qualifier, carried in Operand.size and read only when the register's class is REG_P.

    A predicate register's governing qualifier, carried in Operand.size and read only when the register's class is REG_P. SVE writes it as a suffix -- p0/z zeroes the inactive lanes, p0/m leaves them alone -- and an assembler will not take the instruction without it where the form calls for one.

    PRSELR_EL1:: Register(0x4311_1000)
    3 0 6 2 1
    PSHAPE_… 4
    PSHAPE_B:: u8(20)
    A predicate that is an instruction's DESTINATION is written with an element size instead -- cmpge p0.b, p1/z, ... -- so those codes have to live apart from the…

    A predicate that is an instruction's DESTINATION is written with an element size instead -- cmpge p0.b, p1/z, ... -- so those codes have to live apart from the qualifiers above, and apart from the neutral 4 a plain op_reg gives.

    PSHAPE_D:: u8(23)
    PSHAPE_H:: u8(21)
    PSHAPE_S:: u8(22)
    REG_… 17
    REG_B:: 0x0600
    B0..B31 (byte view)
    REG_D:: 0x0900
    D0..D31 (double view)
    REG_H:: 0x0700
    H0..H31 (half view)
    REG_NONE:: 0x0000
    REG_P:: 0x0C00
    P0..P15 SVE predicate
    REG_PN:: 0x0D00
    PN8..PN15 SME2 predicate-as-counter
    REG_Q:: 0x0A00
    Q0..Q31 (quad view)
    REG_S:: 0x0800
    S0..S31 (single view)
    REG_SYS:: 0x1000
    system registers (MRS/MSR); the field is in bits 16-30
    REG_V:: 0x0500
    V0..V31 (full 128-bit; used in NEON vector form)
    REG_W:: 0x0200
    W0..W30, WZR
    REG_WSP:: 0x0400
    WSP
    REG_X:: 0x0100
    X0..X30, XZR (X31 = ZR semantically)
    REG_XSP:: 0x0300
    SP (only -- distinct class from X to opt-in)
    REG_Z:: 0x0B00
    Z0..Z31 SVE scalable vector (low 128 aliased with V)
    REG_ZA:: 0x0F00
    ZA0..ZA15, SME's accumulator tiles
    REG_ZT:: 0x0E00
    ZT0, the SME2 lookup table
    RGSR_EL1:: Register(0x4085_1000)
    3 0 1 0 5 (FEAT_MTE)
    RNDR:: Register(0x5920_1000)
    op0 op1 CRn CRm op2
    RNDRRS:: Register(0x5921_1000)
    3 3 2 4 1
    SCTLR_… 3
    SCTLR_EL1:: Register(0x4080_1000)
    3 0 1 0 0
    SCTLR_EL2:: Register(0x6080_1000)
    3 4 1 0 0
    SCTLR_EL3:: Register(0x7080_1000)
    3 6 1 0 0
    SMCR_EL1:: Register(0x4096_1000)
    op0 op1 CRn CRm op2
    SMCR_EL2:: Register(0x6096_1000)
    3 4 1 2 6
    SP:: Register(REG_XSP | 31)
    SPSR_… 3
    SPSR_EL1:: Register(0x4200_1000)
    3 0 4 0 0
    SPSR_EL2:: Register(0x6200_1000)
    3 4 4 0 0
    SPSR_EL3:: Register(0x7200_1000)
    3 6 4 0 0
    SP_EL0:: Register(0x4208_1000)
    3 0 4 1 0
    SP_EL1:: Register(0x6208_1000)
    3 4 4 1 0
    SVCR:: Register(0x5A12_1000)
    3 3 4 2 2 (FEAT_SME: SM + ZA bits)
    SVE_MUL_IMM:: u8(0xFD)
    SVE_PATTERN_IMM:: u8(0xFE)
    SVE writes its element-count pattern by name (vl8, mul3, all) and its multiplier as mul #N, so both need telling apart from a plain immediate.

    SVE writes its element-count pattern by name (vl8, mul3, all) and its multiplier as mul #N, so both need telling apart from a plain immediate.

    TCR_EL1:: Register(0x4102_1000)
    3 0 2 0 2
    TFSRE0_EL1:: Register(0x42B1_1000)
    3 0 5 6 1 (FEAT_MTE)
    TFSR_EL1:: Register(0x42B0_1000)
    3 0 5 6 0 (FEAT_MTE)
    TPIDR2_EL0:: Register(0x5E85_1000)
    3 3 13 0 5 (SME thread pointer 2)
    TPIDRRO_EL0:: Register(0x5E83_1000)
    3 3 13 0 3
    TPIDR_… 4
    TPIDR_EL0:: Register(0x5E82_1000)
    3 3 13 0 2
    TPIDR_EL1:: Register(0x4684_1000)
    3 0 13 0 4
    TPIDR_EL2:: Register(0x6682_1000)
    3 4 13 0 2
    TPIDR_EL3:: Register(0x7682_1000)
    3 6 13 0 2
    TRBBASER_EL1:: Register(0x44DA_1000)
    op0 op1 CRn CRm op2
    TRBIDR_EL1:: Register(0x44DF_1000)
    3 0 9 11 7
    TRBLIMITR_EL1:: Register(0x44D8_1000)
    3 0 9 11 0
    TRBMAR_EL1:: Register(0x44DC_1000)
    3 0 9 11 4
    TRBPTR_EL1:: Register(0x44D9_1000)
    3 0 9 11 1
    TRBSR_EL1:: Register(0x44DB_1000)
    3 0 9 11 3
    TRBTRG_EL1:: Register(0x44DE_1000)
    3 0 9 11 6
    TTBR0_EL1:: Register(0x4100_1000)
    3 0 2 0 0
    TTBR1_EL1:: Register(0x4101_1000)
    3 0 2 0 1
    V0:: Register(REG_V | 0)
    V1:: Register(REG_V | 1)
    V10:: Register(REG_V | 10)
    V11:: Register(REG_V | 11)
    V12:: Register(REG_V | 12)
    V13:: Register(REG_V | 13)
    V14:: Register(REG_V | 14)
    V15:: Register(REG_V | 15)
    V16:: Register(REG_V | 16)
    V17:: Register(REG_V | 17)
    V18:: Register(REG_V | 18)
    V19:: Register(REG_V | 19)
    V2:: Register(REG_V | 2)
    V20:: Register(REG_V | 20)
    V21:: Register(REG_V | 21)
    V22:: Register(REG_V | 22)
    V23:: Register(REG_V | 23)
    V24:: Register(REG_V | 24)
    V25:: Register(REG_V | 25)
    V26:: Register(REG_V | 26)
    V27:: Register(REG_V | 27)
    V28:: Register(REG_V | 28)
    V29:: Register(REG_V | 29)
    V3:: Register(REG_V | 3)
    V30:: Register(REG_V | 30)
    V31:: Register(REG_V | 31)
    V4:: Register(REG_V | 4)
    V5:: Register(REG_V | 5)
    V6:: Register(REG_V | 6)
    V7:: Register(REG_V | 7)
    V8:: Register(REG_V | 8)
    V9:: Register(REG_V | 9)
    VBAR_… 3
    VBAR_EL1:: Register(0x4600_1000)
    3 0 12 0 0
    VBAR_EL2:: Register(0x6600_1000)
    3 4 12 0 0
    VBAR_EL3:: Register(0x7600_1000)
    3 6 12 0 0
    VDISR_EL2:: Register(0x6609_1000)
    3 4 12 1 1
    VSESR_EL2:: Register(0x6293_1000)
    3 4 5 2 3
    VSHAPE_… 14
    VSHAPE_16B:: u8(16)
    VSHAPE_1D:: u8(56)
    VSHAPE_1Q:: u8(72)
    VSHAPE_2D:: u8(64)
    VSHAPE_2S:: u8(40)
    VSHAPE_4H:: u8(24)
    VSHAPE_4S:: u8(48)
    VSHAPE_8B:: u8(8)
    VSHAPE_8H:: u8(32)
    VSHAPE_ELEM_B:: u8(1)
    VSHAPE_ELEM_D:: u8(7)
    VSHAPE_ELEM_H:: u8(3)
    VSHAPE_ELEM_S:: u8(5)
    VSHAPE_NONE:: u8(4)
    Arrangement codes carried in Operand.size.

    Arrangement codes carried in Operand.size. Element views are odd and arrangements are multiples of 8, so the two can never be confused; 4 is the neutral "no vector shape" value every scalar class uses.

    VTCR_EL2:: Register(0x610A_1000)
    3 4 2 1 2
    VTTBR_EL2:: Register(0x6108_1000)
    3 4 2 1 0
    W0:: Register(REG_W | 0)
    W1:: Register(REG_W | 1)
    W10:: Register(REG_W | 10)
    W11:: Register(REG_W | 11)
    W12:: Register(REG_W | 12)
    W13:: Register(REG_W | 13)
    W14:: Register(REG_W | 14)
    W15:: Register(REG_W | 15)
    W16:: Register(REG_W | 16)
    W17:: Register(REG_W | 17)
    W18:: Register(REG_W | 18)
    W19:: Register(REG_W | 19)
    W2:: Register(REG_W | 2)
    W20:: Register(REG_W | 20)
    W21:: Register(REG_W | 21)
    W22:: Register(REG_W | 22)
    W23:: Register(REG_W | 23)
    W24:: Register(REG_W | 24)
    W25:: Register(REG_W | 25)
    W26:: Register(REG_W | 26)
    W27:: Register(REG_W | 27)
    W28:: Register(REG_W | 28)
    W29:: Register(REG_W | 29)
    W3:: Register(REG_W | 3)
    W30:: Register(REG_W | 30)
    W4:: Register(REG_W | 4)
    W5:: Register(REG_W | 5)
    W6:: Register(REG_W | 6)
    W7:: Register(REG_W | 7)
    W8:: Register(REG_W | 8)
    W9:: Register(REG_W | 9)
    WSP:: Register(REG_WSP | 31)
    WZR:: Register(REG_W | 31)
    X0:: Register(REG_X | 0)
    X1:: Register(REG_X | 1)
    X10:: Register(REG_X | 10)
    X11:: Register(REG_X | 11)
    X12:: Register(REG_X | 12)
    X13:: Register(REG_X | 13)
    X14:: Register(REG_X | 14)
    X15:: Register(REG_X | 15)
    X16:: Register(REG_X | 16)
    X17:: Register(REG_X | 17)
    X18:: Register(REG_X | 18)
    X19:: Register(REG_X | 19)
    X2:: Register(REG_X | 2)
    X20:: Register(REG_X | 20)
    X21:: Register(REG_X | 21)
    X22:: Register(REG_X | 22)
    X23:: Register(REG_X | 23)
    X24:: Register(REG_X | 24)
    X25:: Register(REG_X | 25)
    X26:: Register(REG_X | 26)
    X27:: Register(REG_X | 27)
    X28:: Register(REG_X | 28)
    X29:: Register(REG_X | 29)
    X3:: Register(REG_X | 3)
    X30:: Register(REG_X | 30)
    X4:: Register(REG_X | 4)
    X5:: Register(REG_X | 5)
    X6:: Register(REG_X | 6)
    X7:: Register(REG_X | 7)
    X8:: Register(REG_X | 8)
    X9:: Register(REG_X | 9)
    XZR:: Register(REG_X | 31)
    ZA_TILE_MASK:: u8(0xFC)
    ZERO's operand is an 8-bit mask, one bit per .d tile, written as the list of the largest tiles that exactly cover it: a .s tile is two .d tiles four apart, a…

    ZERO's operand is an 8-bit mask, one bit per .d tile, written as the list of the largest tiles that exactly cover it: a .s tile is two .d tiles four apart, a .h tile is four two apart, and the single .b tile is all eight.

    ZCR_… 3
    ZCR_EL1:: Register(0x4090_1000)
    3 0 1 2 0 (FEAT_SVE)
    ZCR_EL2:: Register(0x6090_1000)
    3 4 1 2 0
    ZCR_EL3:: Register(0x7090_1000)
    3 6 1 2 0
    ZSHAPE_… 5
    ZSHAPE_B:: u8(1)
    SVE element-width codes carried in Operand.size for a Z register.
    ZSHAPE_D:: u8(8)
    ZSHAPE_H:: u8(2)
    ZSHAPE_Q:: u8(16)
    ZSHAPE_S:: u8(4)
    ZT0:: Register(REG_ZT | 0)
    SME2's lookup table.

    SME2's lookup table. There is exactly one, so it takes no bits.

    Variables

    CLOBBER_FORMS ¶

    @(rodata)
    CLOBBER_FORMS: []Clobber = …

    DECODE_ENTRIES ¶

    @(rodata)
    DECODE_ENTRIES: []Decode_Entry = …

    DECODE_INDEX_OP0 ¶

    @(rodata)
    DECODE_INDEX_OP0: []Decode_Index = …

    ENCODE_FORMS ¶

    @(rodata)
    ENCODE_FORMS: []Encoding = …

    ENCODE_RUNS ¶

    @(rodata)
    ENCODE_RUNS: []Encode_Run = …

    SVE_PATTERN_NAMES ¶

    @(rodata)
    SVE_PATTERN_NAMES: [32]string = …
     

    The 32 SVE element-count patterns; the gaps are reserved and print as a bare number.

    SYSREG_NAMES ¶

    @(rodata)
    SYSREG_NAMES: [230]Sysreg_Name = …

    Procedures

    One row per procedure, under the procedure groups they belong to; each is a proc "contextless" unless it says otherwise.

    aprintproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil, allocator := context.allocator) -> string
    aprintlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil, allocator := context.allocator) -> string
    b_reg(n: u8) -> Register
    Scalar view constructors -- the hw number is the same V register.
    bprintproc(buf: []u8, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    bprintlnproc(buf: []u8, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    d_reg(n: u8) -> Register
    decodeproc(data: []u8, relocs: []Relocation, instructions: ^[dynamic]Instruction, inst_info: ^[dynamic]Instruction_Info, label_defs: ^[dynamic]rexcode_isa.Label_Definition, errors: ^[dynamic]rexcode_isa.Error, endianness: Endianness = .LITTLE) -> (byte_count: u32, ok: bool)
    decode_bitmask_imm(n, immr, imms: u8, is_64: bool) -> (value: u64, ok: bool)
    decode_bitmask_imm reconstructs the logical bitmask value from N:immr:imms, at the given width (32 or 64).

    decode_bitmask_imm reconstructs the logical bitmask value from N:immr:imms, at the given width (32 or 64). Returns ok=false if the encoding is invalid.

    decode_estimate_instruction_count(data: []u8) -> int
    Typical-case estimate (AArch64 is fixed 4 bytes/instruction, so this is exact).
    decode_max_instruction_count(data: []u8) -> int
    Exact instruction-count ceiling for data (AArch64 instructions are 4 bytes).

    Exact instruction-count ceiling for data (AArch64 instructions are 4 bytes).

    decode_reserveproc(instructions: ^[dynamic]Instruction, inst_info: ^[dynamic]Instruction_Info, label_defs: ^[dynamic]rexcode_isa.Label_Definition, data: []u8, exact: bool = false)
    Pre-size the caller's decode output arrays for data (reserves on top of any existing elements; nil to skip; exact=true for the ceiling, else the estimate).

    Pre-size the caller's decode output arrays for data (reserves on top of any existing elements; nil to skip; exact=true for the ceiling, else the estimate).

    emit_abs 2 forms
    emit_abs_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_abs_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_abs_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_abs_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_abs_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adcproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adc_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adclbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adclb_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adclb_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adcltproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adclt_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adclt_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_adcsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adcs_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add 6 forms
    emit_add_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_add_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_add_r_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8)
    emit_add_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_add_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_add_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_add_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_add_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_add_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_add_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_add_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_add_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_addgproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_addg_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_addhaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8)
    emit_addha_i_p_p_zsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8)
    emit_addhnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn2_v16b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn2_v4s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn2_v8h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn_v2s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn_v4h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addhn_v8b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds 3 forms
    emit_adds_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_adds_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_adds_r_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8)
    emit_addvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_addvaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8)
    emit_addva_i_p_p_zsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8)
    emit_adrproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_adr_r_lproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_adrpproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_adrp_r_lproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_aesd 2 forms
    emit_aesd_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_aesd_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_aese 2 forms
    emit_aese_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_aese_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_aesimc 2 forms
    emit_aesimc_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_aesimc_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_aesmc 2 forms
    emit_aesmc_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_aesmc_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_amx_clrproc(instructions: ^[dynamic]Instruction)
    emit_amx_clr_noneproc(instructions: ^[dynamic]Instruction)
    emit_amx_extrxproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_extrx_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_extryproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_extry_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma16proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma16_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma32proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma32_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma64proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fma64_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms16proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms16_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms32proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms32_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms64proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_fms64_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_genlutproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_genlut_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldxproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldx_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldyproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldy_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldzproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldziproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_ldzi_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_mac16proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_mac16_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_matfpproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_matfp_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_matintproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_matint_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_setproc(instructions: ^[dynamic]Instruction)
    emit_amx_set_noneproc(instructions: ^[dynamic]Instruction)
    emit_amx_stxproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_stx_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_styproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_sty_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_stzproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_stz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_stziproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_stzi_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_vecfpproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_vecfp_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_vecintproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_amx_vecint_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_and 4 forms
    emit_and_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_and_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_and_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_and_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_and_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_and_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_and_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_and_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_ands 3 forms
    emit_ands_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_ands_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ands_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asr 3 forms
    emit_asr_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_asr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asr_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_asr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asrrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asrr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asrr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asrr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_asrr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_at_s12e0rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e0r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e0wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e0w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e1rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e1r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e1wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s12e1w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e0rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e0r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e0wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e0w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1aproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1a_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e1w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e2rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e2r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e2wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e2w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e3rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e3r_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e3wproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_at_s1e3w_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autdaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autda_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autdbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autdb_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autdzaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autdza_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autdzbproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autdzb_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autiaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autia1716proc(instructions: ^[dynamic]Instruction)
    emit_autia1716_noneproc(instructions: ^[dynamic]Instruction)
    emit_autia_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autiaspproc(instructions: ^[dynamic]Instruction)
    emit_autiasp_noneproc(instructions: ^[dynamic]Instruction)
    emit_autibproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autib1716proc(instructions: ^[dynamic]Instruction)
    emit_autib1716_noneproc(instructions: ^[dynamic]Instruction)
    emit_autib_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_autibspproc(instructions: ^[dynamic]Instruction)
    emit_autibsp_noneproc(instructions: ^[dynamic]Instruction)
    emit_autizaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autiza_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autizbproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_autizb_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_bproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_alproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_al_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_ccproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_cc_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_csproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_cs_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_eqproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_eq_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_geproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_ge_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_gtproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_gt_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_hiproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_hi_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_leproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_le_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_lsproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_ls_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_ltproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_lt_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_miproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_mi_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_neproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_ne_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_nvproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_nv_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_plproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_pl_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_vcproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_vc_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_vsproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_b_vs_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_alproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_al_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_ccproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_cc_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_csproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_cs_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_eqproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_eq_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_geproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_ge_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_gtproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_gt_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_hiproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_hi_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_leproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_le_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_lsproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_ls_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_ltproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_lt_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_miproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_mi_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_neproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_ne_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_nvproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_nv_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_plproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_pl_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_vcproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_vc_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_vsproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bc_vs_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bcax 2 forms
    emit_bcax_v16b_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_bcax_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfadd 2 forms
    emit_bfadd_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfadd_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfclampproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfclamp_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfcvt 2 forms
    emit_bfcvt_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_bfcvt_zh_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfcvtnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_bfcvtn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_bfcvtn2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_bfcvtn_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_bfcvtntproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfcvtnt_zh_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfdotproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfdot_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmaxnmproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmaxnm_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfminnmproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfminnm_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmlaproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmla_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmlalbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmlalb_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmlaltproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmlalt_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmlsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmls_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmmlaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmmla_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bfmopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmopa_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmopsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmops_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmul 2 forms
    emit_bfmul_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfmul_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bfsub 2 forms
    emit_bfsub_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bfsub_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_bic 3 forms
    emit_bic_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_bic_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bic_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bic_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bic_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bic_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bic_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bics 2 forms
    emit_bics_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_bics_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bifproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bif_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bitproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bit_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_blproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_bl_lproc(instructions: ^[dynamic]Instruction, label: u32)
    emit_blrproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_blr_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_blraaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_blraa_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_blraazproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_blraaz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_blrabproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_blrab_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_blrabzproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_blrabz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_brproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_br_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_braaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_braa_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_braazproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_braaz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_brabproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_brab_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_brabzproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_brabz_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_brkproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_brk_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_brkaproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brka_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkasproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkas_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkb_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkbsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brkbs_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_brknproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_brkn_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_brkpaproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_brkpa_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_brkpbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_brkpb_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bsl 2 forms
    emit_bsl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bsl_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bsl1nproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bsl1n_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bsl2nproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_bsl2n_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_btiproc(instructions: ^[dynamic]Instruction)
    emit_bti_cproc(instructions: ^[dynamic]Instruction)
    emit_bti_c_noneproc(instructions: ^[dynamic]Instruction)
    emit_bti_jproc(instructions: ^[dynamic]Instruction)
    emit_bti_j_noneproc(instructions: ^[dynamic]Instruction)
    emit_bti_jcproc(instructions: ^[dynamic]Instruction)
    emit_bti_jc_noneproc(instructions: ^[dynamic]Instruction)
    emit_bti_noneproc(instructions: ^[dynamic]Instruction)
    emit_casproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_cas_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casa_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casabproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casab_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casahproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casah_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casalbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casalb_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casalhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casalh_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casb_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_cashproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_cash_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caslproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caslbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caslb_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caslhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caslh_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspa_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_casplproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_caspl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_cbnzproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_cbnz_r_lproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_cbzproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_cbz_r_lproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_ccmn 2 forms
    emit_ccmn_r_r_i_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond)
    emit_ccmn_r_i_i_cproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond)
    emit_ccmp 2 forms
    emit_ccmp_r_r_i_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond)
    emit_ccmp_r_i_i_cproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond)
    emit_cincproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cinc_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cinvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cinv_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cls 2 forms
    emit_cls_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cls_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cls_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cls_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cls_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_clz 2 forms
    emit_clz_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_clz_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_clz_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_clz_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_clz_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cmeqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmeq_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmeq_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmeq_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmeq_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmgeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmge_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmgtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmgt_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmgt_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhiproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhi_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhi_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmhs_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmleproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmle_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmltproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmlt_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cmn 3 forms
    emit_cmn_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_cmn_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8)
    emit_cmn_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_cmp 3 forms
    emit_cmp_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_cmp_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8)
    emit_cmp_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_cmpeqproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpeq_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpeq_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpeq_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpeq_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgeproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpge_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpge_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpge_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpge_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgtproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgt_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgt_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgt_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpgt_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphiproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphi_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphi_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphi_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphi_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphs_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphs_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphs_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmphs_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpleproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmple_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmple_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmple_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmple_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmploproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplo_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplo_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplo_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplo_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpls_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpls_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpls_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpls_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpltproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplt_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplt_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplt_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmplt_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpneproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpne_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpne_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpne_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmpne_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_cmtstproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cmtst_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cnegproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cneg_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond)
    emit_cnt 2 forms
    emit_cnt_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cnt_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cnt_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_cnt_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cnt_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cnt_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cntbproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cntb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cntdproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cntd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cnthproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cnth_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cntpproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8)
    emit_cntp_r_p_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8)
    emit_cntp_r_p_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8)
    emit_cntp_r_p_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8)
    emit_cntp_r_p_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8)
    emit_cntwproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_cntw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_compactproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_compact_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_compact_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_cpyproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register)
    emit_cpy_zb_p_rproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register)
    emit_cpy_zd_p_rproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register)
    emit_cpy_zh_p_rproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register)
    emit_cpy_zs_p_rproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register)
    emit_cpyeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpye_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfe_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfmproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfm_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyfp_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpymproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpym_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpypproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cpyp_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32b_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32chproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32ch_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cxproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32cx_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32h_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32xproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_crc32x_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_csdbproc(instructions: ^[dynamic]Instruction)
    emit_csdb_noneproc(instructions: ^[dynamic]Instruction)
    emit_cselproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csel_r_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csetproc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond)
    emit_cset_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond)
    emit_csetmproc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond)
    emit_csetm_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond)
    emit_csincproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csinc_r_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csinvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csinv_r_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csnegproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_csneg_r_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_dc_cigdpapaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cigdpapa_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cipapaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cipapa_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_ciswproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cisw_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_civacproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_civac_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cswproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_csw_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cvacproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cvac_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cvauproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_cvau_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_iswproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_isw_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_ivacproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_ivac_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_zvaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_dc_zva_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_decbproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_decb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_decd 2 forms
    emit_decd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_decd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_dech 2 forms
    emit_dech_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_dech_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_decp 2 forms
    emit_decp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_decp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_decp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_decp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_decp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_decp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_decp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_decw 2 forms
    emit_decw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_decw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_dghproc(instructions: ^[dynamic]Instruction)
    emit_dgh_noneproc(instructions: ^[dynamic]Instruction)
    emit_dmbproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_dmb_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_dsbproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_dsb_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_dup 3 forms
    emit_dup_v8b_veb_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v8b_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_zb_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_dup_v16b_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v16b_veb_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v2d_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v2d_ved_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v2s_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v2s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v4h_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v4h_veh_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v4s_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v4s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_v8h_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_dup_v8h_veh_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_dup_zd_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_dup_zh_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_dup_zs_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_eonproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_eon_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_eor 4 forms
    emit_eor_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_eor_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_eor_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_eor_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eor3 2 forms
    emit_eor3_v16b_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_eor3_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eor_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eor_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eor_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eor_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eorsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eors_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_eretproc(instructions: ^[dynamic]Instruction)
    emit_eret_noneproc(instructions: ^[dynamic]Instruction)
    emit_eretaaproc(instructions: ^[dynamic]Instruction)
    emit_eretaa_noneproc(instructions: ^[dynamic]Instruction)
    emit_eretabproc(instructions: ^[dynamic]Instruction)
    emit_eretab_noneproc(instructions: ^[dynamic]Instruction)
    emit_ext 2 forms
    emit_ext_v8b_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_ext_zb_zb_zb_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_ext_v16b_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_extrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_extr_r_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fabs 2 forms
    emit_fabs_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fabs_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fabs_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fabs_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_facgeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facge_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facge_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facge_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facge_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facge_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgt_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgt_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgt_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgt_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_facgt_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd 3 forms
    emit_fadd_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fadd_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fadd_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fadd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fadd_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fadd_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_faddpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_faddp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_faddp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_faddp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_faddp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_faddp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcadd_v2d_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcadd_v4h_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcadd_v4s_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcadd_v8h_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmeq 2 forms
    emit_fcmeq_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmeq_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmeq_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmeq_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmeq_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmeq_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmeq_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmeq_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmge 2 forms
    emit_fcmge_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmge_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmge_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmge_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmge_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmge_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmge_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmge_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmgt 2 forms
    emit_fcmgt_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmgt_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmgt_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmgt_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmgt_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmgt_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmgt_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmgt_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcmlaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmla_v2d_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmla_v4h_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmla_v4s_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmla_v8h_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_fcmle 2 forms
    emit_fcmle_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmle_ph_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmle_pd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmle_ps_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmle_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmle_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmle_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmle_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmlt 2 forms
    emit_fcmlt_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmlt_ph_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmlt_pd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmlt_ps_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fcmlt_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmlt_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmlt_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmlt_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmneproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmne_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmne_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmne_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmp_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmpeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmpe_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcmuoproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmuo_pd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmuo_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcmuo_ps_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fcselproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_fcsel_r_r_r_cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond)
    emit_fcvtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvt_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtasproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtas_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtauproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtau_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtl2_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtl2_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtl_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtl_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtms_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmuproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtmu_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtn2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtn2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtn_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtn_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtns_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnuproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtnu_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtps_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpuproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtpu_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtxnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtxn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtxn2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtxn_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzs_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzuproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fcvtzu_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fdiv 2 forms
    emit_fdiv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdiv_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdiv_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdivrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdivr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdivr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fdivr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fmadd_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fmax 2 forms
    emit_fmax_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmax_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmax_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmaxnm 2 forms
    emit_fmaxnm_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmaxnm_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnm_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmaxnm_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmaxnmpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxnmvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxnmv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxnmv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxnmv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmaxvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmaxv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmin 2 forms
    emit_fmin_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmin_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmin_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fminnm 2 forms
    emit_fminnm_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fminnm_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnm_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fminnm_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fminnmpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminnmvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminnmv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminnmv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminnmv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminp_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fminvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fminv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmla 3 forms
    emit_fmla_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmla_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmla_zh_zh_zh_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmla_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmla_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmla_zd_zd_zd_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmla_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmla_zs_zs_zs_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmls 3 forms
    emit_fmls_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmls_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmls_zh_zh_zh_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmls_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmls_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmls_zd_zd_zd_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmls_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmls_zs_zs_zs_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_fmopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmopa_i_p_p_zs_zsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmopsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmops_i_p_p_zs_zsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmov 2 forms
    emit_fmov_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmov_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_r_vedproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmov_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_fmov_ved_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fmsubproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fmsub_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fmul 3 forms
    emit_fmul_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fmul_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmul_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmul_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fmul_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fmul_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fmulxproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmulx_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmulx_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmulx_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmulx_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmulx_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fneg 2 forms
    emit_fneg_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fneg_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fneg_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fneg_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fnmaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fnmadd_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fnmlaproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmla_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmla_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmla_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmlsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmls_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmls_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmls_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fnmsubproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fnmsub_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_fnmulproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fnmul_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecpeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpe_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpe_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpe_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpe_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpe_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecps 2 forms
    emit_frecps_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecps_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frecps_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecps_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecps_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecps_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frecps_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frecps_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frecpx 2 forms
    emit_frecpx_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frecpx_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frecpx_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frecpx_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinta 2 forms
    emit_frinta_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinta_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinta_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinta_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinti 2 forms
    emit_frinti_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinti_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frinti_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frinti_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintm 2 forms
    emit_frintm_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintm_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintm_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintm_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintn 2 forms
    emit_frintn_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintn_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintn_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintn_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintp 2 forms
    emit_frintp_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintp_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintp_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintp_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintx 2 forms
    emit_frintx_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintx_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintx_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintx_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintz 2 forms
    emit_frintz_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintz_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frintz_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frintz_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frsqrteproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrte_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrte_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrte_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrte_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrte_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrts 2 forms
    emit_frsqrts_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frsqrts_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frsqrts_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frsqrts_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frsqrts_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frsqrts_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frsqrts_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_frsqrts_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsqrt 2 forms
    emit_fsqrt_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsqrt_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsqrt_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsub 3 forms
    emit_fsub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsub_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsub_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsub_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsub_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsub_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_fsubrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsubr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsubr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_fsubr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_ftsmulproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_ftsmul_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_ftsmul_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_ftsmul_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_gmiproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_gmi_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_hintproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_hint_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_histcntproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_histcnt_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_histcnt_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_histsegproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_histseg_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_hltproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_hlt_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_hvcproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_hvc_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_ic_ialluproc(instructions: ^[dynamic]Instruction)
    emit_ic_iallu_noneproc(instructions: ^[dynamic]Instruction)
    emit_ic_ialluisproc(instructions: ^[dynamic]Instruction)
    emit_ic_ialluis_noneproc(instructions: ^[dynamic]Instruction)
    emit_ic_ivauproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_ic_ivau_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_incbproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_incb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_incd 2 forms
    emit_incd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_incd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_inch 2 forms
    emit_inch_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_inch_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_incp 2 forms
    emit_incp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_incp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_incp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_incp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_incp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_incp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_incp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_incw 2 forms
    emit_incw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_incw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_index 4 forms
    emit_index_zb_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_index_zb_i_rproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register)
    emit_index_zb_r_iproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64)
    emit_index_zb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_index_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_index_zd_i_rproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register)
    emit_index_zd_r_iproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64)
    emit_index_zd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_index_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_index_zh_i_rproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register)
    emit_index_zh_r_iproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64)
    emit_index_zh_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_index_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_index_zs_i_rproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register)
    emit_index_zs_r_iproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64)
    emit_index_zs_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_ins 2 forms
    emit_ins_veb_i_veb_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64)
    emit_ins_veb_i_rproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register)
    emit_ins_ved_i_rproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register)
    emit_ins_ved_i_ved_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64)
    emit_ins_veh_i_rproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register)
    emit_ins_veh_i_veh_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64)
    emit_ins_ves_i_rproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register)
    emit_ins_ves_i_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64)
    emit_insrproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_insr_zb_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_insr_zd_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_insr_zh_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_insr_zs_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register)
    emit_irgproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_irg_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_isbproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_isb_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_ld1 2 forms
    emit_ld1_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld1_v2d_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1_v4s_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1_v8h_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld1_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld1_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld1b 2 forms
    emit_ld1b_zb_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1b_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1b_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1b_zpb_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1b_zqb_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1b_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1d 2 forms
    emit_ld1d_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1d_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1d_zpd_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1d_zqd_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1h 2 forms
    emit_ld1h_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1h_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1h_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1h_zph_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1h_zqh_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1h_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1qproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1q_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1rproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1r_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld1sbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sb_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sb_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sb_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1shproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sh_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sh_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1swproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1sw_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1w 2 forms
    emit_ld1w_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1w_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_ld1w_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1w_zps_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld1w_zqs_pnz_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ld2 2 forms
    emit_ld2_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld2_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld2_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld2_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld2_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld2rproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld2r_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld3 2 forms
    emit_ld3_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld3_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld3_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld3_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld3_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld3rproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld3r_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld4 2 forms
    emit_ld4_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld4_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld4_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld4_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld4_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_ld4rproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld4r_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldadd_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaddaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldadda_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaddalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaddal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaddlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaddl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaprproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapr_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaprbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaprb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaprhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaprh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapur_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapursbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapursb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurshproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapursh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapurswproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldapursw_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldarproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldar_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldarbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldarb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldarhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldarh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaxp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldaxrproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxr_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxrbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxrb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxrhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldaxrh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldclrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclr_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclra_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclralproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclral_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclrlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldclrl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeorproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeor_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeoraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeora_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeoralproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeoral_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeorlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldeorl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldff1bproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1b_zb_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1dproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1d_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1hproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1h_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1wproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldff1w_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldgproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldg_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldgmproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldgm_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldnpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldnp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldnt1bproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1b_zb_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1dproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1d_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1hproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1h_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1wproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldnt1w_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_ldpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldpswproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldpsw_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldr 4 forms
    emit_ldr_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldr_r_lproc(instructions: ^[dynamic]Instruction, dst: Register, label: u32)
    emit_ldr_z_mproc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory)
    emit_ldr_i_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_ldr_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory)
    emit_ldraaproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldraa_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrabproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrab_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrsbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrsb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrshproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrsh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrswproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldrsw_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldsetproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldset_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsetaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldseta_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsetalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsetal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsetlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsetl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmax_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxa_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmaxl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmin_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsmina_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldsminl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumax_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxa_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumaxl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumin_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldumina_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_lduminl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldurproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldur_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldursbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldursb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurshproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldursh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldurswproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldursw_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldxp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_ldxrproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxr_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxrbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxrb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxrhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldxrh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lsl 3 forms
    emit_lsl_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_lsl_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsl_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_lsl_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsl_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsl_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lslrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lslr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lslr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lslr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lslr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsr 3 forms
    emit_lsr_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_lsr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsr_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_lsr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsrrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsrr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsrr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsrr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_lsrr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_luti2proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti2_zpb_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti2_zph_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti2_zps_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti4proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti4_zpb_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti4_zph_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_luti4_zps_zt_z_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_maddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_madd_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_matchproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_match_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_match_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_mlaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mla_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mlsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mls_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mov 4 forms
    emit_mov_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_mov_pb_pproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_mov_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_mov_pb_p_pproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_mov_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_r_vebproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_r_vedproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_r_vehproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_r_vesproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_veb_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_veb_vebproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_ved_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_ved_vedproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_veh_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_veh_vehproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_ves_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_ves_vesproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mov_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_mov_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_mov_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_mova 2 forms
    emit_mova_zb_p_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64)
    emit_mova_i_p_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8)
    emit_moviproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movi_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_movkproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_movk_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_movnproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_movn_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_movsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_movs_pb_p_pproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_movzproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_movz_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_mrsproc(instructions: ^[dynamic]Instruction, dst: Register, sysreg: Register)
    emit_mrs_r_sproc(instructions: ^[dynamic]Instruction, dst: Register, sysreg: Register)
    emit_msr 2 forms
    emit_msr_i_iproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_msr_s_rproc(instructions: ^[dynamic]Instruction, sysreg: Register, src: Register)
    emit_msubproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_msub_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_mul 2 forms
    emit_mul_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mul_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_mul_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mul_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mul_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_mul_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_mul_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_mvnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mvn_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mvn_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mvn_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_mvniproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_mvni_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_mvni_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_mvni_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_mvni_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_nandproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nand_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nandsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nands_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nbslproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nbsl_zd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_neg 3 forms
    emit_neg_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_zb_p_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_neg_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_neg_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_neg_zd_p_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_neg_zh_p_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_neg_zs_p_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_negsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_negs_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_ngcproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ngc_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ngcsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ngcs_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nmatchproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nmatch_pb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nmatch_ph_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nopproc(instructions: ^[dynamic]Instruction)
    emit_nop_noneproc(instructions: ^[dynamic]Instruction)
    emit_norproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nor_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_norsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_nors_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_not 2 forms
    emit_not_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_not_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_not_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_orn 3 forms
    emit_orn_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_orn_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_orn_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_ornsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orns_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orr 4 forms
    emit_orr_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_orr_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_orr_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_orr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orr_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orrsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_orrs_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_pacdaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacda_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacdbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacdb_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacdzaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacdza_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacdzbproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacdzb_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacgaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pacga_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_paciaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacia1716proc(instructions: ^[dynamic]Instruction)
    emit_pacia1716_noneproc(instructions: ^[dynamic]Instruction)
    emit_pacia_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_paciaspproc(instructions: ^[dynamic]Instruction)
    emit_paciasp_noneproc(instructions: ^[dynamic]Instruction)
    emit_pacibproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacib1716proc(instructions: ^[dynamic]Instruction)
    emit_pacib1716_noneproc(instructions: ^[dynamic]Instruction)
    emit_pacib_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pacibspproc(instructions: ^[dynamic]Instruction)
    emit_pacibsp_noneproc(instructions: ^[dynamic]Instruction)
    emit_pacizaproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_paciza_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacizbproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pacizb_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_pfalseproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_pfalse_pbproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_pfirstproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pfirst_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmulproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmul_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmullproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmull2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmull2_v1q_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmull2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmull_v1q_v1d_v1dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmull_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_pmullbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmullb_zd_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmulltproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pmullt_zd_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pnextproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_pnext_pb_p_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_prfbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfb_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfdproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfd_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfh_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfm 2 forms
    emit_prfm_i_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_prfm_i_lproc(instructions: ^[dynamic]Instruction, imm: i64, label: u32)
    emit_prfumproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_prfum_i_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_prfwproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_prfw_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_psb_csyncproc(instructions: ^[dynamic]Instruction)
    emit_psb_csync_noneproc(instructions: ^[dynamic]Instruction)
    emit_ptrueproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64)
    emit_ptrue_pb_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64)
    emit_ptruesproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64)
    emit_ptrues_pb_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64)
    emit_raddhnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn2_v16b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn2_v4s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn2_v8h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn_v2s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn_v4h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_raddhn_v8b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rax1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rax1_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rbitproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rbit_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rbit_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rbit_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rdffrproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_rdffr_pbproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_rdsvlproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_rdsvl_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ret 2 forms
    emit_ret_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_ret_noneproc(instructions: ^[dynamic]Instruction)
    emit_retaaproc(instructions: ^[dynamic]Instruction)
    emit_retaa_noneproc(instructions: ^[dynamic]Instruction)
    emit_retabproc(instructions: ^[dynamic]Instruction)
    emit_retab_noneproc(instructions: ^[dynamic]Instruction)
    emit_rev 2 forms
    emit_rev_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_rev16proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev16_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev16_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev16_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev32_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev64_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_rev_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_rev_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_rev_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_rev_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_ror 2 forms
    emit_ror_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ror_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rshrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_rsubhnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn2_v16b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn2_v4s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn2_v8h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn_v2s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn_v4h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_rsubhn_v8b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saba_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd 2 forms
    emit_sabd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sabd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sabd_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sabd_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sabd_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sadalpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v1d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v2s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v4h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sadalp_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddlpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v1d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v2s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v4h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlp_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddlv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_saddwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw2_v2d_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw2_v4s_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw2_v8h_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw_v2d_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw_v4s_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_saddw_v8h_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sbproc(instructions: ^[dynamic]Instruction)
    emit_sb_noneproc(instructions: ^[dynamic]Instruction)
    emit_sbcproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sbc_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sbclbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbclb_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbclb_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbcltproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbclt_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbclt_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sbcsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sbcs_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_scvtfproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_scvtf_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sdiv 2 forms
    emit_sdiv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sdiv_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sdiv_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sdotproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sdot_v2s_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sdot_v4s_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_selproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sel_pb_p_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_seteproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sete_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_setffrproc(instructions: ^[dynamic]Instruction)
    emit_setffr_noneproc(instructions: ^[dynamic]Instruction)
    emit_setmproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_setm_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_setpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_setp_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sevproc(instructions: ^[dynamic]Instruction)
    emit_sev_noneproc(instructions: ^[dynamic]Instruction)
    emit_sevlproc(instructions: ^[dynamic]Instruction)
    emit_sevl_noneproc(instructions: ^[dynamic]Instruction)
    emit_sha1cproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1c_r_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha1h_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha1mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1m_r_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1p_r_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1su0proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1su0_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha1su1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha1su1_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha256hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha256h2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha256h2_r_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha256h_r_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha256su0proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha256su0_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha256su1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha256su1_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512h2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512h2_r_r_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512h_r_r_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512su0proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha512su0_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sha512su1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sha512su1_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shl_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shsubproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_shsub_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sliproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sli_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sm3partw1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sm3partw1_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sm3partw2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sm3partw2_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sm3ss1proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_sm3ss1_v4s_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_sm3tt1aproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt1a_v4s_v4s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt1bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt1b_v4s_v4s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt2aproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt2a_v4s_v4s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt2bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm3tt2b_v4s_v4s_ves_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_sm4eproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sm4e_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sm4ekeyproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sm4ekey_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaddlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_smaddl_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_smax 2 forms
    emit_smax_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smax_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smax_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smax_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smax_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smaxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smaxvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smaxv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smaxv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smaxv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smaxv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smaxv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smcproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_smc_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_smin 2 forms
    emit_smin_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smin_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smin_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smin_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smin_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sminpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sminvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sminv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sminv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sminv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sminv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sminv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_smlalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlal_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlslproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smlsl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smopa_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smopa_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smopsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smops_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smops_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smstartproc(instructions: ^[dynamic]Instruction)
    emit_smstart_noneproc(instructions: ^[dynamic]Instruction)
    emit_smstopproc(instructions: ^[dynamic]Instruction)
    emit_smstop_noneproc(instructions: ^[dynamic]Instruction)
    emit_smsublproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_smsubl_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_smulh 2 forms
    emit_smulh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smulh_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smulh_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smulh_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smulh_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_smullproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_smull_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_spliceproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_splice_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sqadd 2 forms
    emit_sqadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqadd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqadd_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqadd_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqdecb 2 forms
    emit_sqdecb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqdecb_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqdecd 3 forms
    emit_sqdecd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqdecd_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqdecd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqdech 3 forms
    emit_sqdech_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqdech_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqdech_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqdecp 3 forms
    emit_sqdecp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqdecp_r_pb_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqdecp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqdecp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqdecp_r_pd_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqdecp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqdecp_r_ph_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqdecp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqdecp_r_ps_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqdecp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqdecp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqdecw 3 forms
    emit_sqdecw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqdecw_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqdecw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqdmlalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlal2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlal2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlal2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlal_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlal_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlslproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlsl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlsl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlsl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlsl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmlsl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmulhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmulh_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmulh_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmulh_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmulh_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmullproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmull2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmull2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmull2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmull_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqdmull_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqincb 2 forms
    emit_sqincb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqincb_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqincd 3 forms
    emit_sqincd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqincd_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqincd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqinch 3 forms
    emit_sqinch_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqinch_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqinch_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqincp 3 forms
    emit_sqincp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqincp_r_pb_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqincp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqincp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqincp_r_pd_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqincp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqincp_r_ph_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqincp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_sqincp_r_ps_rproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register)
    emit_sqincp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqincp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_sqincw 3 forms
    emit_sqincw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_sqincw_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_sqincw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_sqrdmlahproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlah_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlah_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlah_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlah_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlshproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlsh_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlsh_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlsh_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmlsh_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqrdmulhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqrdmulh_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqrdmulh_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqrdmulh_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqrdmulh_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqrshrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrunproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqrshrun_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshl_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshluproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshlu_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrunproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqshrun_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqsub 2 forms
    emit_sqsub_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqsub_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sqsub_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqsub_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqsub_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sqxtnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn2_v16b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtn_v8b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtunproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun2_v16b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sqxtun_v8b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_srhaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srhadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sriproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sri_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshl_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srshrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srshr_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srsra_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshl_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sshllproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll2_v2d_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll2_v4s_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll2_v8h_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll_v2d_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll_v4s_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshll_v8h_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sshr_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssra_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ssublproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw2_v2d_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw2_v4s_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw2_v8h_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw_v2d_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw_v4s_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ssubw_v8h_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_st1 2 forms
    emit_st1_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st1_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st1_v2d_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st1_v4s_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st1_v8h_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st1_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st1_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st1_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st1b 2 forms
    emit_st1b_zb_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1b_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1b_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1b_zpb_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1b_zqb_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1b_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1d 2 forms
    emit_st1d_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1d_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1d_zpd_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1d_zqd_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1h 2 forms
    emit_st1h_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1h_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1h_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1h_zph_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1h_zqh_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1h_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1qproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1q_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1w 2 forms
    emit_st1w_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1w_i_p_mproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory)
    emit_st1w_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1w_zps_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st1w_zqs_pn_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_st2 2 forms
    emit_st2_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st2_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st2_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st2_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st2_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st2gproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st2g_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st3 2 forms
    emit_st3_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st3_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st3_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st3_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st3_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st4 2 forms
    emit_st4_v16b_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st4_veb_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st4_ved_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st4_veh_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_st4_ves_i_mproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory)
    emit_stgproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stg_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stgmproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stgm_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stgpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stgp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlrproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlr_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlrbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlrb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlrhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlrh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlurproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlur_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlurbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlurb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlurhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlurh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stlxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory)
    emit_stlxp_r_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory)
    emit_stlxrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlxr_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlxrbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlxrb_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlxrhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stlxrh_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stnpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stnp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stnt1bproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1b_zb_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1dproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1d_zd_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1hproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1h_zh_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1wproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stnt1w_zs_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory)
    emit_stpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_str 3 forms
    emit_str_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_str_z_mproc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory)
    emit_str_i_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_str_p_mproc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory)
    emit_strbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_strb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_strhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_strh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sturproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stur_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sturbproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sturb_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sturhproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sturh_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory)
    emit_stxp_r_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory)
    emit_stxrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stxr_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stxrbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stxrb_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stxrhproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stxrh_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_stz2gproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stz2g_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stzgproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stzg_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stzgmproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_stzgm_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sub 6 forms
    emit_sub_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sub_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_sub_r_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8)
    emit_sub_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sub_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sub_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sub_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sub_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sub_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sub_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sub_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sub_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_sub_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sub_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_subgproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_subg_r_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64)
    emit_subhnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn2_v16b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn2_v4s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn2_v8h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn_v2s_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn_v4h_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subhn_v8b_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subp_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subpsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subps_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subrproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_subr_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_subr_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_subr_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_subr_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_subs 3 forms
    emit_subs_r_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_subs_r_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8)
    emit_subs_r_r_exproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8)
    emit_sumopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_sumopa_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_svcproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_svc_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_swpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swp_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swpaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swpa_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swpalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swpal_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swplproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_swpl_r_r_mproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory)
    emit_sxtbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtb_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxthproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxth_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl2_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl2_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl2_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtl_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_sxtw_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_tbl 2 forms
    emit_tbl_v8b_v16b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_tbl_zb_zl1b_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_tbl_zb_zl2b_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbl_zd_zl1d_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbl_zh_zl1h_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbl_zs_zl1s_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbnzproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32)
    emit_tbnz_r_i_lproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32)
    emit_tbx 2 forms
    emit_tbx_v8b_v16b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_tbx_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tbx_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_tbzproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32)
    emit_tbz_r_i_lproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32)
    emit_tcancelproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_tcancel_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_tcommitproc(instructions: ^[dynamic]Instruction)
    emit_tcommit_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle1proc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle1_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle1isproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle1is_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle2proc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle2_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle2isproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle2is_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle3proc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle3_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle3isproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_alle3is_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_aside1proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_aside1_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_aside1isproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_aside1is_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_paallproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_paall_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_paallosproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_paallos_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_rpalosproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_rpalos_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_rpaosproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_rpaos_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaae1proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaae1_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaae1isproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaae1is_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaale1proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaale1_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaale1isproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vaale1is_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vae1proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vae1_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vae1isproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vae1is_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vale1proc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vale1_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vale1isproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vale1is_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tlbi_vmalle1proc(instructions: ^[dynamic]Instruction)
    emit_tlbi_vmalle1_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_vmalle1isproc(instructions: ^[dynamic]Instruction)
    emit_tlbi_vmalle1is_noneproc(instructions: ^[dynamic]Instruction)
    emit_trn1 2 forms
    emit_trn1_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn1_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn1_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn1_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn1_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn1_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn2 2 forms
    emit_trn2_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn2_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn2_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_trn2_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn2_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_trn2_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_tsb_csyncproc(instructions: ^[dynamic]Instruction)
    emit_tsb_csync_noneproc(instructions: ^[dynamic]Instruction)
    emit_tst 2 forms
    emit_tst_r_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_tst_r_shproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8)
    emit_tstartproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_tstart_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_ttestproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_ttest_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_uabaproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaba_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd 2 forms
    emit_uabd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_uabd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uabd_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_uabd_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_uabd_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_uadalpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v1d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v2s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v4h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uadalp_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddlpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v1d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v2s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v4h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlp_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddlv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uaddwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw2_v2d_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw2_v4s_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw2_v8h_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw_v2d_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw_v4s_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uaddw_v8h_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ucvtfproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ucvtf_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_udiv 2 forms
    emit_udiv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_udiv_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_udiv_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_udotproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_udot_v2s_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_udot_v4s_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsubproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uhsub_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaddlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_umaddl_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_umax 2 forms
    emit_umax_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umax_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umax_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umax_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umax_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umaxpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umaxvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umaxv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umaxv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umaxv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umaxv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umaxv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umin 2 forms
    emit_umin_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umin_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umin_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umin_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umin_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_uminpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminp_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uminvproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uminv_r_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uminv_r_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uminv_r_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uminv_r_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uminv_r_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_umlalproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlal_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlslproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umlsl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umopa_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umopa_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umopsproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umops_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umops_i_p_p_zh_zhproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umsublproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_umsubl_r_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register)
    emit_umulh 2 forms
    emit_umulh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umulh_zb_p_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umulh_zd_p_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umulh_zh_p_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umulh_zs_p_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_umullproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_umull_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd 2 forms
    emit_uqadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqadd_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqadd_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqadd_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqdecbproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqdecb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqdecd 2 forms
    emit_uqdecd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqdecd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqdech 2 forms
    emit_uqdech_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqdech_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqdecp 2 forms
    emit_uqdecp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqdecp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqdecp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqdecp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqdecp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqdecp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqdecp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqdecw 2 forms
    emit_uqdecw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqdecw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqincbproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqincb_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqincd 2 forms
    emit_uqincd_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqincd_zd_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqinch 2 forms
    emit_uqinch_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqinch_zh_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqincp 2 forms
    emit_uqincp_r_pbproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqincp_zh_phproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqincp_r_pdproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqincp_r_phproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqincp_r_psproc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8)
    emit_uqincp_zd_pdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqincp_zs_psproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uqincw 2 forms
    emit_uqincw_r_i_iproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64)
    emit_uqincw_zs_i_iproc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64)
    emit_uqrshrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqrshrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn2_v16b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn2_v4s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn2_v8h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn_v2s_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn_v4h_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqshrn_v8b_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_uqsub 2 forms
    emit_uqsub_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqsub_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uqsub_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqsub_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqsub_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uqxtnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn2_v16b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uqxtn_v8b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_urecpeproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_urecpe_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_urecpe_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_urhaddproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urhadd_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshl_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_urshrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_urshr_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursqrteproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ursqrte_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ursqrte_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ursraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ursra_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usdotproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usdot_v2s_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usdot_v4s_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushl_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ushllproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll2_v2d_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll2_v4s_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll2_v8h_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll_v2d_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll_v4s_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushll_v8h_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushrproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ushr_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usmopaproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_usmopa_i_p_p_zb_zbproc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8)
    emit_usraproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v16b_v16b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v2s_v2s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v4h_v4h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v4s_v4s_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v8b_v8b_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usra_v8h_v8h_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_usublproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl2_v2d_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl2_v4s_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl2_v8h_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl_v2d_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl_v4s_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubl_v8h_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw2_v2d_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw2_v4s_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw2_v8h_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw_v2d_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw_v4s_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_usubw_v8h_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uxtbproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtb_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxthproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxth_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtlproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl2_v2d_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl2_v4s_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl2_v8h_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl_v2d_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl_v4s_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtl_v8h_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtwproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uxtw_r_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_uzp 2 forms
    emit_uzp_zpb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp_zqb_zqbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_uzp1 2 forms
    emit_uzp1_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp1_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp1_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp1_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp1_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp1_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp2 2 forms
    emit_uzp2_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp2_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp2_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_uzp2_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp2_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_uzp2_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_wfeproc(instructions: ^[dynamic]Instruction)
    emit_wfe_noneproc(instructions: ^[dynamic]Instruction)
    emit_wfetproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_wfet_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_wfiproc(instructions: ^[dynamic]Instruction)
    emit_wfi_noneproc(instructions: ^[dynamic]Instruction)
    emit_wfitproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_wfit_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_whilegeproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilege_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilege_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilege_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilege_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilegtproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilegt_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilegt_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilegt_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilegt_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehiproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehi_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehi_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehi_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehi_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehsproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehs_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehs_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehs_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilehs_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whileleproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilele_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilele_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilele_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilele_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whileloproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelo_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelo_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelo_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelo_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelsproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilels_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilels_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilels_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilels_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whileltproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelt_pb_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelt_pd_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelt_ph_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_whilelt_ps_r_rproc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register)
    emit_wrffrproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_wrffr_pbproc(instructions: ^[dynamic]Instruction, rz: u8)
    emit_xar 2 forms
    emit_xar_v2d_v2d_v2d_iproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64)
    emit_xar_zd_zd_zd_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_xar_zb_zb_zb_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_xar_zh_zh_zh_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_xar_zs_zs_zs_iproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64)
    emit_xpacdproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_xpacd_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_xpaciproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_xpaci_rproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_xpaclriproc(instructions: ^[dynamic]Instruction)
    emit_xpaclri_noneproc(instructions: ^[dynamic]Instruction)
    emit_xtnproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn2proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn2_v16b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn2_v4s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn2_v8h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn_v2s_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn_v4h_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_xtn_v8b_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_yieldproc(instructions: ^[dynamic]Instruction)
    emit_yield_noneproc(instructions: ^[dynamic]Instruction)
    emit_zeroproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_zero_iproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_zip 2 forms
    emit_zip_zpb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip_zqb_zqbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8)
    emit_zip1 2 forms
    emit_zip1_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip1_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip1_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip1_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip1_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip1_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip2 2 forms
    emit_zip2_v8b_v8b_v8bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_zb_zb_zbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip2_pb_pb_pbproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip2_v16b_v16b_v16bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_v2d_v2d_v2dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_v2s_v2s_v2sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_v4h_v4h_v4hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_v4s_v4s_v4sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_v8h_v8h_v8hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_zip2_zd_zd_zdproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip2_zh_zh_zhproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    emit_zip2_zs_zs_zsproc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8)
    encodeproc(instructions: []Instruction, label_defs: []rexcode_isa.Label_Definition, code: []u8, relocs: ^[dynamic]Relocation, errors: ^[dynamic]rexcode_isa.Error, endianness: Endianness = .LITTLE, resolve: bool = true, base_address: u64 = 0) -> (byte_count: u32, ok: bool)
    encode_bitmask_imm(value: u64, is_64: bool) -> (n: u8, immr: u8, imms: u8, ok: bool)
    encode_bitmask_imm runs the bitmask-immediate algorithm and returns the three component fields (N, immr, imms) along with a success flag.
    encode_max_code_size(instructions: []Instruction) -> int
    encode_max_relocation_count(instructions: []Instruction) -> int
    encode_reserveproc(code: ^[dynamic]u8, relocs: ^[dynamic]Relocation, instructions: []Instruction)
    Pre-size the caller's encode outputs (code grown by length so code[:] is a valid emit target; relocs reserved by capacity) so the encode hot path never…

    Pre-size the caller's encode outputs (code grown by length so code[:] is a valid emit target; relocs reserved by capacity) so the encode hot path never reallocates. Allocates no new buffers; pass nil to skip either array.

    fprintproc(fd: ^os.File, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    fprintlnproc(fd: ^os.File, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    h_reg(n: u8) -> Register
    inst_abs 2 forms
    inst_abs_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_abs_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_abs_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_abs_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_abs_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_abs_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_abs_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_abs_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_abs_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_abs_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_abs_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adc(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adc_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adclb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adclb_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adclb_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adclt(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adclt_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adclt_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adcs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adcs_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add 6 forms
    inst_add_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_add_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_add_r_r_ex(dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction
    inst_add_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_add_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_add_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_add_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_add_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_add_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_add_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_add_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_add_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_addg(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_addg_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_addha(imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction
    inst_addha_i_p_p_zs(imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction
    inst_addhn(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn2_v16b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn2_v4s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn2_v8h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn_v2s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn_v4h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addhn_v8b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds 3 forms
    inst_adds_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_adds_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_adds_r_r_ex(dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction
    inst_addv(dst: Register, src: Register) -> Instruction
    inst_addv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_addv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_addv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_addv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_addv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_addva(imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction
    inst_addva_i_p_p_zs(imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction
    inst_adr(dst: Register, label: u32) -> Instruction
    inst_adr_r_l(dst: Register, label: u32) -> Instruction
    inst_adrp(dst: Register, label: u32) -> Instruction
    inst_adrp_r_l(dst: Register, label: u32) -> Instruction
    inst_aesd 2 forms
    inst_aesd_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_aesd_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_aese 2 forms
    inst_aese_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_aese_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_aesimc 2 forms
    inst_aesimc_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_aesimc_zb_zb(rz: u8, rz2: u8) -> Instruction
    inst_aesmc 2 forms
    inst_aesmc_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_aesmc_zb_zb(rz: u8, rz2: u8) -> Instruction
    inst_amx_clr() -> Instruction
    inst_amx_clr_none() -> Instruction
    inst_amx_extrx(dst: Register) -> Instruction
    inst_amx_extrx_r(dst: Register) -> Instruction
    inst_amx_extry(dst: Register) -> Instruction
    inst_amx_extry_r(dst: Register) -> Instruction
    inst_amx_fma16(dst: Register) -> Instruction
    inst_amx_fma16_r(dst: Register) -> Instruction
    inst_amx_fma32(dst: Register) -> Instruction
    inst_amx_fma32_r(dst: Register) -> Instruction
    inst_amx_fma64(dst: Register) -> Instruction
    inst_amx_fma64_r(dst: Register) -> Instruction
    inst_amx_fms16(dst: Register) -> Instruction
    inst_amx_fms16_r(dst: Register) -> Instruction
    inst_amx_fms32(dst: Register) -> Instruction
    inst_amx_fms32_r(dst: Register) -> Instruction
    inst_amx_fms64(dst: Register) -> Instruction
    inst_amx_fms64_r(dst: Register) -> Instruction
    inst_amx_genlut(dst: Register) -> Instruction
    inst_amx_genlut_r(dst: Register) -> Instruction
    inst_amx_ldx(dst: Register) -> Instruction
    inst_amx_ldx_r(dst: Register) -> Instruction
    inst_amx_ldy(dst: Register) -> Instruction
    inst_amx_ldy_r(dst: Register) -> Instruction
    inst_amx_ldz(dst: Register) -> Instruction
    inst_amx_ldz_r(dst: Register) -> Instruction
    inst_amx_ldzi(dst: Register) -> Instruction
    inst_amx_ldzi_r(dst: Register) -> Instruction
    inst_amx_mac16(dst: Register) -> Instruction
    inst_amx_mac16_r(dst: Register) -> Instruction
    inst_amx_matfp(dst: Register) -> Instruction
    inst_amx_matfp_r(dst: Register) -> Instruction
    inst_amx_matint(dst: Register) -> Instruction
    inst_amx_matint_r(dst: Register) -> Instruction
    inst_amx_set() -> Instruction
    inst_amx_set_none() -> Instruction
    inst_amx_stx(dst: Register) -> Instruction
    inst_amx_stx_r(dst: Register) -> Instruction
    inst_amx_sty(dst: Register) -> Instruction
    inst_amx_sty_r(dst: Register) -> Instruction
    inst_amx_stz(dst: Register) -> Instruction
    inst_amx_stz_r(dst: Register) -> Instruction
    inst_amx_stzi(dst: Register) -> Instruction
    inst_amx_stzi_r(dst: Register) -> Instruction
    inst_amx_vecfp(dst: Register) -> Instruction
    inst_amx_vecfp_r(dst: Register) -> Instruction
    inst_amx_vecint(dst: Register) -> Instruction
    inst_amx_vecint_r(dst: Register) -> Instruction
    inst_and 4 forms
    inst_and_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_and_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_and_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_and_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_and_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_and_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_and_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_and_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_ands 3 forms
    inst_ands_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_ands_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ands_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asr 3 forms
    inst_asr_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_asr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asr_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_asr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asrr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asrr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asrr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asrr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_asrr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_at_s12e0r(dst: Register) -> Instruction
    inst_at_s12e0r_r(dst: Register) -> Instruction
    inst_at_s12e0w(dst: Register) -> Instruction
    inst_at_s12e0w_r(dst: Register) -> Instruction
    inst_at_s12e1r(dst: Register) -> Instruction
    inst_at_s12e1r_r(dst: Register) -> Instruction
    inst_at_s12e1w(dst: Register) -> Instruction
    inst_at_s12e1w_r(dst: Register) -> Instruction
    inst_at_s1e0r(dst: Register) -> Instruction
    inst_at_s1e0r_r(dst: Register) -> Instruction
    inst_at_s1e0w(dst: Register) -> Instruction
    inst_at_s1e0w_r(dst: Register) -> Instruction
    inst_at_s1e1a(dst: Register) -> Instruction
    inst_at_s1e1a_r(dst: Register) -> Instruction
    inst_at_s1e1r(dst: Register) -> Instruction
    inst_at_s1e1r_r(dst: Register) -> Instruction
    inst_at_s1e1w(dst: Register) -> Instruction
    inst_at_s1e1w_r(dst: Register) -> Instruction
    inst_at_s1e2r(dst: Register) -> Instruction
    inst_at_s1e2r_r(dst: Register) -> Instruction
    inst_at_s1e2w(dst: Register) -> Instruction
    inst_at_s1e2w_r(dst: Register) -> Instruction
    inst_at_s1e3r(dst: Register) -> Instruction
    inst_at_s1e3r_r(dst: Register) -> Instruction
    inst_at_s1e3w(dst: Register) -> Instruction
    inst_at_s1e3w_r(dst: Register) -> Instruction
    inst_autda(dst: Register, src: Register) -> Instruction
    inst_autda_r_r(dst: Register, src: Register) -> Instruction
    inst_autdb(dst: Register, src: Register) -> Instruction
    inst_autdb_r_r(dst: Register, src: Register) -> Instruction
    inst_autdza(dst: Register) -> Instruction
    inst_autdza_r(dst: Register) -> Instruction
    inst_autdzb(dst: Register) -> Instruction
    inst_autdzb_r(dst: Register) -> Instruction
    inst_autia(dst: Register, src: Register) -> Instruction
    inst_autia1716() -> Instruction
    inst_autia1716_none() -> Instruction
    inst_autia_r_r(dst: Register, src: Register) -> Instruction
    inst_autiasp() -> Instruction
    inst_autiasp_none() -> Instruction
    inst_autib(dst: Register, src: Register) -> Instruction
    inst_autib1716() -> Instruction
    inst_autib1716_none() -> Instruction
    inst_autib_r_r(dst: Register, src: Register) -> Instruction
    inst_autibsp() -> Instruction
    inst_autibsp_none() -> Instruction
    inst_autiza(dst: Register) -> Instruction
    inst_autiza_r(dst: Register) -> Instruction
    inst_autizb(dst: Register) -> Instruction
    inst_autizb_r(dst: Register) -> Instruction
    inst_b(label: u32) -> Instruction
    inst_b_al(label: u32) -> Instruction
    inst_b_al_l(label: u32) -> Instruction
    inst_b_cc(label: u32) -> Instruction
    inst_b_cc_l(label: u32) -> Instruction
    inst_b_cs(label: u32) -> Instruction
    inst_b_cs_l(label: u32) -> Instruction
    inst_b_eq(label: u32) -> Instruction
    inst_b_eq_l(label: u32) -> Instruction
    inst_b_ge(label: u32) -> Instruction
    inst_b_ge_l(label: u32) -> Instruction
    inst_b_gt(label: u32) -> Instruction
    inst_b_gt_l(label: u32) -> Instruction
    inst_b_hi(label: u32) -> Instruction
    inst_b_hi_l(label: u32) -> Instruction
    inst_b_l(label: u32) -> Instruction
    inst_b_le(label: u32) -> Instruction
    inst_b_le_l(label: u32) -> Instruction
    inst_b_ls(label: u32) -> Instruction
    inst_b_ls_l(label: u32) -> Instruction
    inst_b_lt(label: u32) -> Instruction
    inst_b_lt_l(label: u32) -> Instruction
    inst_b_mi(label: u32) -> Instruction
    inst_b_mi_l(label: u32) -> Instruction
    inst_b_ne(label: u32) -> Instruction
    inst_b_ne_l(label: u32) -> Instruction
    inst_b_nv(label: u32) -> Instruction
    inst_b_nv_l(label: u32) -> Instruction
    inst_b_pl(label: u32) -> Instruction
    inst_b_pl_l(label: u32) -> Instruction
    inst_b_vc(label: u32) -> Instruction
    inst_b_vc_l(label: u32) -> Instruction
    inst_b_vs(label: u32) -> Instruction
    inst_b_vs_l(label: u32) -> Instruction
    inst_bc_al(label: u32) -> Instruction
    inst_bc_al_l(label: u32) -> Instruction
    inst_bc_cc(label: u32) -> Instruction
    inst_bc_cc_l(label: u32) -> Instruction
    inst_bc_cs(label: u32) -> Instruction
    inst_bc_cs_l(label: u32) -> Instruction
    inst_bc_eq(label: u32) -> Instruction
    inst_bc_eq_l(label: u32) -> Instruction
    inst_bc_ge(label: u32) -> Instruction
    inst_bc_ge_l(label: u32) -> Instruction
    inst_bc_gt(label: u32) -> Instruction
    inst_bc_gt_l(label: u32) -> Instruction
    inst_bc_hi(label: u32) -> Instruction
    inst_bc_hi_l(label: u32) -> Instruction
    inst_bc_le(label: u32) -> Instruction
    inst_bc_le_l(label: u32) -> Instruction
    inst_bc_ls(label: u32) -> Instruction
    inst_bc_ls_l(label: u32) -> Instruction
    inst_bc_lt(label: u32) -> Instruction
    inst_bc_lt_l(label: u32) -> Instruction
    inst_bc_mi(label: u32) -> Instruction
    inst_bc_mi_l(label: u32) -> Instruction
    inst_bc_ne(label: u32) -> Instruction
    inst_bc_ne_l(label: u32) -> Instruction
    inst_bc_nv(label: u32) -> Instruction
    inst_bc_nv_l(label: u32) -> Instruction
    inst_bc_pl(label: u32) -> Instruction
    inst_bc_pl_l(label: u32) -> Instruction
    inst_bc_vc(label: u32) -> Instruction
    inst_bc_vc_l(label: u32) -> Instruction
    inst_bc_vs(label: u32) -> Instruction
    inst_bc_vs_l(label: u32) -> Instruction
    inst_bcax 2 forms
    inst_bcax_v16b_v16b_v16b_v16b(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_bcax_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfadd 2 forms
    inst_bfadd_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfadd_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfclamp(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfclamp_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfcvt 2 forms
    inst_bfcvt_r_r(dst: Register, src: Register) -> Instruction
    inst_bfcvt_zh_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfcvtn(dst: Register, src: Register) -> Instruction
    inst_bfcvtn2(dst: Register, src: Register) -> Instruction
    inst_bfcvtn2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_bfcvtn_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_bfcvtnt(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfcvtnt_zh_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfdot(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfdot_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmaxnm(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmaxnm_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfminnm(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfminnm_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmla(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmla_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmlalb(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmlalb_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmlalt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmlalt_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmls(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmls_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmmla(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmmla_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bfmopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmopa_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmops(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmops_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmul 2 forms
    inst_bfmul_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfmul_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bfsub 2 forms
    inst_bfsub_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bfsub_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_bic 3 forms
    inst_bic_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_bic_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bic_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bic_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bic_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bic_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bic_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bics 2 forms
    inst_bics_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_bics_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bif(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bif_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bit(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bit_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bl(label: u32) -> Instruction
    inst_bl_l(label: u32) -> Instruction
    inst_blr(dst: Register) -> Instruction
    inst_blr_r(dst: Register) -> Instruction
    inst_blraa(dst: Register, src: Register) -> Instruction
    inst_blraa_r_r(dst: Register, src: Register) -> Instruction
    inst_blraaz(dst: Register) -> Instruction
    inst_blraaz_r(dst: Register) -> Instruction
    inst_blrab(dst: Register, src: Register) -> Instruction
    inst_blrab_r_r(dst: Register, src: Register) -> Instruction
    inst_blrabz(dst: Register) -> Instruction
    inst_blrabz_r(dst: Register) -> Instruction
    inst_br(dst: Register) -> Instruction
    inst_br_r(dst: Register) -> Instruction
    inst_braa(dst: Register, src: Register) -> Instruction
    inst_braa_r_r(dst: Register, src: Register) -> Instruction
    inst_braaz(dst: Register) -> Instruction
    inst_braaz_r(dst: Register) -> Instruction
    inst_brab(dst: Register, src: Register) -> Instruction
    inst_brab_r_r(dst: Register, src: Register) -> Instruction
    inst_brabz(dst: Register) -> Instruction
    inst_brabz_r(dst: Register) -> Instruction
    inst_branch(m: Mnemonic, label_id: u32) -> Instruction
    PC-relative branch (B, BL).
    inst_brk(imm: i64) -> Instruction
    inst_brk_i(imm: i64) -> Instruction
    inst_brka(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brka_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkas(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkas_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkb_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkbs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkbs_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_brkn(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_brkn_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_brkpa(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_brkpa_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_brkpb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_brkpb_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bsl 2 forms
    inst_bsl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bsl_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bsl1n(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bsl1n_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bsl2n(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bsl2n_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_bti() -> Instruction
    inst_bti_c() -> Instruction
    inst_bti_c_none() -> Instruction
    inst_bti_j() -> Instruction
    inst_bti_j_none() -> Instruction
    inst_bti_jc() -> Instruction
    inst_bti_jc_none() -> Instruction
    inst_bti_none() -> Instruction
    inst_cas(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_cas_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casa(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casa_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casab(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casab_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casah(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casah_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casalb(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casalb_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casalh(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casalh_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casb(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casb_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_cash(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_cash_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caslb(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caslb_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caslh(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caslh_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_casp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspa(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspa_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_caspl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_cbnz(dst: Register, label: u32) -> Instruction
    inst_cbnz_r_l(dst: Register, label: u32) -> Instruction
    inst_cbz(dst: Register, label: u32) -> Instruction
    inst_cbz_r_l(dst: Register, label: u32) -> Instruction
    inst_ccmn 2 forms
    inst_ccmn_r_r_i_c(dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction
    inst_ccmn_r_i_i_c(dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction
    inst_ccmp 2 forms
    inst_ccmp_r_r_i_c(dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction
    inst_ccmp_r_i_i_c(dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction
    inst_cinc(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cinc_r_r_c(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cinv(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cinv_r_r_c(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cls 2 forms
    inst_cls_r_r(dst: Register, src: Register) -> Instruction
    inst_cls_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cls_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_cls_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_cls_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_cls_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_cls_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_cls_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_cls_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cls_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cls_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_clz 2 forms
    inst_clz_r_r(dst: Register, src: Register) -> Instruction
    inst_clz_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_clz_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_clz_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_clz_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_clz_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_clz_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_clz_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_clz_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_clz_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_clz_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cmeq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmeq_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmeq_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmeq_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmeq_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmge_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmgt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmgt_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmgt_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhi(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhi_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhi_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmhs_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmle(dst: Register, src: Register) -> Instruction
    inst_cmle_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_cmle_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_cmle_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_cmle_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_cmle_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_cmle_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_cmle_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_cmlt(dst: Register, src: Register) -> Instruction
    inst_cmlt_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_cmlt_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_cmlt_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_cmlt_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_cmlt_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_cmlt_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_cmlt_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_cmn 3 forms
    inst_cmn_r_sh(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_cmn_r_ex(dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction
    inst_cmn_r_i(dst: Register, imm: i64) -> Instruction
    inst_cmp 3 forms
    inst_cmp_r_sh(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_cmp_r_ex(dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction
    inst_cmp_r_i(dst: Register, imm: i64) -> Instruction
    inst_cmpeq(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpeq_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpeq_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpeq_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpeq_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpge(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpge_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpge_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpge_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpge_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpgt(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpgt_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpgt_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpgt_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpgt_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphi(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphi_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphi_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphi_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphi_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphs_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphs_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphs_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmphs_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmple(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmple_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmple_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmple_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmple_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplo(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplo_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplo_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplo_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplo_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpls(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpls_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpls_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpls_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpls_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplt(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplt_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplt_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplt_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmplt_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpne(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpne_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpne_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpne_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmpne_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_cmtst(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cmtst_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cneg(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cneg_r_r_c(dst: Register, src: Register, cond: Cond) -> Instruction
    inst_cnt 2 forms
    inst_cnt_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_cnt_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cnt_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_cnt_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cnt_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cnt_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cntb(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cntb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cntd(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cntd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cnth(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cnth_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cntp(dst: Register, rz1: u8, rz2: u8) -> Instruction
    inst_cntp_r_p_pb(dst: Register, rz1: u8, rz2: u8) -> Instruction
    inst_cntp_r_p_pd(dst: Register, rz1: u8, rz2: u8) -> Instruction
    inst_cntp_r_p_ph(dst: Register, rz1: u8, rz2: u8) -> Instruction
    inst_cntp_r_p_ps(dst: Register, rz1: u8, rz2: u8) -> Instruction
    inst_cntw(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_cntw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_compact(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_compact_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_compact_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_cpy(rz: u8, rz2: u8, src: Register) -> Instruction
    inst_cpy_zb_p_r(rz: u8, rz2: u8, src: Register) -> Instruction
    inst_cpy_zd_p_r(rz: u8, rz2: u8, src: Register) -> Instruction
    inst_cpy_zh_p_r(rz: u8, rz2: u8, src: Register) -> Instruction
    inst_cpy_zs_p_r(rz: u8, rz2: u8, src: Register) -> Instruction
    inst_cpye(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpye_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfe(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfe_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfm(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfm_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyfp_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpym(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpym_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cpyp_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32b_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cb(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cb_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32ch(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32ch_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cw(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cw_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cx(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32cx_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32h_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32w_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32x(dst: Register, src: Register, src2: Register) -> Instruction
    inst_crc32x_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_csdb() -> Instruction
    inst_csdb_none() -> Instruction
    inst_csel(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csel_r_r_r_c(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_cset(dst: Register, cond: Cond) -> Instruction
    inst_cset_r_c(dst: Register, cond: Cond) -> Instruction
    inst_csetm(dst: Register, cond: Cond) -> Instruction
    inst_csetm_r_c(dst: Register, cond: Cond) -> Instruction
    inst_csinc(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csinc_r_r_r_c(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csinv(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csinv_r_r_r_c(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csneg(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_csneg_r_r_r_c(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_dc_cigdpapa(dst: Register) -> Instruction
    inst_dc_cigdpapa_r(dst: Register) -> Instruction
    inst_dc_cipapa(dst: Register) -> Instruction
    inst_dc_cipapa_r(dst: Register) -> Instruction
    inst_dc_cisw(dst: Register) -> Instruction
    inst_dc_cisw_r(dst: Register) -> Instruction
    inst_dc_civac(dst: Register) -> Instruction
    inst_dc_civac_r(dst: Register) -> Instruction
    inst_dc_csw(dst: Register) -> Instruction
    inst_dc_csw_r(dst: Register) -> Instruction
    inst_dc_cvac(dst: Register) -> Instruction
    inst_dc_cvac_r(dst: Register) -> Instruction
    inst_dc_cvau(dst: Register) -> Instruction
    inst_dc_cvau_r(dst: Register) -> Instruction
    inst_dc_isw(dst: Register) -> Instruction
    inst_dc_isw_r(dst: Register) -> Instruction
    inst_dc_ivac(dst: Register) -> Instruction
    inst_dc_ivac_r(dst: Register) -> Instruction
    inst_dc_zva(dst: Register) -> Instruction
    inst_dc_zva_r(dst: Register) -> Instruction
    inst_decb(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_decb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_decd 2 forms
    inst_decd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_decd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_dech 2 forms
    inst_dech_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_dech_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_decp 2 forms
    inst_decp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_decp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_decp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_decp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_decp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_decp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_decp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_decw 2 forms
    inst_decw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_decw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_dgh() -> Instruction
    inst_dgh_none() -> Instruction
    inst_dmb(imm: i64) -> Instruction
    inst_dmb_i(imm: i64) -> Instruction
    inst_dsb(imm: i64) -> Instruction
    inst_dsb_i(imm: i64) -> Instruction
    inst_dup 3 forms
    inst_dup_v8b_veb_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v8b_r(dst: Register, src: Register) -> Instruction
    inst_dup_zb_r(rz: u8, src: Register) -> Instruction
    inst_dup_v16b_r(dst: Register, src: Register) -> Instruction
    inst_dup_v16b_veb_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v2d_r(dst: Register, src: Register) -> Instruction
    inst_dup_v2d_ved_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v2s_r(dst: Register, src: Register) -> Instruction
    inst_dup_v2s_ves_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v4h_r(dst: Register, src: Register) -> Instruction
    inst_dup_v4h_veh_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v4s_r(dst: Register, src: Register) -> Instruction
    inst_dup_v4s_ves_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_v8h_r(dst: Register, src: Register) -> Instruction
    inst_dup_v8h_veh_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_dup_zd_r(rz: u8, src: Register) -> Instruction
    inst_dup_zh_r(rz: u8, src: Register) -> Instruction
    inst_dup_zs_r(rz: u8, src: Register) -> Instruction
    inst_eon(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_eon_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_eor 4 forms
    inst_eor_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_eor_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_eor_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_eor_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eor3 2 forms
    inst_eor3_v16b_v16b_v16b_v16b(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_eor3_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eor_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eor_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eor_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eor_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eors(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eors_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_eret() -> Instruction
    inst_eret_none() -> Instruction
    inst_eretaa() -> Instruction
    inst_eretaa_none() -> Instruction
    inst_eretab() -> Instruction
    inst_eretab_none() -> Instruction
    inst_ext 2 forms
    inst_ext_v8b_v8b_v8b_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_ext_zb_zb_zb_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_ext_v16b_v16b_v16b_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_extr(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_extr_r_r_r_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fabs 2 forms
    inst_fabs_r_r(dst: Register, src: Register) -> Instruction
    inst_fabs_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fabs_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fabs_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fabs_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fabs_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fabs_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fabs_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fabs_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_facge(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facge_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facge_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facge_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facge_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facge_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_facgt_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd 3 forms
    inst_fadd_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fadd_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fadd_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fadd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fadd_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fadd_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_faddp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_faddp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_faddp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_faddp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_faddp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_faddp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcadd(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcadd_v2d_v2d_v2d_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcadd_v4h_v4h_v4h_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcadd_v4s_v4s_v4s_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcadd_v8h_v8h_v8h_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmeq 2 forms
    inst_fcmeq_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmeq_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmeq_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmeq_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmeq_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmeq_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmeq_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmeq_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmge 2 forms
    inst_fcmge_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmge_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmge_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmge_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmge_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmge_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmge_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmge_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmgt 2 forms
    inst_fcmgt_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmgt_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmgt_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmgt_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmgt_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmgt_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmgt_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmgt_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcmla(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmla_v2d_v2d_v2d_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmla_v4h_v4h_v4h_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmla_v4s_v4s_v4s_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmla_v8h_v8h_v8h_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_fcmle 2 forms
    inst_fcmle_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcmle_ph_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmle_pd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmle_ps_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmle_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcmle_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcmle_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcmle_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcmlt 2 forms
    inst_fcmlt_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcmlt_ph_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmlt_pd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmlt_ps_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fcmlt_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcmlt_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcmlt_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcmlt_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcmne(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmne_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmne_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmne_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmp(dst: Register, src: Register) -> Instruction
    inst_fcmp_r_r(dst: Register, src: Register) -> Instruction
    inst_fcmpe(dst: Register, src: Register) -> Instruction
    inst_fcmpe_r_r(dst: Register, src: Register) -> Instruction
    inst_fcmuo(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmuo_pd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmuo_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcmuo_ps_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fcsel(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_fcsel_r_r_r_c(dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction
    inst_fcvt(dst: Register, src: Register) -> Instruction
    inst_fcvt_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtas(dst: Register, src: Register) -> Instruction
    inst_fcvtas_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtas_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtas_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtas_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtas_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtas_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtau(dst: Register, src: Register) -> Instruction
    inst_fcvtau_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtau_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtau_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtau_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtau_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtau_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtl(dst: Register, src: Register) -> Instruction
    inst_fcvtl2(dst: Register, src: Register) -> Instruction
    inst_fcvtl2_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtl2_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtl_v2d_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtl_v4s_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtms(dst: Register, src: Register) -> Instruction
    inst_fcvtms_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtms_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtms_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtms_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtms_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtms_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtmu(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtmu_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtn(dst: Register, src: Register) -> Instruction
    inst_fcvtn2(dst: Register, src: Register) -> Instruction
    inst_fcvtn2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtn2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtn_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtn_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtns(dst: Register, src: Register) -> Instruction
    inst_fcvtns_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtns_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtns_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtns_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtns_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtns_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtnu(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtnu_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtps(dst: Register, src: Register) -> Instruction
    inst_fcvtps_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtps_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtps_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtps_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtps_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtps_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtpu(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtpu_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtxn(dst: Register, src: Register) -> Instruction
    inst_fcvtxn2(dst: Register, src: Register) -> Instruction
    inst_fcvtxn2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtxn_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtzs(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtzs_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fcvtzu(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_r_r(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fcvtzu_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fdiv 2 forms
    inst_fdiv_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdiv_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdiv_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdivr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdivr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdivr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fdivr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmadd(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fmadd_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fmax 2 forms
    inst_fmax_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmax_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmax_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmaxnm 2 forms
    inst_fmaxnm_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmaxnm_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnm_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmaxnm_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmaxnmp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxnmv(dst: Register, src: Register) -> Instruction
    inst_fmaxnmv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_fmaxnmv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_fmaxnmv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_fmaxp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmaxv(dst: Register, src: Register) -> Instruction
    inst_fmaxv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_fmaxv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_fmaxv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_fmin 2 forms
    inst_fmin_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmin_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmin_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fminnm 2 forms
    inst_fminnm_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fminnm_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnm_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fminnm_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fminnmp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminnmv(dst: Register, src: Register) -> Instruction
    inst_fminnmv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_fminnmv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_fminnmv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_fminp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminp_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fminv(dst: Register, src: Register) -> Instruction
    inst_fminv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_fminv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_fminv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_fmla 3 forms
    inst_fmla_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmla_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmla_zh_zh_zh_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmla_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmla_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmla_zd_zd_zd_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmla_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmla_zs_zs_zs_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmls 3 forms
    inst_fmls_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmls_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmls_zh_zh_zh_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmls_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmls_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmls_zd_zd_zd_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmls_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmls_zs_zs_zs_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_fmopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmopa_i_p_p_zs_zs(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmops(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmops_i_p_p_zs_zs(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmov 2 forms
    inst_fmov_r_r(dst: Register, src: Register) -> Instruction
    inst_fmov_r_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_r_ved(dst: Register, src: Register) -> Instruction
    inst_fmov_v2d_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_v2s_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_v4h_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_v4s_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_v8h_i(dst: Register, imm: i64) -> Instruction
    inst_fmov_ved_r(dst: Register, src: Register) -> Instruction
    inst_fmsub(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fmsub_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fmul 3 forms
    inst_fmul_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fmul_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmul_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmul_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fmul_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fmul_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fmulx(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmulx_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmulx_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmulx_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmulx_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmulx_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fneg 2 forms
    inst_fneg_r_r(dst: Register, src: Register) -> Instruction
    inst_fneg_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fneg_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fneg_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fneg_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fneg_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fneg_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fneg_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fneg_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fnmadd(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fnmadd_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fnmla(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmla_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmla_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmla_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmls(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmls_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmls_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmls_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fnmsub(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fnmsub_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_fnmul(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fnmul_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecpe(dst: Register, src: Register) -> Instruction
    inst_frecpe_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frecpe_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frecpe_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frecpe_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frecpe_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frecps 2 forms
    inst_frecps_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecps_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frecps_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecps_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecps_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecps_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frecps_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frecps_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frecpx 2 forms
    inst_frecpx_r_r(dst: Register, src: Register) -> Instruction
    inst_frecpx_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frecpx_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frecpx_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinta 2 forms
    inst_frinta_r_r(dst: Register, src: Register) -> Instruction
    inst_frinta_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinta_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frinta_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frinta_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frinta_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frinta_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frinta_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinta_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinti 2 forms
    inst_frinti_r_r(dst: Register, src: Register) -> Instruction
    inst_frinti_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinti_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frinti_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frinti_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frinti_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frinti_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frinti_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frinti_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintm 2 forms
    inst_frintm_r_r(dst: Register, src: Register) -> Instruction
    inst_frintm_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintm_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frintm_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frintm_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frintm_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frintm_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frintm_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintm_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintn 2 forms
    inst_frintn_r_r(dst: Register, src: Register) -> Instruction
    inst_frintn_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintn_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frintn_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frintn_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frintn_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frintn_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frintn_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintn_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintp 2 forms
    inst_frintp_r_r(dst: Register, src: Register) -> Instruction
    inst_frintp_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintp_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frintp_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frintp_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frintp_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frintp_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frintp_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintp_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintx 2 forms
    inst_frintx_r_r(dst: Register, src: Register) -> Instruction
    inst_frintx_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintx_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frintx_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frintx_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frintx_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frintx_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frintx_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintx_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintz 2 forms
    inst_frintz_r_r(dst: Register, src: Register) -> Instruction
    inst_frintz_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintz_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frintz_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frintz_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frintz_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frintz_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frintz_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frintz_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frsqrte(dst: Register, src: Register) -> Instruction
    inst_frsqrte_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_frsqrte_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_frsqrte_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_frsqrte_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_frsqrte_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_frsqrts 2 forms
    inst_frsqrts_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frsqrts_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frsqrts_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frsqrts_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frsqrts_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frsqrts_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frsqrts_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_frsqrts_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsqrt 2 forms
    inst_fsqrt_r_r(dst: Register, src: Register) -> Instruction
    inst_fsqrt_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsqrt_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_fsqrt_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_fsqrt_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_fsqrt_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_fsqrt_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_fsqrt_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsqrt_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsub 3 forms
    inst_fsub_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsub_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsub_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsub_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsub_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsub_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_fsubr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsubr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsubr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_fsubr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_ftsmul(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_ftsmul_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_ftsmul_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_ftsmul_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_gmi(dst: Register, src: Register, src2: Register) -> Instruction
    inst_gmi_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_hint(imm: i64) -> Instruction
    inst_hint_i(imm: i64) -> Instruction
    inst_histcnt(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_histcnt_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_histcnt_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_histseg(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_histseg_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_hlt(imm: i64) -> Instruction
    inst_hlt_i(imm: i64) -> Instruction
    inst_hvc(imm: i64) -> Instruction
    inst_hvc_i(imm: i64) -> Instruction
    inst_ic_iallu() -> Instruction
    inst_ic_iallu_none() -> Instruction
    inst_ic_ialluis() -> Instruction
    inst_ic_ialluis_none() -> Instruction
    inst_ic_ivau(dst: Register) -> Instruction
    inst_ic_ivau_r(dst: Register) -> Instruction
    inst_incb(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_incb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_incd 2 forms
    inst_incd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_incd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_inch 2 forms
    inst_inch_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_inch_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_incp 2 forms
    inst_incp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_incp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_incp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_incp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_incp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_incp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_incp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_incw 2 forms
    inst_incw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_incw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_index 4 forms
    inst_index_zb_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_index_zb_i_r(rz: u8, imm: i64, src: Register) -> Instruction
    inst_index_zb_r_i(rz: u8, src: Register, imm: i64) -> Instruction
    inst_index_zb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_index_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_index_zd_i_r(rz: u8, imm: i64, src: Register) -> Instruction
    inst_index_zd_r_i(rz: u8, src: Register, imm: i64) -> Instruction
    inst_index_zd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_index_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_index_zh_i_r(rz: u8, imm: i64, src: Register) -> Instruction
    inst_index_zh_r_i(rz: u8, src: Register, imm: i64) -> Instruction
    inst_index_zh_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_index_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_index_zs_i_r(rz: u8, imm: i64, src: Register) -> Instruction
    inst_index_zs_r_i(rz: u8, src: Register, imm: i64) -> Instruction
    inst_index_zs_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_ins 2 forms
    inst_ins_veb_i_veb_i(dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction
    inst_ins_veb_i_r(dst: Register, imm: i64, src: Register) -> Instruction
    inst_ins_ved_i_r(dst: Register, imm: i64, src: Register) -> Instruction
    inst_ins_ved_i_ved_i(dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction
    inst_ins_veh_i_r(dst: Register, imm: i64, src: Register) -> Instruction
    inst_ins_veh_i_veh_i(dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction
    inst_ins_ves_i_r(dst: Register, imm: i64, src: Register) -> Instruction
    inst_ins_ves_i_ves_i(dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction
    inst_insr(rz: u8, src: Register) -> Instruction
    inst_insr_zb_r(rz: u8, src: Register) -> Instruction
    inst_insr_zd_r(rz: u8, src: Register) -> Instruction
    inst_insr_zh_r(rz: u8, src: Register) -> Instruction
    inst_insr_zs_r(rz: u8, src: Register) -> Instruction
    inst_irg(dst: Register, src: Register, src2: Register) -> Instruction
    inst_irg_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_isb(imm: i64) -> Instruction
    inst_isb_i(imm: i64) -> Instruction
    inst_ld1 2 forms
    inst_ld1_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld1_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld1_v2d_m(dst: Register, mem: Memory) -> Instruction
    inst_ld1_v4s_m(dst: Register, mem: Memory) -> Instruction
    inst_ld1_v8h_m(dst: Register, mem: Memory) -> Instruction
    inst_ld1_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld1_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld1_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld1b 2 forms
    inst_ld1b_zb_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1b_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1b_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1b_zpb_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1b_zqb_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1b_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1d 2 forms
    inst_ld1d_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1d_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1d_zpd_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1d_zqd_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1h 2 forms
    inst_ld1h_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1h_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1h_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1h_zph_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1h_zqh_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1h_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1q(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1q_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1r(dst: Register, mem: Memory) -> Instruction
    inst_ld1r_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld1sb(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sb_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sb_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sb_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sh(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sh_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sh_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sw(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1sw_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1w 2 forms
    inst_ld1w_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1w_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_ld1w_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1w_zps_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld1w_zqs_pnz_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ld2 2 forms
    inst_ld2_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld2_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld2_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld2_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld2_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld2r(dst: Register, mem: Memory) -> Instruction
    inst_ld2r_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld3 2 forms
    inst_ld3_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld3_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld3_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld3_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld3_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld3r(dst: Register, mem: Memory) -> Instruction
    inst_ld3r_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld4 2 forms
    inst_ld4_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ld4_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld4_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld4_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld4_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_ld4r(dst: Register, mem: Memory) -> Instruction
    inst_ld4r_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_ldadd(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldadd_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldadda(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldadda_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaddal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaddal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaddl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaddl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldapr(dst: Register, mem: Memory) -> Instruction
    inst_ldapr_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldaprb(dst: Register, mem: Memory) -> Instruction
    inst_ldaprb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldaprh(dst: Register, mem: Memory) -> Instruction
    inst_ldaprh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapur(dst: Register, mem: Memory) -> Instruction
    inst_ldapur_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapurb(dst: Register, mem: Memory) -> Instruction
    inst_ldapurb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapurh(dst: Register, mem: Memory) -> Instruction
    inst_ldapurh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapursb(dst: Register, mem: Memory) -> Instruction
    inst_ldapursb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapursh(dst: Register, mem: Memory) -> Instruction
    inst_ldapursh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldapursw(dst: Register, mem: Memory) -> Instruction
    inst_ldapursw_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldar(dst: Register, mem: Memory) -> Instruction
    inst_ldar_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldarb(dst: Register, mem: Memory) -> Instruction
    inst_ldarb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldarh(dst: Register, mem: Memory) -> Instruction
    inst_ldarh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldaxp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaxp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldaxr(dst: Register, mem: Memory) -> Instruction
    inst_ldaxr_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldaxrb(dst: Register, mem: Memory) -> Instruction
    inst_ldaxrb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldaxrh(dst: Register, mem: Memory) -> Instruction
    inst_ldaxrh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldclr(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclr_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclra(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclra_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclral(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclral_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclrl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldclrl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeor(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeor_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeora(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeora_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeoral(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeoral_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeorl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldeorl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldff1b(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1b_zb_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1d(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1d_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1h(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1h_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1w(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldff1w_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldg(dst: Register, mem: Memory) -> Instruction
    inst_ldg_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldgm(dst: Register, mem: Memory) -> Instruction
    inst_ldgm_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldnp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldnp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldnt1b(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1b_zb_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1d(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1d_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1h(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1h_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1w(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldnt1w_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_ldp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldp_stp(m: Mnemonic, rt, rt2: Register, mm: Memory) -> Instruction
    Load/store pair: Rt, Rt2, memory.
    inst_ldpsw(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldpsw_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldr 4 forms
    inst_ldr_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldr_r_l(dst: Register, label: u32) -> Instruction
    inst_ldr_z_m(rz: u8, mem: Memory) -> Instruction
    inst_ldr_i_m(imm: i64, mem: Memory) -> Instruction
    inst_ldr_p_m(rz: u8, mem: Memory) -> Instruction
    inst_ldraa(dst: Register, mem: Memory) -> Instruction
    inst_ldraa_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrab(dst: Register, mem: Memory) -> Instruction
    inst_ldrab_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrb(dst: Register, mem: Memory) -> Instruction
    inst_ldrb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrh(dst: Register, mem: Memory) -> Instruction
    inst_ldrh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrsb(dst: Register, mem: Memory) -> Instruction
    inst_ldrsb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrsh(dst: Register, mem: Memory) -> Instruction
    inst_ldrsh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldrsw(dst: Register, mem: Memory) -> Instruction
    inst_ldrsw_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldset(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldset_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldseta(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldseta_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsetal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsetal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsetl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsetl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmax(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmax_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxa(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxa_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmaxl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmin(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmin_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmina(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsmina_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsminal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsminal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsminl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldsminl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldst(m: Mnemonic, rt: Register, mm: Memory) -> Instruction
    Load/store register: Rt + memory.
    inst_ldumax(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumax_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxa(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxa_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumaxl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumin(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumin_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumina(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldumina_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_lduminal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_lduminal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_lduminl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_lduminl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldur(dst: Register, mem: Memory) -> Instruction
    inst_ldur_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldurb(dst: Register, mem: Memory) -> Instruction
    inst_ldurb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldurh(dst: Register, mem: Memory) -> Instruction
    inst_ldurh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldursb(dst: Register, mem: Memory) -> Instruction
    inst_ldursb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldursh(dst: Register, mem: Memory) -> Instruction
    inst_ldursh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldursw(dst: Register, mem: Memory) -> Instruction
    inst_ldursw_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldxp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldxp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_ldxr(dst: Register, mem: Memory) -> Instruction
    inst_ldxr_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldxrb(dst: Register, mem: Memory) -> Instruction
    inst_ldxrb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_ldxrh(dst: Register, mem: Memory) -> Instruction
    inst_ldxrh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_lsl 3 forms
    inst_lsl_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_lsl_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsl_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_lsl_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsl_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsl_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lslr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lslr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lslr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lslr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lslr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsr 3 forms
    inst_lsr_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_lsr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsr_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_lsr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsrr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsrr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsrr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsrr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_lsrr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_luti2(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti2_zpb_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti2_zph_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti2_zps_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti4(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti4_zpb_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti4_zph_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_luti4_zps_zt_z_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_madd(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_madd_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_match(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_match_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_match_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_mla(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mla_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mls_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mov 4 forms
    inst_mov_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_mov_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_mov_pb_p(rz: u8, rz2: u8) -> Instruction
    inst_mov_r_i(dst: Register, imm: i64) -> Instruction
    inst_mov_imm(m: Mnemonic, rd: Register, imm: i64, hw: u8) -> Instruction
    MOVZ/MOVN/MOVK with explicit hw shift (0/16/32/48).
    inst_mov_pb_p_p(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_mov_r_r(dst: Register, src: Register) -> Instruction
    inst_mov_r_veb(dst: Register, src: Register) -> Instruction
    inst_mov_r_ved(dst: Register, src: Register) -> Instruction
    inst_mov_r_veh(dst: Register, src: Register) -> Instruction
    inst_mov_r_ves(dst: Register, src: Register) -> Instruction
    inst_mov_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_mov_veb_r(dst: Register, src: Register) -> Instruction
    inst_mov_veb_veb(dst: Register, src: Register) -> Instruction
    inst_mov_ved_r(dst: Register, src: Register) -> Instruction
    inst_mov_ved_ved(dst: Register, src: Register) -> Instruction
    inst_mov_veh_r(dst: Register, src: Register) -> Instruction
    inst_mov_veh_veh(dst: Register, src: Register) -> Instruction
    inst_mov_ves_r(dst: Register, src: Register) -> Instruction
    inst_mov_ves_ves(dst: Register, src: Register) -> Instruction
    inst_mov_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_mov_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_mov_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_mova 2 forms
    inst_mova_zb_p_i(rz: u8, rz2: u8, imm: i64) -> Instruction
    inst_mova_i_p_zb(imm: i64, rz1: u8, rz2: u8) -> Instruction
    inst_movi(dst: Register, imm: i64) -> Instruction
    inst_movi_v16b_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v2d_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v2s_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v4h_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v4s_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v8b_i(dst: Register, imm: i64) -> Instruction
    inst_movi_v8h_i(dst: Register, imm: i64) -> Instruction
    inst_movk(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_movk_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_movn(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_movn_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_movs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_movs_pb_p_p(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_movz(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_movz_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_mrs(dst: Register, sysreg: Register) -> Instruction
    inst_mrs_r_s(dst: Register, sysreg: Register) -> Instruction
    inst_msr 2 forms
    inst_msr_i_i(imm: i64, imm2: i64) -> Instruction
    inst_msr_s_r(sysreg: Register, src: Register) -> Instruction
    inst_msub(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_msub_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_mul 2 forms
    inst_mul_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mul_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_mul_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mul_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mul_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_mul_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_mul_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_mvn(dst: Register, src: Register) -> Instruction
    inst_mvn_r_r(dst: Register, src: Register) -> Instruction
    inst_mvn_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_mvn_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_mvni(dst: Register, imm: i64) -> Instruction
    inst_mvni_v2s_i(dst: Register, imm: i64) -> Instruction
    inst_mvni_v4h_i(dst: Register, imm: i64) -> Instruction
    inst_mvni_v4s_i(dst: Register, imm: i64) -> Instruction
    inst_mvni_v8h_i(dst: Register, imm: i64) -> Instruction
    inst_nand(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nand_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nands(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nands_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nbsl(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nbsl_zd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_neg 3 forms
    inst_neg_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_neg_zb_p_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_neg_r_sh(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_neg_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_neg_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_neg_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_neg_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_neg_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_neg_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_neg_zd_p_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_neg_zh_p_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_neg_zs_p_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_negs(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_negs_r_sh(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_ngc(dst: Register, src: Register) -> Instruction
    inst_ngc_r_r(dst: Register, src: Register) -> Instruction
    inst_ngcs(dst: Register, src: Register) -> Instruction
    inst_ngcs_r_r(dst: Register, src: Register) -> Instruction
    inst_nmatch(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nmatch_pb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nmatch_ph_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_none(m: Mnemonic) -> Instruction
    inst_nop() -> Instruction
    inst_nop_none() -> Instruction
    inst_nor(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nor_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nors(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_nors_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_not 2 forms
    inst_not_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_not_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_not_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_orn 3 forms
    inst_orn_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_orn_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_orn_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orns(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orns_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orr 4 forms
    inst_orr_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_orr_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_orr_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_orr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orr_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orrs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_orrs_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_pacda(dst: Register, src: Register) -> Instruction
    inst_pacda_r_r(dst: Register, src: Register) -> Instruction
    inst_pacdb(dst: Register, src: Register) -> Instruction
    inst_pacdb_r_r(dst: Register, src: Register) -> Instruction
    inst_pacdza(dst: Register) -> Instruction
    inst_pacdza_r(dst: Register) -> Instruction
    inst_pacdzb(dst: Register) -> Instruction
    inst_pacdzb_r(dst: Register) -> Instruction
    inst_pacga(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pacga_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pacia(dst: Register, src: Register) -> Instruction
    inst_pacia1716() -> Instruction
    inst_pacia1716_none() -> Instruction
    inst_pacia_r_r(dst: Register, src: Register) -> Instruction
    inst_paciasp() -> Instruction
    inst_paciasp_none() -> Instruction
    inst_pacib(dst: Register, src: Register) -> Instruction
    inst_pacib1716() -> Instruction
    inst_pacib1716_none() -> Instruction
    inst_pacib_r_r(dst: Register, src: Register) -> Instruction
    inst_pacibsp() -> Instruction
    inst_pacibsp_none() -> Instruction
    inst_paciza(dst: Register) -> Instruction
    inst_paciza_r(dst: Register) -> Instruction
    inst_pacizb(dst: Register) -> Instruction
    inst_pacizb_r(dst: Register) -> Instruction
    inst_pfalse(rz: u8) -> Instruction
    inst_pfalse_pb(rz: u8) -> Instruction
    inst_pfirst(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pfirst_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmul(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmul_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmull(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmull2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmull2_v1q_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmull2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmull_v1q_v1d_v1d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmull_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_pmullb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmullb_zd_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmullt(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pmullt_zd_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pnext(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_pnext_pb_p_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_prfb(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfb_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfd(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfd_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfh(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfh_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfm 2 forms
    inst_prfm_i_m(imm: i64, mem: Memory) -> Instruction
    inst_prfm_i_l(imm: i64, label: u32) -> Instruction
    inst_prfum(imm: i64, mem: Memory) -> Instruction
    inst_prfum_i_m(imm: i64, mem: Memory) -> Instruction
    inst_prfw(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_prfw_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_psb_csync() -> Instruction
    inst_psb_csync_none() -> Instruction
    inst_ptrue(rz: u8, imm: i64) -> Instruction
    inst_ptrue_pb_i(rz: u8, imm: i64) -> Instruction
    inst_ptrues(rz: u8, imm: i64) -> Instruction
    inst_ptrues_pb_i(rz: u8, imm: i64) -> Instruction
    inst_r(m: Mnemonic, r: Register) -> Instruction
    Single-register (e.g. BR, BLR).
    inst_r_i(m: Mnemonic, rd: Register, imm: i64) -> Instruction
    1-register + immediate (e.g. MOVZ).
    inst_r_r(m: Mnemonic, rd, rn: Register) -> Instruction
    2-register (e.g. CLZ, RBIT).
    inst_r_r_i(m: Mnemonic, rd, rn: Register, imm: i64) -> Instruction
    2-register + immediate (e.g. ADD imm).
    inst_r_r_r(m: Mnemonic, rd, rn, rm: Register) -> Instruction
    3-register (e.g. ADD shifted, MUL, UDIV, ASRV).
    inst_r_r_r_r(m: Mnemonic, rd, rn, rm, ra: Register) -> Instruction
    4-register R4-type (MADD, MSUB, SMADDL, ...).
    inst_raddhn(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn2_v16b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn2_v4s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn2_v8h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn_v2s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn_v4h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_raddhn_v8b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rax1(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rax1_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rbit(dst: Register, src: Register) -> Instruction
    inst_rbit_r_r(dst: Register, src: Register) -> Instruction
    inst_rbit_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_rbit_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_rdffr(rz: u8) -> Instruction
    inst_rdffr_pb(rz: u8) -> Instruction
    inst_rdsvl(dst: Register, imm: i64) -> Instruction
    inst_rdsvl_r_i(dst: Register, imm: i64) -> Instruction
    inst_ret 2 forms
    inst_ret_r(dst: Register) -> Instruction
    inst_ret_none() -> Instruction
    inst_retaa() -> Instruction
    inst_retaa_none() -> Instruction
    inst_retab() -> Instruction
    inst_retab_none() -> Instruction
    inst_rev 2 forms
    inst_rev_r_r(dst: Register, src: Register) -> Instruction
    inst_rev_zb_zb(rz: u8, rz2: u8) -> Instruction
    inst_rev16(dst: Register, src: Register) -> Instruction
    inst_rev16_r_r(dst: Register, src: Register) -> Instruction
    inst_rev16_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_rev16_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_rev32(dst: Register, src: Register) -> Instruction
    inst_rev32_r_r(dst: Register, src: Register) -> Instruction
    inst_rev32_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_rev32_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_rev32_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_rev32_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_rev64(dst: Register, src: Register) -> Instruction
    inst_rev64_v16b_v16b(dst: Register, src: Register) -> Instruction
    inst_rev64_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_rev64_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_rev64_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_rev64_v8b_v8b(dst: Register, src: Register) -> Instruction
    inst_rev64_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_rev_pb_pb(rz: u8, rz2: u8) -> Instruction
    inst_rev_zd_zd(rz: u8, rz2: u8) -> Instruction
    inst_rev_zh_zh(rz: u8, rz2: u8) -> Instruction
    inst_rev_zs_zs(rz: u8, rz2: u8) -> Instruction
    inst_ror 2 forms
    inst_ror_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ror_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rshrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_rsubhn(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn2_v16b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn2_v4s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn2_v8h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn_v2s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn_v4h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_rsubhn_v8b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saba_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd 2 forms
    inst_sabd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sabd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sabd_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sabd_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sabd_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sadalp(dst: Register, src: Register) -> Instruction
    inst_sadalp_v1d_v2s(dst: Register, src: Register) -> Instruction
    inst_sadalp_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_sadalp_v2s_v4h(dst: Register, src: Register) -> Instruction
    inst_sadalp_v4h_v8b(dst: Register, src: Register) -> Instruction
    inst_sadalp_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_sadalp_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_saddl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddlp(dst: Register, src: Register) -> Instruction
    inst_saddlp_v1d_v2s(dst: Register, src: Register) -> Instruction
    inst_saddlp_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_saddlp_v2s_v4h(dst: Register, src: Register) -> Instruction
    inst_saddlp_v4h_v8b(dst: Register, src: Register) -> Instruction
    inst_saddlp_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_saddlp_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_saddlv(dst: Register, src: Register) -> Instruction
    inst_saddlv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_saddlv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_saddlv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_saddlv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_saddlv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_saddw(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw2_v2d_v2d_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw2_v4s_v4s_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw2_v8h_v8h_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw_v2d_v2d_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw_v4s_v4s_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_saddw_v8h_v8h_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sb() -> Instruction
    inst_sb_none() -> Instruction
    inst_sbc(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sbc_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sbclb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbclb_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbclb_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbclt(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbclt_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbclt_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sbcs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sbcs_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_scvtf(dst: Register, src: Register) -> Instruction
    inst_scvtf_r_r(dst: Register, src: Register) -> Instruction
    inst_scvtf_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_scvtf_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_scvtf_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_scvtf_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_scvtf_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_sdiv 2 forms
    inst_sdiv_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sdiv_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sdiv_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sdot(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sdot_v2s_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sdot_v4s_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sel(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sel_pb_p_pb_pb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sete(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sete_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_setffr() -> Instruction
    inst_setffr_none() -> Instruction
    inst_setm(dst: Register, src: Register, src2: Register) -> Instruction
    inst_setm_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_setp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_setp_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sev() -> Instruction
    inst_sev_none() -> Instruction
    inst_sevl() -> Instruction
    inst_sevl_none() -> Instruction
    inst_sha1c(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1c_r_r_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1h(dst: Register, src: Register) -> Instruction
    inst_sha1h_r_r(dst: Register, src: Register) -> Instruction
    inst_sha1m(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1m_r_r_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1p_r_r_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1su0(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1su0_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha1su1(dst: Register, src: Register) -> Instruction
    inst_sha1su1_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_sha256h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha256h2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha256h2_r_r_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha256h_r_r_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha256su0(dst: Register, src: Register) -> Instruction
    inst_sha256su0_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_sha256su1(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha256su1_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512h2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512h2_r_r_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512h_r_r_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512su0(dst: Register, src: Register) -> Instruction
    inst_sha512su0_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_sha512su1(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sha512su1_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shl(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shl_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shsub(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_shsub_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sli(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sli_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sm3partw1(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sm3partw1_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sm3partw2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sm3partw2_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sm3ss1(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_sm3ss1_v4s_v4s_v4s_v4s(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_sm3tt1a(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt1a_v4s_v4s_ves_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt1b(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt1b_v4s_v4s_ves_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt2a(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt2a_v4s_v4s_ves_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt2b(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm3tt2b_v4s_v4s_ves_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_sm4e(dst: Register, src: Register) -> Instruction
    inst_sm4e_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_sm4ekey(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sm4ekey_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaddl(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_smaddl_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_smax 2 forms
    inst_smax_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smax_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smax_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smax_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smax_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smaxp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smaxv(dst: Register, src: Register) -> Instruction
    inst_smaxv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_smaxv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_smaxv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_smaxv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_smaxv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_smc(imm: i64) -> Instruction
    inst_smc_i(imm: i64) -> Instruction
    inst_smin 2 forms
    inst_smin_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smin_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smin_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smin_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smin_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sminp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sminv(dst: Register, src: Register) -> Instruction
    inst_sminv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_sminv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_sminv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_sminv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_sminv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_smlal(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlal_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smlsl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smopa_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smopa_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smops(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smops_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smops_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smstart() -> Instruction
    inst_smstart_none() -> Instruction
    inst_smstop() -> Instruction
    inst_smstop_none() -> Instruction
    inst_smsubl(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_smsubl_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_smulh 2 forms
    inst_smulh_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smulh_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smulh_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smulh_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smulh_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_smull(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_smull_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_splice(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_splice_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sqadd 2 forms
    inst_sqadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqadd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqadd_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqadd_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqdecb 2 forms
    inst_sqdecb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecb_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecd 3 forms
    inst_sqdecd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecd_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqdech 3 forms
    inst_sqdech_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdech_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdech_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqdecp 3 forms
    inst_sqdecp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_sqdecp_r_pb_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqdecp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_sqdecp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_sqdecp_r_pd_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqdecp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_sqdecp_r_ph_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqdecp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_sqdecp_r_ps_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqdecp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_sqdecp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_sqdecw 3 forms
    inst_sqdecw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecw_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqdecw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqdmlal(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlal2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlal2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlal2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlal_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlal_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmlsl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmulh(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmulh_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmulh_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmulh_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmulh_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqdmull_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqincb 2 forms
    inst_sqincb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincb_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincd 3 forms
    inst_sqincd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincd_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqinch 3 forms
    inst_sqinch_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqinch_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqinch_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqincp 3 forms
    inst_sqincp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_sqincp_r_pb_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqincp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_sqincp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_sqincp_r_pd_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqincp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_sqincp_r_ph_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqincp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_sqincp_r_ps_r(dst: Register, rz1: u8, src: Register) -> Instruction
    inst_sqincp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_sqincp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_sqincw 3 forms
    inst_sqincw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincw_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_sqincw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_sqrdmlah(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlah_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlah_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlah_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlah_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlsh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlsh_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlsh_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlsh_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmlsh_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqrdmulh(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqrdmulh_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqrdmulh_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqrdmulh_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqrdmulh_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqrshrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqrshrun_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshl_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshlu_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqshrun_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sqsub 2 forms
    inst_sqsub_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqsub_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sqsub_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqsub_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqsub_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sqxtn(dst: Register, src: Register) -> Instruction
    inst_sqxtn2(dst: Register, src: Register) -> Instruction
    inst_sqxtn2_v16b_v8h(dst: Register, src: Register) -> Instruction
    inst_sqxtn2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_sqxtn2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_sqxtn_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_sqxtn_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_sqxtn_v8b_v8h(dst: Register, src: Register) -> Instruction
    inst_sqxtun(dst: Register, src: Register) -> Instruction
    inst_sqxtun2(dst: Register, src: Register) -> Instruction
    inst_sqxtun2_v16b_v8h(dst: Register, src: Register) -> Instruction
    inst_sqxtun2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_sqxtun2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_sqxtun_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_sqxtun_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_sqxtun_v8b_v8h(dst: Register, src: Register) -> Instruction
    inst_srhadd(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srhadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sri(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sri_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshl_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srshr(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srshr_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srsra_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshl_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sshll(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll2_v2d_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll2_v4s_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll2_v8h_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll_v2d_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll_v4s_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshll_v8h_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sshr_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssra_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ssubl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw2_v2d_v2d_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw2_v4s_v4s_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw2_v8h_v8h_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw_v2d_v2d_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw_v4s_v4s_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ssubw_v8h_v8h_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_st1 2 forms
    inst_st1_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_st1_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st1_v2d_m(dst: Register, mem: Memory) -> Instruction
    inst_st1_v4s_m(dst: Register, mem: Memory) -> Instruction
    inst_st1_v8h_m(dst: Register, mem: Memory) -> Instruction
    inst_st1_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st1_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st1_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st1b 2 forms
    inst_st1b_zb_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1b_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1b_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1b_zpb_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1b_zqb_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1b_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1d 2 forms
    inst_st1d_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1d_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1d_zpd_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1d_zqd_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1h 2 forms
    inst_st1h_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1h_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1h_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1h_zph_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1h_zqh_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1h_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1q(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1q_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1w 2 forms
    inst_st1w_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1w_i_p_m(imm: i64, rz1: u8, mem: Memory) -> Instruction
    inst_st1w_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1w_zps_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st1w_zqs_pn_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_st2 2 forms
    inst_st2_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_st2_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st2_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st2_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st2_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st2g(dst: Register, mem: Memory) -> Instruction
    inst_st2g_r_m(dst: Register, mem: Memory) -> Instruction
    inst_st3 2 forms
    inst_st3_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_st3_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st3_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st3_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st3_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st4 2 forms
    inst_st4_v16b_m(dst: Register, mem: Memory) -> Instruction
    inst_st4_veb_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st4_ved_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st4_veh_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_st4_ves_i_m(dst: Register, imm: i64, mem: Memory) -> Instruction
    inst_stg(dst: Register, mem: Memory) -> Instruction
    inst_stg_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stgm(dst: Register, mem: Memory) -> Instruction
    inst_stgm_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stgp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stgp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlr(dst: Register, mem: Memory) -> Instruction
    inst_stlr_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlrb(dst: Register, mem: Memory) -> Instruction
    inst_stlrb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlrh(dst: Register, mem: Memory) -> Instruction
    inst_stlrh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlur(dst: Register, mem: Memory) -> Instruction
    inst_stlur_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlurb(dst: Register, mem: Memory) -> Instruction
    inst_stlurb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlurh(dst: Register, mem: Memory) -> Instruction
    inst_stlurh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stlxp(dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction
    inst_stlxp_r_r_r_m(dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction
    inst_stlxr(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlxr_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlxrb(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlxrb_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlxrh(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stlxrh_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stnp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stnp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stnt1b(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1b_zb_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1d(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1d_zd_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1h(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1h_zh_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1w(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stnt1w_zs_p_m(rz: u8, rz2: u8, mem: Memory) -> Instruction
    inst_stp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_str 3 forms
    inst_str_r_m(dst: Register, mem: Memory) -> Instruction
    inst_str_z_m(rz: u8, mem: Memory) -> Instruction
    inst_str_i_m(imm: i64, mem: Memory) -> Instruction
    inst_str_p_m(rz: u8, mem: Memory) -> Instruction
    inst_strb(dst: Register, mem: Memory) -> Instruction
    inst_strb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_strh(dst: Register, mem: Memory) -> Instruction
    inst_strh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stur(dst: Register, mem: Memory) -> Instruction
    inst_stur_r_m(dst: Register, mem: Memory) -> Instruction
    inst_sturb(dst: Register, mem: Memory) -> Instruction
    inst_sturb_r_m(dst: Register, mem: Memory) -> Instruction
    inst_sturh(dst: Register, mem: Memory) -> Instruction
    inst_sturh_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stxp(dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction
    inst_stxp_r_r_r_m(dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction
    inst_stxr(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stxr_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stxrb(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stxrb_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stxrh(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stxrh_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_stz2g(dst: Register, mem: Memory) -> Instruction
    inst_stz2g_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stzg(dst: Register, mem: Memory) -> Instruction
    inst_stzg_r_m(dst: Register, mem: Memory) -> Instruction
    inst_stzgm(dst: Register, mem: Memory) -> Instruction
    inst_stzgm_r_m(dst: Register, mem: Memory) -> Instruction
    inst_sub 6 forms
    inst_sub_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sub_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_sub_r_r_ex(dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction
    inst_sub_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sub_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sub_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sub_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sub_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sub_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sub_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sub_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sub_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_sub_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sub_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_subg(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_subg_r_r_i_i(dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction
    inst_subhn(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn2_v16b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn2_v4s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn2_v8h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn_v2s_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn_v4h_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subhn_v8b_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subp_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subps(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subps_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subr(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_subr_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_subr_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_subr_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_subr_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_subs 3 forms
    inst_subs_r_r_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_subs_r_r_sh(dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction
    inst_subs_r_r_ex(dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction
    inst_sumopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_sumopa_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_svc(imm: i64) -> Instruction
    inst_svc_i(imm: i64) -> Instruction
    inst_swp(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swp_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpa(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpa_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpal(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpal_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpl(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_swpl_r_r_m(dst: Register, src: Register, mem: Memory) -> Instruction
    inst_sxtb(dst: Register, src: Register) -> Instruction
    inst_sxtb_r_r(dst: Register, src: Register) -> Instruction
    inst_sxth(dst: Register, src: Register) -> Instruction
    inst_sxth_r_r(dst: Register, src: Register) -> Instruction
    inst_sxtl(dst: Register, src: Register) -> Instruction
    inst_sxtl2(dst: Register, src: Register) -> Instruction
    inst_sxtl2_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_sxtl2_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_sxtl2_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_sxtl_v2d_v2s(dst: Register, src: Register) -> Instruction
    inst_sxtl_v4s_v4h(dst: Register, src: Register) -> Instruction
    inst_sxtl_v8h_v8b(dst: Register, src: Register) -> Instruction
    inst_sxtw(dst: Register, src: Register) -> Instruction
    inst_sxtw_r_r(dst: Register, src: Register) -> Instruction
    inst_tbl 2 forms
    inst_tbl_v8b_v16b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_tbl_zb_zl1b_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_tbl_zb_zl2b_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbl_zd_zl1d_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbl_zh_zl1h_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbl_zs_zl1s_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbnz(dst: Register, imm: i64, label: u32) -> Instruction
    inst_tbnz_r_i_l(dst: Register, imm: i64, label: u32) -> Instruction
    inst_tbx 2 forms
    inst_tbx_v8b_v16b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_tbx_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tbx_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_tbz(dst: Register, imm: i64, label: u32) -> Instruction
    inst_tbz_r_i_l(dst: Register, imm: i64, label: u32) -> Instruction
    inst_tcancel(imm: i64) -> Instruction
    inst_tcancel_i(imm: i64) -> Instruction
    inst_tcommit() -> Instruction
    inst_tcommit_none() -> Instruction
    inst_tlbi_alle1() -> Instruction
    inst_tlbi_alle1_none() -> Instruction
    inst_tlbi_alle1is() -> Instruction
    inst_tlbi_alle1is_none() -> Instruction
    inst_tlbi_alle2() -> Instruction
    inst_tlbi_alle2_none() -> Instruction
    inst_tlbi_alle2is() -> Instruction
    inst_tlbi_alle2is_none() -> Instruction
    inst_tlbi_alle3() -> Instruction
    inst_tlbi_alle3_none() -> Instruction
    inst_tlbi_alle3is() -> Instruction
    inst_tlbi_alle3is_none() -> Instruction
    inst_tlbi_aside1(dst: Register) -> Instruction
    inst_tlbi_aside1_r(dst: Register) -> Instruction
    inst_tlbi_aside1is(dst: Register) -> Instruction
    inst_tlbi_aside1is_r(dst: Register) -> Instruction
    inst_tlbi_paall() -> Instruction
    inst_tlbi_paall_none() -> Instruction
    inst_tlbi_paallos() -> Instruction
    inst_tlbi_paallos_none() -> Instruction
    inst_tlbi_rpalos(dst: Register) -> Instruction
    inst_tlbi_rpalos_r(dst: Register) -> Instruction
    inst_tlbi_rpaos(dst: Register) -> Instruction
    inst_tlbi_rpaos_r(dst: Register) -> Instruction
    inst_tlbi_vaae1(dst: Register) -> Instruction
    inst_tlbi_vaae1_r(dst: Register) -> Instruction
    inst_tlbi_vaae1is(dst: Register) -> Instruction
    inst_tlbi_vaae1is_r(dst: Register) -> Instruction
    inst_tlbi_vaale1(dst: Register) -> Instruction
    inst_tlbi_vaale1_r(dst: Register) -> Instruction
    inst_tlbi_vaale1is(dst: Register) -> Instruction
    inst_tlbi_vaale1is_r(dst: Register) -> Instruction
    inst_tlbi_vae1(dst: Register) -> Instruction
    inst_tlbi_vae1_r(dst: Register) -> Instruction
    inst_tlbi_vae1is(dst: Register) -> Instruction
    inst_tlbi_vae1is_r(dst: Register) -> Instruction
    inst_tlbi_vale1(dst: Register) -> Instruction
    inst_tlbi_vale1_r(dst: Register) -> Instruction
    inst_tlbi_vale1is(dst: Register) -> Instruction
    inst_tlbi_vale1is_r(dst: Register) -> Instruction
    inst_tlbi_vmalle1() -> Instruction
    inst_tlbi_vmalle1_none() -> Instruction
    inst_tlbi_vmalle1is() -> Instruction
    inst_tlbi_vmalle1is_none() -> Instruction
    inst_trn1 2 forms
    inst_trn1_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn1_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn1_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn1_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn1_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn1_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn2 2 forms
    inst_trn2_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn2_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn2_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_trn2_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn2_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_trn2_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_tsb_csync() -> Instruction
    inst_tsb_csync_none() -> Instruction
    inst_tst 2 forms
    inst_tst_r_i(dst: Register, imm: i64) -> Instruction
    inst_tst_r_sh(dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction
    inst_tstart(dst: Register) -> Instruction
    inst_tstart_r(dst: Register) -> Instruction
    inst_ttest(dst: Register) -> Instruction
    inst_ttest_r(dst: Register) -> Instruction
    inst_uaba(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaba_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd 2 forms
    inst_uabd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_uabd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uabd_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_uabd_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_uabd_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_uadalp(dst: Register, src: Register) -> Instruction
    inst_uadalp_v1d_v2s(dst: Register, src: Register) -> Instruction
    inst_uadalp_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_uadalp_v2s_v4h(dst: Register, src: Register) -> Instruction
    inst_uadalp_v4h_v8b(dst: Register, src: Register) -> Instruction
    inst_uadalp_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_uadalp_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_uaddl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddlp(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v1d_v2s(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v2s_v4h(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v4h_v8b(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_uaddlp_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_uaddlv(dst: Register, src: Register) -> Instruction
    inst_uaddlv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_uaddlv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_uaddlv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_uaddlv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_uaddlv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_uaddw(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw2_v2d_v2d_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw2_v4s_v4s_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw2_v8h_v8h_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw_v2d_v2d_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw_v4s_v4s_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uaddw_v8h_v8h_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ucvtf(dst: Register, src: Register) -> Instruction
    inst_ucvtf_r_r(dst: Register, src: Register) -> Instruction
    inst_ucvtf_v2d_v2d(dst: Register, src: Register) -> Instruction
    inst_ucvtf_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_ucvtf_v4h_v4h(dst: Register, src: Register) -> Instruction
    inst_ucvtf_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_ucvtf_v8h_v8h(dst: Register, src: Register) -> Instruction
    inst_udiv 2 forms
    inst_udiv_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_udiv_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_udiv_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_udot(dst: Register, src: Register, src2: Register) -> Instruction
    inst_udot_v2s_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_udot_v4s_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uhsub_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaddl(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_umaddl_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_umax 2 forms
    inst_umax_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umax_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umax_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umax_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umax_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umaxp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umaxv(dst: Register, src: Register) -> Instruction
    inst_umaxv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_umaxv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_umaxv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_umaxv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_umaxv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_umin 2 forms
    inst_umin_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umin_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umin_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umin_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umin_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_uminp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminp_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uminv(dst: Register, src: Register) -> Instruction
    inst_uminv_r_v16b(dst: Register, src: Register) -> Instruction
    inst_uminv_r_v4h(dst: Register, src: Register) -> Instruction
    inst_uminv_r_v4s(dst: Register, src: Register) -> Instruction
    inst_uminv_r_v8b(dst: Register, src: Register) -> Instruction
    inst_uminv_r_v8h(dst: Register, src: Register) -> Instruction
    inst_umlal(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlal_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umlsl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umopa_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umopa_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umops(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umops_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umops_i_p_p_zh_zh(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umsubl(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_umsubl_r_r_r_r(dst: Register, src: Register, src2: Register, src3: Register) -> Instruction
    inst_umulh 2 forms
    inst_umulh_r_r_r(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umulh_zb_p_zb_zb(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umulh_zd_p_zd_zd(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umulh_zh_p_zh_zh(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umulh_zs_p_zs_zs(rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_umull(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_umull_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd 2 forms
    inst_uqadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqadd_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqadd_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqadd_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqdecb(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqdecb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqdecd 2 forms
    inst_uqdecd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqdecd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqdech 2 forms
    inst_uqdech_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqdech_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqdecp 2 forms
    inst_uqdecp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_uqdecp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_uqdecp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_uqdecp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_uqdecp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_uqdecp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_uqdecp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_uqdecw 2 forms
    inst_uqdecw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqdecw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqincb(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqincb_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqincd 2 forms
    inst_uqincd_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqincd_zd_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqinch 2 forms
    inst_uqinch_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqinch_zh_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqincp 2 forms
    inst_uqincp_r_pb(dst: Register, rz1: u8) -> Instruction
    inst_uqincp_zh_ph(rz: u8, rz2: u8) -> Instruction
    inst_uqincp_r_pd(dst: Register, rz1: u8) -> Instruction
    inst_uqincp_r_ph(dst: Register, rz1: u8) -> Instruction
    inst_uqincp_r_ps(dst: Register, rz1: u8) -> Instruction
    inst_uqincp_zd_pd(rz: u8, rz2: u8) -> Instruction
    inst_uqincp_zs_ps(rz: u8, rz2: u8) -> Instruction
    inst_uqincw 2 forms
    inst_uqincw_r_i_i(dst: Register, imm: i64, imm2: i64) -> Instruction
    inst_uqincw_zs_i_i(rz: u8, imm: i64, imm2: i64) -> Instruction
    inst_uqrshrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqrshrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn2_v16b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn2_v4s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn2_v8h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn_v2s_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn_v4h_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqshrn_v8b_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_uqsub 2 forms
    inst_uqsub_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqsub_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uqsub_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqsub_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqsub_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uqxtn(dst: Register, src: Register) -> Instruction
    inst_uqxtn2(dst: Register, src: Register) -> Instruction
    inst_uqxtn2_v16b_v8h(dst: Register, src: Register) -> Instruction
    inst_uqxtn2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_uqxtn2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_uqxtn_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_uqxtn_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_uqxtn_v8b_v8h(dst: Register, src: Register) -> Instruction
    inst_urecpe(dst: Register, src: Register) -> Instruction
    inst_urecpe_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_urecpe_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_urhadd(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urhadd_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshl_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_urshr(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_urshr_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursqrte(dst: Register, src: Register) -> Instruction
    inst_ursqrte_v2s_v2s(dst: Register, src: Register) -> Instruction
    inst_ursqrte_v4s_v4s(dst: Register, src: Register) -> Instruction
    inst_ursra(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ursra_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usdot(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usdot_v2s_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usdot_v4s_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushl_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ushll(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll2(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll2_v2d_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll2_v4s_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll2_v8h_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll_v2d_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll_v4s_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushll_v8h_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ushr_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usmopa(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_usmopa_i_p_p_zb_zb(imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction
    inst_usra(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v16b_v16b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v2d_v2d_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v2s_v2s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v4h_v4h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v4s_v4s_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v8b_v8b_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usra_v8h_v8h_i(dst: Register, src: Register, imm: i64) -> Instruction
    inst_usubl(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl2_v2d_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl2_v4s_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl2_v8h_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl_v2d_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl_v4s_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubl_v8h_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw2(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw2_v2d_v2d_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw2_v4s_v4s_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw2_v8h_v8h_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw_v2d_v2d_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw_v4s_v4s_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_usubw_v8h_v8h_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uxtb(dst: Register, src: Register) -> Instruction
    inst_uxtb_r_r(dst: Register, src: Register) -> Instruction
    inst_uxth(dst: Register, src: Register) -> Instruction
    inst_uxth_r_r(dst: Register, src: Register) -> Instruction
    inst_uxtl(dst: Register, src: Register) -> Instruction
    inst_uxtl2(dst: Register, src: Register) -> Instruction
    inst_uxtl2_v2d_v4s(dst: Register, src: Register) -> Instruction
    inst_uxtl2_v4s_v8h(dst: Register, src: Register) -> Instruction
    inst_uxtl2_v8h_v16b(dst: Register, src: Register) -> Instruction
    inst_uxtl_v2d_v2s(dst: Register, src: Register) -> Instruction
    inst_uxtl_v4s_v4h(dst: Register, src: Register) -> Instruction
    inst_uxtl_v8h_v8b(dst: Register, src: Register) -> Instruction
    inst_uxtw(dst: Register, src: Register) -> Instruction
    inst_uxtw_r_r(dst: Register, src: Register) -> Instruction
    inst_uzp 2 forms
    inst_uzp_zpb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp_zqb_zqb(rz: u8, rz2: u8) -> Instruction
    inst_uzp1 2 forms
    inst_uzp1_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp1_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp1_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp1_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp1_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp1_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp2 2 forms
    inst_uzp2_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp2_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp2_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_uzp2_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp2_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_uzp2_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_wfe() -> Instruction
    inst_wfe_none() -> Instruction
    inst_wfet(dst: Register) -> Instruction
    inst_wfet_r(dst: Register) -> Instruction
    inst_wfi() -> Instruction
    inst_wfi_none() -> Instruction
    inst_wfit(dst: Register) -> Instruction
    inst_wfit_r(dst: Register) -> Instruction
    inst_whilege(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilege_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilege_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilege_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilege_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilegt(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilegt_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilegt_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilegt_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilegt_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehi(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehi_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehi_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehi_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehi_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehs(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehs_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehs_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehs_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilehs_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilele(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilele_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilele_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilele_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilele_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelo(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelo_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelo_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelo_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelo_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilels(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilels_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilels_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilels_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilels_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelt(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelt_pb_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelt_pd_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelt_ph_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_whilelt_ps_r_r(rz: u8, src: Register, src2: Register) -> Instruction
    inst_wrffr(rz: u8) -> Instruction
    inst_wrffr_pb(rz: u8) -> Instruction
    inst_xar 2 forms
    inst_xar_v2d_v2d_v2d_i(dst: Register, src: Register, src2: Register, imm: i64) -> Instruction
    inst_xar_zd_zd_zd_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_xar_zb_zb_zb_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_xar_zh_zh_zh_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_xar_zs_zs_zs_i(rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction
    inst_xpacd(dst: Register) -> Instruction
    inst_xpacd_r(dst: Register) -> Instruction
    inst_xpaci(dst: Register) -> Instruction
    inst_xpaci_r(dst: Register) -> Instruction
    inst_xpaclri() -> Instruction
    inst_xpaclri_none() -> Instruction
    inst_xtn(dst: Register, src: Register) -> Instruction
    inst_xtn2(dst: Register, src: Register) -> Instruction
    inst_xtn2_v16b_v8h(dst: Register, src: Register) -> Instruction
    inst_xtn2_v4s_v2d(dst: Register, src: Register) -> Instruction
    inst_xtn2_v8h_v4s(dst: Register, src: Register) -> Instruction
    inst_xtn_v2s_v2d(dst: Register, src: Register) -> Instruction
    inst_xtn_v4h_v4s(dst: Register, src: Register) -> Instruction
    inst_xtn_v8b_v8h(dst: Register, src: Register) -> Instruction
    inst_yield() -> Instruction
    inst_yield_none() -> Instruction
    inst_zero(imm: i64) -> Instruction
    inst_zero_i(imm: i64) -> Instruction
    inst_zip 2 forms
    inst_zip_zpb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip_zqb_zqb(rz: u8, rz2: u8) -> Instruction
    inst_zip1 2 forms
    inst_zip1_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip1_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip1_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip1_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip1_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip1_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip2 2 forms
    inst_zip2_v8b_v8b_v8b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_zb_zb_zb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip2_pb_pb_pb(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip2_v16b_v16b_v16b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_v2d_v2d_v2d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_v2s_v2s_v2s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_v4h_v4h_v4h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_v4s_v4s_v4s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_v8h_v8h_v8h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_zip2_zd_zd_zd(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip2_zh_zh_zh(rz: u8, rz2: u8, rz3: u8) -> Instruction
    inst_zip2_zs_zs_zs(rz: u8, rz2: u8, rz3: u8) -> Instruction
    is_valid_bitmask_imm(value: u64, is_64: bool) -> bool
    is_valid_bitmask_imm returns true if value is a valid AArch64 logical- immediate when interpreted at the given width.

    is_valid_bitmask_imm returns true if value is a valid AArch64 logical- immediate when interpreted at the given width.

    mem_ext(base, index: Register, ext: Extend, shift_amount: u8 = 0) -> Memory
    mem_offset(base: Register, disp: i32 = 0) -> Memory
    mem_post(base: Register, disp: i32) -> Memory
    mem_pre(base: Register, disp: i32) -> Memory
    mem_reg(base, index: Register, shift_amount: u8 = 0) -> Memory
    mnemonic_to_stringproc(m: Mnemonic, lowercase: bool = true, allocator := context.temp_allocator) -> string
    op_cond(c: Cond) -> Operand
    op_extended(r: Register, ext: Extend, amount: u8) -> Operand
    op_imm(v: i64, size: u8 = 4) -> Operand
    op_label(label_id: u32, size: u8 = 4) -> Operand
    op_lane_index(index: i64) -> Operand
    op_mem(m: Memory) -> Operand
    op_reg(r: Register) -> Operand
    op_rel_offset(off: i64) -> Operand
    op_shifted(r: Register, type: Shift_Type, amount: u8) -> Operand
    op_sysreg(sr: Register) -> Operand
    A system register operand -- op_reg with the intent in the name, kept so MRS/MSR call sites read as what they are.
    op_v_16b(r: Register) -> Operand
    op_v_1d(r: Register) -> Operand
    op_v_1q(r: Register) -> Operand
    .1q breaks the laneselem-bytes rule the others follow (116 would collide with 16B), so it gets the next free multiple of 8.

    .1q breaks the laneselem-bytes rule the others follow (116 would collide with 16B), so it gets the next free multiple of 8.

    op_v_2d(r: Register) -> Operand
    op_v_2s(r: Register) -> Operand
    op_v_4h(r: Register) -> Operand
    op_v_4s(r: Register) -> Operand
    op_v_8b(r: Register) -> Operand
    op_v_8h(r: Register) -> Operand
    op_v_elem_b(r: Register) -> Operand
    Element-indexed V views (V0.B[i]/.H[i]/.S[i]/.D[i]).

    Element-indexed V views (V0.B[i]/.H[i]/.S[i]/.D[i]). The element size rides in op.size so the matcher can disambiguate DUP/INS forms; the lane index is a separate immediate operand.

    The codes are ODD (1/3/5/7) on purpose: arrangement operands above use multiples of 8, so a size can never mean both. They used to be 1/2/4/8, which made an element-D view indistinguishable from an 8B arrangement -- the printer cannot tell .d from .8b if both are size 8.

    op_v_elem_d(r: Register) -> Operand
    op_v_elem_h(r: Register) -> Operand
    op_v_elem_s(r: Register) -> Operand
    op_v_list(first: Register, shape, count: u8) -> Operand
    A run of count consecutive registers written as a list, {v0.16b, v1.16b}.

    A run of count consecutive registers written as a list, {v0.16b, v1.16b}. shape is one of the VSHAPE_* codes.

    op_z_b(n: u8) -> Operand
    op_z_d(n: u8) -> Operand
    op_z_h(n: u8) -> Operand
    op_z_s(n: u8) -> Operand
    op_za_slice(tile, ws, offset, elem: u8, vertical: bool = false) -> Operand
    pack_bitmask_fields(n, immr, imms: u8) -> i64
    pack_bitmask_fields packs N:immr:imms into the 13-bit BITMASK_FIELD operand-immediate format consumed by the encoder packer.
    pack_operand_inlineproc(op: ^Operand, enc: Operand_Encoding, form: ^Encoding, pc: u32, inst_idx: u16, relocs: ^[dynamic]Relocation, inst: ^Instruction) -> u32
    printproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    printlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    q_reg(n: u8) -> Register
    reg_class(r: Register) -> u16
    reg_hw(r: Register) -> u8
    reg_is_w(r: Register) -> bool
    reg_is_wsp(r: Register) -> bool
    reg_is_x(r: Register) -> bool
    reg_is_xsp(r: Register) -> bool
    register_nameproc(r: Register, lowercase: bool = true, allocator := context.temp_allocator) -> string
    s_reg(n: u8) -> Register
    sbprintproc(sb: ^strings.Builder, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    sbprintlnproc(sb: ^strings.Builder, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    sve_esize_code(esize: u32) -> u8
    The SVE element-width code (the size an operand carries) for a width in bits: .b = 1, .h = 2, .s = 4, .d = 8.

    The SVE element-width code (the size an operand carries) for a width in bits: .b = 1, .h = 2, .s = 4, .d = 8.

    sve_tsz_esize(v: u32) -> u32
    The element width, in bits, that a packed tsz value names.
    sve_tsz_pack(esize, shift: u32) -> u32
    The packed tsz value for an element width and shift.
    sve_tsz_shift(v: u32) -> u32
    The shift amount a packed tsz value names.
    sysreg_bits(r: Register) -> u32
    The 15-bit field MRS/MSR carry at bits 19:5 of the instruction word.
    sysreg_field(op0, op1, CRn, CRm, op2: u32) -> Register
    sysreg_from_bits(bits: u32) -> Register
    The register a decoded 15-bit MRS/MSR field names.
    sysreg_name(sr: Register) -> (name: string, ok: bool)
    Name for a system register, or ok=false when it is not one we know -- callers should fall back to printing the raw field.
    tprintproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    tprintlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    unpack_bitmask_fields(v: i64) -> (n, immr, imms: u8)
    unpack_bitmask_fields inverts pack_bitmask_fields.
    v_reg(n: u8) -> Register
    w_reg(n: u8) -> Register
    wprintproc(w: io.Stream, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    wprintlnproc(w: io.Stream, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    x_reg(n: u8) -> Register

    Procedure Groups

    Listed with their procedures under Procedures.

    Source Files

    Generation Information

    Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-10 00:25:51.511820200 +0000 UTC