// *********************************************************
// *                                                       *
// *     Automatically generated file => do not edit!      *
// *                                                       *
// *********************************************************
// *                                                       *
// *       https://github.com/MahdiSafsafi/Azote           *
// *                                                       *
// *********************************************************

{ AArch64 instructions table. }
const
  A64Table: array [0 .. 1223] of TOpCode = (
    { Unallocated. }
    (IID: INSN_INVALID     ; OpCode: $00000000; Mask: $00000000; IClass: c_unallocated; Operands: (None, None, None, None, None) ),
    { Add/subtract (with carry). }
    (IID: INSN_ADC         ; OpCode: $1A000000; Mask: $7FE0FC00; IClass: c_addsub_carry; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF),
    (IID: INSN_ADCS        ; OpCode: $3A000000; Mask: $7FE0FC00; IClass: c_addsub_carry; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF),
    (IID: INSN_NGC         ; OpCode: $5A0003E0; Mask: $7FE0FFE0; IClass: c_addsub_carry; Operands: (Rd, Rm, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_NGCS        ; OpCode: $7A0003E0; Mask: $7FE0FFE0; IClass: c_addsub_carry; Operands: (Rd, Rm, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SBC         ; OpCode: $5A000000; Mask: $7FE0FC00; IClass: c_addsub_carry; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_SBCS        ; OpCode: $7A000000; Mask: $7FE0FC00; IClass: c_addsub_carry; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    { Add/subtract (extended register). }
    (IID: INSN_ADD         ; OpCode: $0B200000; Mask: $7FE00000; IClass: c_addsub_ext; Operands: (Rd_SP, Rn_SP, Rm_EXT, None, None); Flags: F_SF),
    (IID: INSN_ADDS        ; OpCode: $2B200000; Mask: $7FE00000; IClass: c_addsub_ext; Operands: (Rd, Rn_SP, Rm_EXT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CMN         ; OpCode: $2B20001F; Mask: $7FE0001F; IClass: c_addsub_ext; Operands: (Rn_SP, Rm_EXT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_CMP         ; OpCode: $6B20001F; Mask: $7FE0001F; IClass: c_addsub_ext; Operands: (Rn_SP, Rm_EXT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SUB         ; OpCode: $4B200000; Mask: $7FE00000; IClass: c_addsub_ext; Operands: (Rd_SP, Rn_SP, Rm_EXT, None, None); Flags: F_SF),
    (IID: INSN_SUBS        ; OpCode: $6B200000; Mask: $7FE00000; IClass: c_addsub_ext; Operands: (Rd, Rn_SP, Rm_EXT, None, None); Flags: F_SF or F_HAS_ALIAS),
    { Add/subtract (immediate). }
    (IID: INSN_ADD         ; OpCode: $11000000; Mask: $7F000000; IClass: c_addsub_imm; Operands: (Rd_SP, Rn_SP, ImmA, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_ADDS        ; OpCode: $31000000; Mask: $7F000000; IClass: c_addsub_imm; Operands: (Rd, Rn_SP, ImmA, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CMN         ; OpCode: $3100001F; Mask: $7F00001F; IClass: c_addsub_imm; Operands: (Rn_SP, ImmA, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_CMP         ; OpCode: $7100001F; Mask: $7F00001F; IClass: c_addsub_imm; Operands: (Rn_SP, ImmA, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_MOV         ; OpCode: $11000000; Mask: $7FFFFC00; IClass: c_addsub_imm; Operands: (Rd_SP, Rn_SP, None, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_SUB         ; OpCode: $51000000; Mask: $7F000000; IClass: c_addsub_imm; Operands: (Rd_SP, Rn_SP, ImmA, None, None); Flags: F_SF),
    (IID: INSN_SUBS        ; OpCode: $71000000; Mask: $7F000000; IClass: c_addsub_imm; Operands: (Rd, Rn_SP, ImmA, None, None); Flags: F_SF or F_HAS_ALIAS),
    { Add/subtract (shifted register). }
    (IID: INSN_ADD         ; OpCode: $0B000000; Mask: $7F200000; IClass: c_addsub_shift; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_ADDS        ; OpCode: $2B000000; Mask: $7F200000; IClass: c_addsub_shift; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CMN         ; OpCode: $2B00001F; Mask: $7F20001F; IClass: c_addsub_shift; Operands: (Rn, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_CMP         ; OpCode: $6B00001F; Mask: $7F20001F; IClass: c_addsub_shift; Operands: (Rn, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_NEG         ; OpCode: $4B0003E0; Mask: $7F2003E0; IClass: c_addsub_shift; Operands: (Rd, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_NEGS        ; OpCode: $6B0003E0; Mask: $7F2003E0; IClass: c_addsub_shift; Operands: (Rd, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SUB         ; OpCode: $4B000000; Mask: $7F200000; IClass: c_addsub_shift; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_SUBS        ; OpCode: $6B000000; Mask: $7F200000; IClass: c_addsub_shift; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    { Advanced SIMD across lanes. }
    (IID: INSN_ADDV        ; OpCode: $0E31B800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMV     ; OpCode: $0E30C800; Mask: $BFFFFC00; IClass: c_asimdall  ; Operands: (Hd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMV     ; OpCode: $6E30C800; Mask: $FFFFFC00; IClass: c_asimdall  ; Operands: (Sd, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXV       ; OpCode: $0E30F800; Mask: $BFFFFC00; IClass: c_asimdall  ; Operands: (Hd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXV       ; OpCode: $6E30F800; Mask: $FFFFFC00; IClass: c_asimdall  ; Operands: (Sd, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMV     ; OpCode: $0EB0C800; Mask: $BFFFFC00; IClass: c_asimdall  ; Operands: (Hd, Vn_N2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMV     ; OpCode: $6EB0C800; Mask: $FFFFFC00; IClass: c_asimdall  ; Operands: (Sd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINV       ; OpCode: $0EB0F800; Mask: $BFFFFC00; IClass: c_asimdall  ; Operands: (Hd, Vn_N2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINV       ; OpCode: $6EB0F800; Mask: $FFFFFC00; IClass: c_asimdall  ; Operands: (Sd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDLV      ; OpCode: $0E303800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd_P1, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMAXV       ; OpCode: $0E30A800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMINV       ; OpCode: $0E31A800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDLV      ; OpCode: $2E303800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd_P1, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMAXV       ; OpCode: $2E30A800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMINV       ; OpCode: $2E31A800; Mask: $BF3FFC00; IClass: c_asimdall  ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD three different. }
    (IID: INSN_ADDHN       ; OpCode: $0E204000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P3, Vm_P3, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ADDHN2      ; OpCode: $4E204000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_PMULL       ; OpCode: $0EE0E000; Mask: $FFE0FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_PMULL       ; OpCode: $0E20E000; Mask: $FFE0FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_PMULL2      ; OpCode: $4EE0E000; Mask: $FFE0FC00; IClass: c_asimddiff ; Operands: (Vd_P1, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_PMULL2      ; OpCode: $4E20E000; Mask: $FFE0FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_RADDHN      ; OpCode: $2E204000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P3, Vm_P3, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_RADDHN2     ; OpCode: $6E204000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_RSUBHN      ; OpCode: $2E206000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P3, Vm_P3, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_RSUBHN2     ; OpCode: $6E206000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABAL       ; OpCode: $0E205000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABAL2      ; OpCode: $4E205000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABDL       ; OpCode: $0E207000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABDL2      ; OpCode: $4E207000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDL       ; OpCode: $0E200000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDL2      ; OpCode: $4E200000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDW       ; OpCode: $0E201000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn_P3, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDW2      ; OpCode: $4E201000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn_P2, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLAL       ; OpCode: $0E208000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLAL2      ; OpCode: $4E208000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLSL       ; OpCode: $0E20A000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLSL2      ; OpCode: $4E20A000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMULL       ; OpCode: $0E20C000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMULL2      ; OpCode: $4E20C000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLAL     ; OpCode: $0E209000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLAL2    ; OpCode: $4E209000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLSL     ; OpCode: $0E20B000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLSL2    ; OpCode: $4E20B000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULL     ; OpCode: $0E20D000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULL2    ; OpCode: $4E20D000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SSUBL       ; OpCode: $0E202000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SSUBL2      ; OpCode: $4E202000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SSUBW       ; OpCode: $0E203000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn_P3, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SSUBW2      ; OpCode: $4E203000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn_P2, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SUBHN       ; OpCode: $0E206000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P3, Vm_P3, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SUBHN2      ; OpCode: $4E206000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABAL       ; OpCode: $2E205000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABAL2      ; OpCode: $6E205000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABDL       ; OpCode: $2E207000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABDL2      ; OpCode: $6E207000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDL       ; OpCode: $2E200000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDL2      ; OpCode: $6E200000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDW       ; OpCode: $2E201000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn_P3, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDW2      ; OpCode: $6E201000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn_P2, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLAL       ; OpCode: $2E208000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLAL2      ; OpCode: $6E208000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLSL       ; OpCode: $2E20A000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLSL2      ; OpCode: $6E20A000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMULL       ; OpCode: $2E20C000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMULL2      ; OpCode: $6E20C000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USUBL       ; OpCode: $2E202000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USUBL2      ; OpCode: $6E202000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USUBW       ; OpCode: $2E203000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P3, Vn_P3, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USUBW2      ; OpCode: $6E203000; Mask: $FF20FC00; IClass: c_asimddiff ; Operands: (Vd_P2, Vn_P2, Vm, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD vector x indexed element. }
    (IID: INSN_FCMLA       ; OpCode: $2F001000; Mask: $BF009400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, Rot3, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLA        ; OpCode: $0F001000; Mask: $BFC0F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLA        ; OpCode: $0F801000; Mask: $BF80F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLS        ; OpCode: $0F005000; Mask: $BFC0F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLS        ; OpCode: $0F805000; Mask: $BF80F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMUL        ; OpCode: $0F009000; Mask: $BFC0F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMUL        ; OpCode: $0F809000; Mask: $BF80F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $2F009000; Mask: $BFC0F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $2F809000; Mask: $BF80F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MLA         ; OpCode: $2F000000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MLS         ; OpCode: $2F004000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MUL         ; OpCode: $0F008000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SDOT        ; OpCode: $0F00E000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd_P4, Vn, Em_4B, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLAL       ; OpCode: $0F002000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLAL2      ; OpCode: $4F002000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLSL       ; OpCode: $0F006000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMLSL2      ; OpCode: $4F006000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMULL       ; OpCode: $0F00A000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMULL2      ; OpCode: $4F00A000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLAL     ; OpCode: $0F003000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLAL2    ; OpCode: $4F003000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLSL     ; OpCode: $0F007000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMLSL2    ; OpCode: $4F007000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULH     ; OpCode: $0F00C000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULL     ; OpCode: $0F00B000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULL2    ; OpCode: $4F00B000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMLAH    ; OpCode: $2F00D000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMLSH    ; OpCode: $2F00F000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMULH    ; OpCode: $0F00D000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UDOT        ; OpCode: $2F00E000; Mask: $BF00F400; IClass: c_asimdelem ; Operands: (Vd_P4, Vn, Em_4B, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLAL       ; OpCode: $2F002000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLAL2      ; OpCode: $6F002000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLSL       ; OpCode: $2F006000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMLSL2      ; OpCode: $6F006000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMULL       ; OpCode: $2F00A000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P3, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMULL2      ; OpCode: $6F00A000; Mask: $FF00F400; IClass: c_asimdelem ; Operands: (Vd_P2, Vn, Em, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD extract. }
    (IID: INSN_EXT         ; OpCode: $2E000000; Mask: $BFE08400; IClass: c_asimdext  ; Operands: (Vd, Vn, Vm, Index, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD modified immediate. }
    (IID: INSN_BIC         ; OpCode: $2F009400; Mask: $BFF8DC00; IClass: c_asimdimm  ; Operands: (Vd_P2, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_BIC         ; OpCode: $2F001400; Mask: $BFF89C00; IClass: c_asimdimm  ; Operands: (Vd_P4, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMOV        ; OpCode: $0F00FC00; Mask: $BFF8FC00; IClass: c_asimdimm  ; Operands: (Vd_P2, ImmFP, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMOV        ; OpCode: $0F00F400; Mask: $BFF8FC00; IClass: c_asimdimm  ; Operands: (Vd_P4, ImmFP, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMOV        ; OpCode: $6F00F400; Mask: $FFF8FC00; IClass: c_asimdimm  ; Operands: (Vd_P6, ImmFP, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MOVI        ; OpCode: $0F00E400; Mask: $BFF8FC00; IClass: c_asimdimm  ; Operands: (Vd, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MOVI        ; OpCode: $0F008400; Mask: $BFF8DC00; IClass: c_asimdimm  ; Operands: (Vd_P2, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MOVI        ; OpCode: $0F000400; Mask: $BFF80C00; IClass: c_asimdimm  ; Operands: (Vd_P4, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MOVI        ; OpCode: $2F00E400; Mask: $FFF8FC00; IClass: c_asimdimm  ; Operands: (Dd, ImmLong, None, None, None); Flags: 0),
    (IID: INSN_MOVI        ; OpCode: $6F00E400; Mask: $FFF8FC00; IClass: c_asimdimm  ; Operands: (Vd_P6, ImmLong, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MVNI        ; OpCode: $2F008400; Mask: $BFF8DC00; IClass: c_asimdimm  ; Operands: (Vd_P2, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MVNI        ; OpCode: $2F000400; Mask: $BFF80C00; IClass: c_asimdimm  ; Operands: (Vd_P4, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ORR         ; OpCode: $0F009400; Mask: $BFF8DC00; IClass: c_asimdimm  ; Operands: (Vd_P2, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ORR         ; OpCode: $0F001400; Mask: $BFF89C00; IClass: c_asimdimm  ; Operands: (Vd_P4, Imm8Sft, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD copy. }
    (IID: INSN_DUP         ; OpCode: $0E000400; Mask: $BFE0FC00; IClass: c_asimdins  ; Operands: (Vd, En, None, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_DUP         ; OpCode: $0E000C00; Mask: $BFE0FC00; IClass: c_asimdins  ; Operands: (Vd, Rn, None, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_INS         ; OpCode: $6E000400; Mask: $FFE08400; IClass: c_asimdins  ; Operands: (Ed, En, None, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_INS         ; OpCode: $4E001C00; Mask: $FFE0FC00; IClass: c_asimdins  ; Operands: (Ed, Rn, None, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_MOV         ; OpCode: $6E000400; Mask: $FFE08400; IClass: c_asimdins  ; Operands: (Ed, En, None, None, None); Flags: F_Q or F_IMM or F_ALIAS),
    (IID: INSN_MOV         ; OpCode: $4E001C00; Mask: $FFE0FC00; IClass: c_asimdins  ; Operands: (Ed, Rn, None, None, None); Flags: F_Q or F_IMM or F_ALIAS),
    (IID: INSN_MOV         ; OpCode: $0E003C00; Mask: $BFE3FC00; IClass: c_asimdins  ; Operands: (Rd, En, None, None, None); Flags: F_Q or F_IMM or F_SF or F_ALIAS),
    (IID: INSN_SMOV        ; OpCode: $0E002C00; Mask: $BFE0FC00; IClass: c_asimdins  ; Operands: (Rd, En, None, None, None); Flags: F_Q or F_IMM or F_SF),
    (IID: INSN_UMOV        ; OpCode: $0E003C00; Mask: $BFE0FC00; IClass: c_asimdins  ; Operands: (Rd, En, None, None, None); Flags: F_Q or F_IMM or F_SF or F_HAS_ALIAS),
    { Advanced SIMD two-register miscellaneous. }
    (IID: INSN_ABS         ; OpCode: $0E20B800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CLS         ; OpCode: $0E204800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CLZ         ; OpCode: $2E204800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMEQ        ; OpCode: $0E209800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, Cnst0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMGE        ; OpCode: $2E208800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, Cnst0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMGT        ; OpCode: $0E208800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, Cnst0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMLE        ; OpCode: $2E209800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, Cnst0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMLT        ; OpCode: $0E20A800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, Cnst0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CNT         ; OpCode: $0E205800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FABS        ; OpCode: $0EA0F800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMEQ       ; OpCode: $0EA0D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $2EA0C800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $0EA0C800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMLE       ; OpCode: $2EA0D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMLT       ; OpCode: $0EA0E800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTAS      ; OpCode: $0E21C800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTAU      ; OpCode: $2E21C800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTL       ; OpCode: $0E217800; Mask: $FFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P5, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTL2      ; OpCode: $4E217800; Mask: $FFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTMS      ; OpCode: $0E21B800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTMU      ; OpCode: $2E21B800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTN       ; OpCode: $0E216800; Mask: $FFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn_P5, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTN2      ; OpCode: $4E216800; Mask: $FFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTNS      ; OpCode: $0E21A800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTNU      ; OpCode: $2E21A800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTPS      ; OpCode: $0EA1A800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTPU      ; OpCode: $2EA1A800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTXN      ; OpCode: $2E616800; Mask: $FFFFFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn_P5, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTXN2     ; OpCode: $6E616800; Mask: $FFFFFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTZS      ; OpCode: $0EA1B800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTZU      ; OpCode: $2EA1B800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FNEG        ; OpCode: $2EA0F800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRECPE      ; OpCode: $0EA1D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTA      ; OpCode: $2E218800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTI      ; OpCode: $2EA19800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTM      ; OpCode: $0E219800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTN      ; OpCode: $0E218800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTP      ; OpCode: $0EA18800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTX      ; OpCode: $2E219800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTZ      ; OpCode: $0EA19800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRSQRTE     ; OpCode: $2EA1D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FSQRT       ; OpCode: $2EA1F800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MVN         ; OpCode: $2E205800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE or F_ALIAS),
    (IID: INSN_NEG         ; OpCode: $2E20B800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_NOT         ; OpCode: $2E205800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE or F_HAS_ALIAS),
    (IID: INSN_RBIT        ; OpCode: $2E605800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd_N2, Vn_N2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_REV16       ; OpCode: $0E201800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_REV32       ; OpCode: $2E200800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_REV64       ; OpCode: $0E200800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADALP      ; OpCode: $0E206800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SADDLP      ; OpCode: $0E202800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SCVTF       ; OpCode: $0E21D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHLL        ; OpCode: $2E213800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P3, Vn, ShiftLL, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHLL2       ; OpCode: $6E213800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn, ShiftLL, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQABS       ; OpCode: $0E207800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQNEG       ; OpCode: $2E207800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQXTN       ; OpCode: $0E214800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQXTN2      ; OpCode: $4E214800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQXTUN      ; OpCode: $2E212800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQXTUN2     ; OpCode: $6E212800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SUQADD      ; OpCode: $0E203800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADALP      ; OpCode: $2E206800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UADDLP      ; OpCode: $2E202800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UCVTF       ; OpCode: $2E21D800; Mask: $BFBFFC00; IClass: c_asimdmisc ; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQXTN       ; OpCode: $2E214800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQXTN2      ; OpCode: $6E214800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_URECPE      ; OpCode: $0EA1C800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_URSQRTE     ; OpCode: $2EA1C800; Mask: $BFFFFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USQADD      ; OpCode: $2E203800; Mask: $BF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_XTN         ; OpCode: $0E212800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_XTN2        ; OpCode: $4E212800; Mask: $FF3FFC00; IClass: c_asimdmisc ; Operands: (Vd, Vn_P2, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD two-register miscellaneous (FP16). }
    (IID: INSN_FABS        ; OpCode: $0EF8F800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMEQ       ; OpCode: $0EF8D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $2EF8C800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $0EF8C800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMLE       ; OpCode: $2EF8D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMLT       ; OpCode: $0EF8E800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, CnstFP0, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTAS      ; OpCode: $0E79C800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTAU      ; OpCode: $2E79C800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTMS      ; OpCode: $0E79B800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTMU      ; OpCode: $2E79B800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTNS      ; OpCode: $0E79A800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTNU      ; OpCode: $2E79A800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTPS      ; OpCode: $0EF9A800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTPU      ; OpCode: $2EF9A800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTZS      ; OpCode: $0EF9B800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCVTZU      ; OpCode: $2EF9B800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FNEG        ; OpCode: $2EF8F800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRECPE      ; OpCode: $0EF9D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTA      ; OpCode: $2E798800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTI      ; OpCode: $2EF99800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTM      ; OpCode: $0E799800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTN      ; OpCode: $0E798800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTP      ; OpCode: $0EF98800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTX      ; OpCode: $2E799800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRINTZ      ; OpCode: $0EF99800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRSQRTE     ; OpCode: $2EF9D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FSQRT       ; OpCode: $2EF9F800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SCVTF       ; OpCode: $0E79D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UCVTF       ; OpCode: $2E79D800; Mask: $BFFFFC00; IClass: c_asimdmiscfp16; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD permute. }
    (IID: INSN_TRN1        ; OpCode: $0E002800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_TRN2        ; OpCode: $0E006800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UZP1        ; OpCode: $0E001800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UZP2        ; OpCode: $0E005800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ZIP1        ; OpCode: $0E003800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ZIP2        ; OpCode: $0E007800; Mask: $BF20FC00; IClass: c_asimdperm ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD three same. }
    (IID: INSN_ADD         ; OpCode: $0E208400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ADDP        ; OpCode: $0E20BC00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_AND         ; OpCode: $0E201C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_BIC         ; OpCode: $0E601C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N2, Vn_N2, Vm_N2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_BIF         ; OpCode: $2EE01C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N6, Vn_N6, Vm_N6, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_BIT         ; OpCode: $2EA01C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_BSL         ; OpCode: $2E601C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N2, Vn_N2, Vm_N2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMEQ        ; OpCode: $2E208C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMGE        ; OpCode: $0E203C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMGT        ; OpCode: $0E203400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMHI        ; OpCode: $2E203400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMHS        ; OpCode: $2E203C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_CMTST       ; OpCode: $0E208C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_EOR         ; OpCode: $2E201C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FABD        ; OpCode: $2EA0D400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FACGE       ; OpCode: $2E20EC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FACGT       ; OpCode: $2EA0EC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADD        ; OpCode: $0E20D400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADDP       ; OpCode: $2E20D400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMEQ       ; OpCode: $0E20E400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $2E20E400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $2EA0E400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FDIV        ; OpCode: $2E20FC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAX        ; OpCode: $0E20F400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNM      ; OpCode: $0E20C400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMP     ; OpCode: $2E20C400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXP       ; OpCode: $2E20F400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMIN        ; OpCode: $0EA0F400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNM      ; OpCode: $0EA0C400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMP     ; OpCode: $2EA0C400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINP       ; OpCode: $2EA0F400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLA        ; OpCode: $0E20CC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLS        ; OpCode: $0EA0CC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMUL        ; OpCode: $2E20DC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $0E20DC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRECPS      ; OpCode: $0E20FC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRSQRTS     ; OpCode: $0EA0FC00; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FSUB        ; OpCode: $0EA0D400; Mask: $BFA0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MLA         ; OpCode: $0E209400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MLS         ; OpCode: $2E209400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_MOV         ; OpCode: $0EA01C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N4, Vn_N4, None, None, None); Flags: F_Q or F_SIZE or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_MUL         ; OpCode: $0E209C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ORN         ; OpCode: $0EE01C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N6, Vn_N6, Vm_N6, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ORR         ; OpCode: $0EA01C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE or F_HAS_ALIAS),
    (IID: INSN_PMUL        ; OpCode: $2E209C00; Mask: $BFE0FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABA        ; OpCode: $0E207C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SABD        ; OpCode: $0E207400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHADD       ; OpCode: $0E200400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHSUB       ; OpCode: $0E202400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMAX        ; OpCode: $0E206400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMAXP       ; OpCode: $0E20A400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMIN        ; OpCode: $0E206C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SMINP       ; OpCode: $0E20AC00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQADD       ; OpCode: $0E200C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQDMULH     ; OpCode: $0E20B400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMULH    ; OpCode: $2E20B400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRSHL      ; OpCode: $0E205C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQSHL       ; OpCode: $0E204C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQSUB       ; OpCode: $0E202C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SRHADD      ; OpCode: $0E201400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SRSHL       ; OpCode: $0E205400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SSHL        ; OpCode: $0E204400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SUB         ; OpCode: $2E208400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABA        ; OpCode: $2E207C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UABD        ; OpCode: $2E207400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UHADD       ; OpCode: $2E200400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UHSUB       ; OpCode: $2E202400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMAX        ; OpCode: $2E206400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMAXP       ; OpCode: $2E20A400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMIN        ; OpCode: $2E206C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UMINP       ; OpCode: $2E20AC00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQADD       ; OpCode: $2E200C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQRSHL      ; OpCode: $2E205C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQSHL       ; OpCode: $2E204C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UQSUB       ; OpCode: $2E202C00; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_URHADD      ; OpCode: $2E201400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_URSHL       ; OpCode: $2E205400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_USHL        ; OpCode: $2E204400; Mask: $BF20FC00; IClass: c_asimdsame ; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD three same extra. }
    (IID: INSN_FCADD       ; OpCode: $2E00E400; Mask: $BF20EC00; IClass: c_asimdsame2; Operands: (Vd, Vn, Vm, Rot1, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMLA       ; OpCode: $2E00C400; Mask: $BF20E400; IClass: c_asimdsame2; Operands: (Vd, Vn, Vm, Rot2, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SDOT        ; OpCode: $0E009400; Mask: $BF20FC00; IClass: c_asimdsame2; Operands: (Vd_P4, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMLAH    ; OpCode: $2E008400; Mask: $BF20FC00; IClass: c_asimdsame2; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SQRDMLSH    ; OpCode: $2E008C00; Mask: $BF20FC00; IClass: c_asimdsame2; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_UDOT        ; OpCode: $2E009400; Mask: $BF20FC00; IClass: c_asimdsame2; Operands: (Vd_P4, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD three same (FP16). }
    (IID: INSN_FABD        ; OpCode: $2EC01400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FACGE       ; OpCode: $2E402C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FACGT       ; OpCode: $2EC02C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADD        ; OpCode: $0E401400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADDP       ; OpCode: $2E401400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMEQ       ; OpCode: $0E402400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $2E402400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $2EC02400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FDIV        ; OpCode: $2E403C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAX        ; OpCode: $0E403400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNM      ; OpCode: $0E400400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMP     ; OpCode: $2E400400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXP       ; OpCode: $2E403400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMIN        ; OpCode: $0EC03400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNM      ; OpCode: $0EC00400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMP     ; OpCode: $2EC00400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINP       ; OpCode: $2EC03400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLA        ; OpCode: $0E400C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMLS        ; OpCode: $0EC00C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMUL        ; OpCode: $2E401C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $0E401C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRECPS      ; OpCode: $0E403C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd, Vn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FRSQRTS     ; OpCode: $0EC03C00; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FSUB        ; OpCode: $0EC01400; Mask: $BFE0FC00; IClass: c_asimdsamefp16; Operands: (Vd_N4, Vn_N4, Vm_N4, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD shift by immediate. }
    (IID: INSN_FCVTZS      ; OpCode: $0F00FC00; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, FBitsR, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_FCVTZU      ; OpCode: $2F00FC00; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, FBitsR, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_RSHRN       ; OpCode: $0F008C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_RSHRN2      ; OpCode: $4F008C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SCVTF       ; OpCode: $0F00E400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, FBitsR, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SHL         ; OpCode: $0F005400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SHRN        ; OpCode: $0F008400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SHRN2       ; OpCode: $4F008400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SLI         ; OpCode: $2F005400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQRSHRN     ; OpCode: $0F009C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQRSHRN2    ; OpCode: $4F009C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQRSHRUN    ; OpCode: $2F008C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQRSHRUN2   ; OpCode: $6F008C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHL       ; OpCode: $0F007400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHLU      ; OpCode: $2F006400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHRN      ; OpCode: $0F009400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHRN2     ; OpCode: $4F009400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHRUN     ; OpCode: $2F008400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SQSHRUN2    ; OpCode: $6F008400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SRI         ; OpCode: $2F004400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SRSHR       ; OpCode: $0F002400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SRSRA       ; OpCode: $0F003400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SSHLL       ; OpCode: $0F00A400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd_P3, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_SSHLL2      ; OpCode: $4F00A400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd_P2, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_SSHR        ; OpCode: $0F000400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SSRA        ; OpCode: $0F001400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_SXTL        ; OpCode: $0F00A400; Mask: $FFC7FC00; IClass: c_asimdshf  ; Operands: (Vd_P3, Vn, None, None, None); Flags: F_Q or F_IMM or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_SXTL2       ; OpCode: $4F00A400; Mask: $FFC7FC00; IClass: c_asimdshf  ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_IMM or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_UCVTF       ; OpCode: $2F00E400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, FBitsR, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UQRSHRN     ; OpCode: $2F009C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UQRSHRN2    ; OpCode: $6F009C00; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UQSHL       ; OpCode: $2F007400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UQSHRN      ; OpCode: $2F009400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P3, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UQSHRN2     ; OpCode: $6F009400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn_P2, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_URSHR       ; OpCode: $2F002400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_URSRA       ; OpCode: $2F003400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_USHLL       ; OpCode: $2F00A400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd_P3, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_USHLL2      ; OpCode: $6F00A400; Mask: $FFC0FC00; IClass: c_asimdshf  ; Operands: (Vd_P2, Vn, ShiftLeft, None, None); Flags: F_Q or F_IMM or F_HAS_ALIAS),
    (IID: INSN_USHR        ; OpCode: $2F000400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_USRA        ; OpCode: $2F001400; Mask: $BF80FC00; IClass: c_asimdshf  ; Operands: (Vd, Vn, ShiftRight, None, None); Flags: F_Q or F_IMM),
    (IID: INSN_UXTL        ; OpCode: $2F00A400; Mask: $FFC7FC00; IClass: c_asimdshf  ; Operands: (Vd_P3, Vn, None, None, None); Flags: F_Q or F_IMM or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_UXTL2       ; OpCode: $6F00A400; Mask: $FFC7FC00; IClass: c_asimdshf  ; Operands: (Vd_P2, Vn, None, None, None); Flags: F_Q or F_IMM or F_ALIAS or F_CONDITIONALLY),
    { Advanced SIMD table lookup. }
    (IID: INSN_TBL         ; OpCode: $0E000000; Mask: $BFE09C00; IClass: c_asimdtbl  ; Operands: (Vd, LVn, Vm, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_TBX         ; OpCode: $0E001000; Mask: $BFE09C00; IClass: c_asimdtbl  ; Operands: (Vd, LVn, Vm, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD scalar three different. }
    (IID: INSN_SQDMLAL     ; OpCode: $5E209000; Mask: $FF20FC00; IClass: c_asisddiff ; Operands: (Nd_P1, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMLSL     ; OpCode: $5E20B000; Mask: $FF20FC00; IClass: c_asisddiff ; Operands: (Nd_P1, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMULL     ; OpCode: $5E20D000; Mask: $FF20FC00; IClass: c_asisddiff ; Operands: (Nd_P1, Nn, Nm, None, None); Flags: F_SIZE),
    { Advanced SIMD scalar x indexed element. }
    (IID: INSN_FMLA        ; OpCode: $5F001000; Mask: $FFC0F400; IClass: c_asisdelem ; Operands: (Hd, Hn, Em, None, None); Flags: 0),
    (IID: INSN_FMLA        ; OpCode: $5F801000; Mask: $FF80F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_FMLS        ; OpCode: $5F005000; Mask: $FFC0F400; IClass: c_asisdelem ; Operands: (Hd, Hn, Em, None, None); Flags: 0),
    (IID: INSN_FMLS        ; OpCode: $5F805000; Mask: $FF80F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_FMUL        ; OpCode: $5F009000; Mask: $FFC0F400; IClass: c_asisdelem ; Operands: (Hd, Hn, Em, None, None); Flags: 0),
    (IID: INSN_FMUL        ; OpCode: $5F809000; Mask: $FF80F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $7F009000; Mask: $FFC0F400; IClass: c_asisdelem ; Operands: (Hd, Hn, Em, None, None); Flags: 0),
    (IID: INSN_FMULX       ; OpCode: $7F809000; Mask: $FF80F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMLAL     ; OpCode: $5F003000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd_P1, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMLSL     ; OpCode: $5F007000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd_P1, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMULH     ; OpCode: $5F00C000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMULL     ; OpCode: $5F00B000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd_P1, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQRDMLAH    ; OpCode: $7F00D000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQRDMLSH    ; OpCode: $7F00F000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    (IID: INSN_SQRDMULH    ; OpCode: $5F00D000; Mask: $FF00F400; IClass: c_asisdelem ; Operands: (Nd, Nn, Em, None, None); Flags: F_SIZE),
    { Advanced SIMD load/store multiple structures. }
    (IID: INSN_LD1         ; OpCode: $0C402000; Mask: $BFFF2000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2         ; OpCode: $0C408000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3         ; OpCode: $0C404000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4         ; OpCode: $0C400000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST1         ; OpCode: $0C002000; Mask: $BFFF2000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST2         ; OpCode: $0C008000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST3         ; OpCode: $0C004000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST4         ; OpCode: $0C000000; Mask: $BFFFF000; IClass: c_asisdlse  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD load/store multiple structures (post-indexed). }
    (IID: INSN_LD1         ; OpCode: $0CC02000; Mask: $BFE02000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2         ; OpCode: $0CC08000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3         ; OpCode: $0CC04000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4         ; OpCode: $0CC00000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST1         ; OpCode: $0C802000; Mask: $BFE02000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST2         ; OpCode: $0C808000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST3         ; OpCode: $0C804000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST4         ; OpCode: $0C800000; Mask: $BFE0F000; IClass: c_asisdlsep ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD load/store single structure. }
    (IID: INSN_LD1         ; OpCode: $0D400000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD1R        ; OpCode: $0D40C000; Mask: $BFFFF000; IClass: c_asisdlso  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2         ; OpCode: $0D600000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2R        ; OpCode: $0D60C000; Mask: $BFFFF000; IClass: c_asisdlso  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3         ; OpCode: $0D402000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3R        ; OpCode: $0D40E000; Mask: $BFFFF000; IClass: c_asisdlso  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4         ; OpCode: $0D602000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4R        ; OpCode: $0D60E000; Mask: $BFFFF000; IClass: c_asisdlso  ; Operands: (LVt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST1         ; OpCode: $0D000000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST2         ; OpCode: $0D200000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST3         ; OpCode: $0D002000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST4         ; OpCode: $0D202000; Mask: $BFFF2000; IClass: c_asisdlso  ; Operands: (LEt, addr, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD load/store single structure (post-indexed). }
    (IID: INSN_LD1         ; OpCode: $0DC00000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD1R        ; OpCode: $0DC0C000; Mask: $BFE0F000; IClass: c_asisdlsop ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2         ; OpCode: $0DE00000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD2R        ; OpCode: $0DE0C000; Mask: $BFE0F000; IClass: c_asisdlsop ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3         ; OpCode: $0DC02000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD3R        ; OpCode: $0DC0E000; Mask: $BFE0F000; IClass: c_asisdlsop ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4         ; OpCode: $0DE02000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_LD4R        ; OpCode: $0DE0E000; Mask: $BFE0F000; IClass: c_asisdlsop ; Operands: (LVt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST1         ; OpCode: $0D800000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST2         ; OpCode: $0DA00000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST3         ; OpCode: $0D802000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_ST4         ; OpCode: $0DA02000; Mask: $BFE02000; IClass: c_asisdlsop ; Operands: (LEt, addr_struct, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD scalar two-register miscellaneous. }
    (IID: INSN_ABS         ; OpCode: $5EE0B800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, None, None, None); Flags: 0),
    (IID: INSN_CMEQ        ; OpCode: $5EE09800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, Cnst0, None, None); Flags: 0),
    (IID: INSN_CMGE        ; OpCode: $7EE08800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, Cnst0, None, None); Flags: 0),
    (IID: INSN_CMGT        ; OpCode: $5EE08800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, Cnst0, None, None); Flags: 0),
    (IID: INSN_CMLE        ; OpCode: $7EE09800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, Cnst0, None, None); Flags: 0),
    (IID: INSN_CMLT        ; OpCode: $5EE0A800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, Cnst0, None, None); Flags: 0),
    (IID: INSN_FCMEQ       ; OpCode: $5EA0D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, CnstFP0, None, None); Flags: F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $7EA0C800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, CnstFP0, None, None); Flags: F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $5EA0C800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, CnstFP0, None, None); Flags: F_SIZE),
    (IID: INSN_FCMLE       ; OpCode: $7EA0D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, CnstFP0, None, None); Flags: F_SIZE),
    (IID: INSN_FCMLT       ; OpCode: $5EA0E800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, CnstFP0, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTAS      ; OpCode: $5E21C800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTAU      ; OpCode: $7E21C800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTMS      ; OpCode: $5E21B800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTMU      ; OpCode: $7E21B800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTNS      ; OpCode: $5E21A800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTNU      ; OpCode: $7E21A800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTPS      ; OpCode: $5EA1A800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTPU      ; OpCode: $7EA1A800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTXN      ; OpCode: $7E616800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Sd, Dn, None, None, None); Flags: 0),
    (IID: INSN_FCVTZS      ; OpCode: $5EA1B800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FCVTZU      ; OpCode: $7EA1B800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FRECPE      ; OpCode: $5EA1D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FRECPX      ; OpCode: $5EA1F800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_FRSQRTE     ; OpCode: $7EA1D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_NEG         ; OpCode: $7EE0B800; Mask: $FFFFFC00; IClass: c_asisdmisc ; Operands: (Dd, Dn, None, None, None); Flags: 0),
    (IID: INSN_SCVTF       ; OpCode: $5E21D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_SQABS       ; OpCode: $5E207800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_SQNEG       ; OpCode: $7E207800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_SQXTN       ; OpCode: $5E214800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn_P1, None, None, None); Flags: F_SIZE),
    (IID: INSN_SQXTUN      ; OpCode: $7E212800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn_P1, None, None, None); Flags: F_SIZE),
    (IID: INSN_SUQADD      ; OpCode: $5E203800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    (IID: INSN_UCVTF       ; OpCode: $7E21D800; Mask: $FFBFFC00; IClass: c_asisdmisc ; Operands: (Nd_P2, Nn_P2, None, None, None); Flags: F_SIZE),
    (IID: INSN_UQXTN       ; OpCode: $7E214800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn_P1, None, None, None); Flags: F_SIZE),
    (IID: INSN_USQADD      ; OpCode: $7E203800; Mask: $FF3FFC00; IClass: c_asisdmisc ; Operands: (Nd, Nn, None, None, None); Flags: F_SIZE),
    { Advanced SIMD scalar two-register miscellaneous FP16. }
    (IID: INSN_FCMEQ       ; OpCode: $5EF8D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, CnstFP0, None, None); Flags: 0),
    (IID: INSN_FCMGE       ; OpCode: $7EF8C800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, CnstFP0, None, None); Flags: 0),
    (IID: INSN_FCMGT       ; OpCode: $5EF8C800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, CnstFP0, None, None); Flags: 0),
    (IID: INSN_FCMLE       ; OpCode: $7EF8D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, CnstFP0, None, None); Flags: 0),
    (IID: INSN_FCMLT       ; OpCode: $5EF8E800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, CnstFP0, None, None); Flags: 0),
    (IID: INSN_FCVTAS      ; OpCode: $5E79C800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTAU      ; OpCode: $7E79C800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTMS      ; OpCode: $5E79B800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTMU      ; OpCode: $7E79B800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTNS      ; OpCode: $5E79A800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTNU      ; OpCode: $7E79A800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTPS      ; OpCode: $5EF9A800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTPU      ; OpCode: $7EF9A800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTZS      ; OpCode: $5EF9B800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FCVTZU      ; OpCode: $7EF9B800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRECPE      ; OpCode: $5EF9D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRECPX      ; OpCode: $5EF9F800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRSQRTE     ; OpCode: $7EF9D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_SCVTF       ; OpCode: $5E79D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_UCVTF       ; OpCode: $7E79D800; Mask: $FFFFFC00; IClass: c_asisdmiscfp16; Operands: (Hd, Hn, None, None, None); Flags: 0),
    { Advanced SIMD scalar copy. }
    (IID: INSN_DUP         ; OpCode: $5E000400; Mask: $FFE0FC00; IClass: c_asisdone  ; Operands: (Nd, En, None, None, None); Flags: F_IMM or F_HAS_ALIAS),
    (IID: INSN_MOV         ; OpCode: $5E000400; Mask: $FFE0FC00; IClass: c_asisdone  ; Operands: (Nd, En, None, None, None); Flags: F_IMM or F_ALIAS),
    { Advanced SIMD scalar pairwise. }
    (IID: INSN_ADDP        ; OpCode: $5EF1B800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Dd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADDP       ; OpCode: $5E30D800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Hd, Vn_2H, None, None, None); Flags: 0),
    (IID: INSN_FADDP       ; OpCode: $7E30D800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FADDP       ; OpCode: $7E70D800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMP     ; OpCode: $5E30C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Hd, Vn_2H, None, None, None); Flags: 0),
    (IID: INSN_FMAXNMP     ; OpCode: $7E30C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXNMP     ; OpCode: $7E70C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXP       ; OpCode: $5E30F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Hd, Vn_2H, None, None, None); Flags: 0),
    (IID: INSN_FMAXP       ; OpCode: $7E30F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P3, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMAXP       ; OpCode: $7E70F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd_P2, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMP     ; OpCode: $5EB0C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Hd, Vn_2H, None, None, None); Flags: 0),
    (IID: INSN_FMINNMP     ; OpCode: $7EF0C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINNMP     ; OpCode: $7EB0C800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd, Vn_N1, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINP       ; OpCode: $5EB0F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Hd, Vn_2H, None, None, None); Flags: 0),
    (IID: INSN_FMINP       ; OpCode: $7EF0F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_FMINP       ; OpCode: $7EB0F800; Mask: $FFFFFC00; IClass: c_asisdpair ; Operands: (Nd, Vn_N1, None, None, None); Flags: F_Q or F_SIZE),
    { Advanced SIMD scalar three same. }
    (IID: INSN_ADD         ; OpCode: $5EE08400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMEQ        ; OpCode: $7EE08C00; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMGE        ; OpCode: $5EE03C00; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMGT        ; OpCode: $5EE03400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMHI        ; OpCode: $7EE03400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMHS        ; OpCode: $7EE03C00; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_CMTST       ; OpCode: $5EE08C00; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_FABD        ; OpCode: $7EA0D400; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_FACGE       ; OpCode: $7E20EC00; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd_P2, Nn_P2, Nm_P2, None, None); Flags: F_SIZE),
    (IID: INSN_FACGT       ; OpCode: $7EA0EC00; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_FCMEQ       ; OpCode: $5E20E400; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd_P2, Nn_P2, Nm_P2, None, None); Flags: F_SIZE),
    (IID: INSN_FCMGE       ; OpCode: $7E20E400; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd_P2, Nn_P2, Nm_P2, None, None); Flags: F_SIZE),
    (IID: INSN_FCMGT       ; OpCode: $7EA0E400; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_FMULX       ; OpCode: $5E20DC00; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd_P2, Nn_P2, Nm_P2, None, None); Flags: F_SIZE),
    (IID: INSN_FRECPS      ; OpCode: $5E20FC00; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd_P2, Nn_P2, Nm_P2, None, None); Flags: F_SIZE),
    (IID: INSN_FRSQRTS     ; OpCode: $5EA0FC00; Mask: $FFA0FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQADD       ; OpCode: $5E200C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQDMULH     ; OpCode: $5E20B400; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQRDMULH    ; OpCode: $7E20B400; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQRSHL      ; OpCode: $5E205C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQSHL       ; OpCode: $5E204C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQSUB       ; OpCode: $5E202C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SRSHL       ; OpCode: $5EE05400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_SSHL        ; OpCode: $5EE04400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_SUB         ; OpCode: $7EE08400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_UQADD       ; OpCode: $7E200C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_UQRSHL      ; OpCode: $7E205C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_UQSHL       ; OpCode: $7E204C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_UQSUB       ; OpCode: $7E202C00; Mask: $FF20FC00; IClass: c_asisdsame ; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_URSHL       ; OpCode: $7EE05400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    (IID: INSN_USHL        ; OpCode: $7EE04400; Mask: $FFE0FC00; IClass: c_asisdsame ; Operands: (Dd, Dn, Dm, None, None); Flags: 0),
    { Advanced SIMD scalar three same extra. }
    (IID: INSN_SQRDMLAH    ; OpCode: $7E008400; Mask: $FF20FC00; IClass: c_asisdsame2; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    (IID: INSN_SQRDMLSH    ; OpCode: $7E008C00; Mask: $FF20FC00; IClass: c_asisdsame2; Operands: (Nd, Nn, Nm, None, None); Flags: F_SIZE),
    { Advanced SIMD scalar three same FP16. }
    (IID: INSN_FABD        ; OpCode: $7EC01400; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FACGE       ; OpCode: $7E402C00; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FACGT       ; OpCode: $7EC02C00; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FCMEQ       ; OpCode: $5E402400; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FCMGE       ; OpCode: $7E402400; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FCMGT       ; OpCode: $7EC02400; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMULX       ; OpCode: $5E401C00; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FRECPS      ; OpCode: $5E403C00; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FRSQRTS     ; OpCode: $5EC03C00; Mask: $FFE0FC00; IClass: c_asisdsamefp16; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    { Advanced SIMD scalar shift by immediate. }
    (IID: INSN_FCVTZS      ; OpCode: $5F00FC00; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, FBitsR, None, None); Flags: F_IMM),
    (IID: INSN_FCVTZU      ; OpCode: $7F00FC00; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, FBitsR, None, None); Flags: F_IMM),
    (IID: INSN_SCVTF       ; OpCode: $5F00E400; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, FBitsR, None, None); Flags: F_IMM),
    (IID: INSN_SHL         ; OpCode: $5F405400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftLeft, None, None); Flags: 0),
    (IID: INSN_SLI         ; OpCode: $7F405400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftLeft, None, None); Flags: 0),
    (IID: INSN_SQRSHRN     ; OpCode: $5F009C00; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_SQRSHRUN    ; OpCode: $7F008C00; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_SQSHL       ; OpCode: $5F007400; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, ShiftLeft, None, None); Flags: F_IMM),
    (IID: INSN_SQSHLU      ; OpCode: $7F006400; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, ShiftLeft, None, None); Flags: F_IMM),
    (IID: INSN_SQSHRN      ; OpCode: $5F009400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_SQSHRUN     ; OpCode: $7F008400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_SRI         ; OpCode: $7F404400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_SRSHR       ; OpCode: $5F402400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_SRSRA       ; OpCode: $5F403400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_SSHR        ; OpCode: $5F400400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_SSRA        ; OpCode: $5F401400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_UCVTF       ; OpCode: $7F00E400; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, FBitsR, None, None); Flags: F_IMM),
    (IID: INSN_UQRSHRN     ; OpCode: $7F009C00; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_UQSHL       ; OpCode: $7F007400; Mask: $FF80FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn, ShiftLeft, None, None); Flags: F_IMM),
    (IID: INSN_UQSHRN      ; OpCode: $7F009400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Nd, Nn_P1, ShiftRight, None, None); Flags: F_IMM),
    (IID: INSN_URSHR       ; OpCode: $7F402400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_URSRA       ; OpCode: $7F403400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_USHR        ; OpCode: $7F400400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    (IID: INSN_USRA        ; OpCode: $7F401400; Mask: $FFC0FC00; IClass: c_asisdshf  ; Operands: (Dd, Dn, ShiftRight, None, None); Flags: 0),
    { Bitfield. }
    (IID: INSN_ASR         ; OpCode: $13007C00; Mask: $7F807C00; IClass: c_bitfield  ; Operands: (Rd, Rn, ShiftImmr, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_BFC         ; OpCode: $330003E0; Mask: $7F8003E0; IClass: c_bitfield  ; Operands: (Rd, LsbR, Width, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_BFI         ; OpCode: $33000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_BFM         ; OpCode: $33000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, Immr, Imms, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_BFXIL       ; OpCode: $33000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_LSL         ; OpCode: $53000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, ShiftImms, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_LSR         ; OpCode: $53007C00; Mask: $7F807C00; IClass: c_bitfield  ; Operands: (Rd, Rn, ShiftImmr, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SBFIZ       ; OpCode: $13000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_SBFM        ; OpCode: $13000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, Immr, Imms, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_SBFX        ; OpCode: $13000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_SXTB        ; OpCode: $13001C00; Mask: $7FBFFC00; IClass: c_bitfield  ; Operands: (Rd, Wn, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SXTH        ; OpCode: $13003C00; Mask: $7FBFFC00; IClass: c_bitfield  ; Operands: (Rd, Wn, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SXTW        ; OpCode: $93407C00; Mask: $FFFFFC00; IClass: c_bitfield  ; Operands: (Xd, Wn, None, None, None); Flags: F_ALIAS),
    (IID: INSN_UBFIZ       ; OpCode: $53000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_UBFM        ; OpCode: $53000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, Immr, Imms, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_UBFX        ; OpCode: $53000000; Mask: $7F800000; IClass: c_bitfield  ; Operands: (Rd, Rn, LsbR, Width, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_UXTB        ; OpCode: $53001C00; Mask: $FFFFFC00; IClass: c_bitfield  ; Operands: (Wd, Wn, None, None, None); Flags: F_ALIAS),
    (IID: INSN_UXTH        ; OpCode: $53003C00; Mask: $FFFFFC00; IClass: c_bitfield  ; Operands: (Wd, Wn, None, None, None); Flags: F_ALIAS),
    { Unconditional branch (immediate). }
    (IID: INSN_B           ; OpCode: $14000000; Mask: $FC000000; IClass: c_branch_imm; Operands: (Rel26, None, None, None, None); Flags: 0),
    (IID: INSN_BL          ; OpCode: $94000000; Mask: $FC000000; IClass: c_branch_imm; Operands: (Rel26, None, None, None, None); Flags: 0),
    { Unconditional branch (register). }
    (IID: INSN_BLR         ; OpCode: $D63F0000; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_BLRAA       ; OpCode: $D73F0800; Mask: $FFFFFC00; IClass: c_branch_reg; Operands: (Xn, Xm_SP, None, None, None); Flags: 0),
    (IID: INSN_BLRAAZ      ; OpCode: $D63F081F; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_BLRAB       ; OpCode: $D73F0C00; Mask: $FFFFFC00; IClass: c_branch_reg; Operands: (Xn, Xm_SP, None, None, None); Flags: 0),
    (IID: INSN_BLRABZ      ; OpCode: $D63F0C1F; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_BR          ; OpCode: $D61F0000; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_BRAA        ; OpCode: $D71F0800; Mask: $FFFFFC00; IClass: c_branch_reg; Operands: (Xn, Xm_SP, None, None, None); Flags: 0),
    (IID: INSN_BRAAZ       ; OpCode: $D61F081F; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_BRAB        ; OpCode: $D71F0C00; Mask: $FFFFFC00; IClass: c_branch_reg; Operands: (Xn, Xm_SP, None, None, None); Flags: 0),
    (IID: INSN_BRABZ       ; OpCode: $D61F0C1F; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_DRPS        ; OpCode: $D6BF03E0; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_ERET        ; OpCode: $D69F03E0; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_ERETAA      ; OpCode: $D69F0BFF; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_ERETAB      ; OpCode: $D69F0FFF; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_RET         ; OpCode: $D65F0000; Mask: $FFFFFC1F; IClass: c_branch_reg; Operands: (Xn, None, None, None, None); Flags: 0),
    (IID: INSN_RETAA       ; OpCode: $D65F0BFF; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_RETAB       ; OpCode: $D65F0FFF; Mask: $FFFFFFFF; IClass: c_branch_reg; Operands: (None, None, None, None, None); Flags: 0),
    { Compare and branch (immediate). }
    (IID: INSN_CBNZ        ; OpCode: $35000000; Mask: $7F000000; IClass: c_compbranch; Operands: (Rt, Rel19, None, None, None); Flags: F_SF),
    (IID: INSN_CBZ         ; OpCode: $34000000; Mask: $7F000000; IClass: c_compbranch; Operands: (Rt, Rel19, None, None, None); Flags: F_SF),
    { Conditional branch (immediate). }
    (IID: INSN_B           ; OpCode: $54000000; Mask: $FF000010; IClass: c_condbranch; Operands: (Rel19, None, None, None, None); Flags: F_COND),
    { Conditional compare (immediate). }
    (IID: INSN_CCMN        ; OpCode: $3A400800; Mask: $7FE00C10; IClass: c_condcmp_imm; Operands: (Rn, Imm5, NZCV, Cond, None); Flags: F_SF),
    (IID: INSN_CCMP        ; OpCode: $7A400800; Mask: $7FE00C10; IClass: c_condcmp_imm; Operands: (Rn, Imm5, NZCV, Cond, None); Flags: F_SF),
    { Conditional compare (register). }
    (IID: INSN_CCMN        ; OpCode: $3A400000; Mask: $7FE00C10; IClass: c_condcmp_reg; Operands: (Rn, Rm, NZCV, Cond, None); Flags: F_SF),
    (IID: INSN_CCMP        ; OpCode: $7A400000; Mask: $7FE00C10; IClass: c_condcmp_reg; Operands: (Rn, Rm, NZCV, Cond, None); Flags: F_SF),
    { Conditional select. }
    (IID: INSN_CINC        ; OpCode: $1A800400; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Cond, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_CINV        ; OpCode: $5A800000; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Cond, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_CNEG        ; OpCode: $5A800400; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Cond, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_CSEL        ; OpCode: $1A800000; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Rm, Cond, None); Flags: F_SF),
    (IID: INSN_CSET        ; OpCode: $1A9F07E0; Mask: $7FFF0FE0; IClass: c_condsel   ; Operands: (Rd, Cond, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_CSETM       ; OpCode: $5A9F03E0; Mask: $7FFF0FE0; IClass: c_condsel   ; Operands: (Rd, Cond, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_CSINC       ; OpCode: $1A800400; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Rm, Cond, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CSINV       ; OpCode: $5A800000; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Rm, Cond, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CSNEG       ; OpCode: $5A800400; Mask: $7FE00C00; IClass: c_condsel   ; Operands: (Rd, Rn, Rm, Cond, None); Flags: F_SF or F_HAS_ALIAS),
    { Cryptographic three-register, imm2. }
    (IID: INSN_SM3TT1A     ; OpCode: $CE408000; Mask: $FFE0CC00; IClass: c_crypto3_imm2; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3TT1B     ; OpCode: $CE408400; Mask: $FFE0CC00; IClass: c_crypto3_imm2; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3TT2A     ; OpCode: $CE408800; Mask: $FFE0CC00; IClass: c_crypto3_imm2; Operands: (Vd_P2, Vn_P2, Em, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3TT2B     ; OpCode: $CE408C00; Mask: $FFE0CC00; IClass: c_crypto3_imm2; Operands: (Vd_S, Vn_S, Em, None, None); Flags: 0),
    { Cryptographic three-register, imm6. }
    (IID: INSN_XAR         ; OpCode: $CE800000; Mask: $FFE00000; IClass: c_crypto3_imm6; Operands: (Vd_P2, Vn_P2, Vm_P2, Imm6, None); Flags: F_Q or F_SIZE),
    { Cryptographic four-register. }
    (IID: INSN_BCAX        ; OpCode: $CE200000; Mask: $FFE08000; IClass: c_crypto4   ; Operands: (Vd, Vn, Vm, Va, None); Flags: F_Q or F_SIZE),
    (IID: INSN_EOR3        ; OpCode: $CE000000; Mask: $FFE08000; IClass: c_crypto4   ; Operands: (Vd, Vn, Vm, Va, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3SS1      ; OpCode: $CE400000; Mask: $FFE08000; IClass: c_crypto4   ; Operands: (Vd_P2, Vn_P2, Vm_P2, Va_P2, None); Flags: F_Q or F_SIZE),
    { Cryptographic AES. }
    (IID: INSN_AESD        ; OpCode: $4E285800; Mask: $FFFFFC00; IClass: c_cryptoaes ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_AESE        ; OpCode: $4E284800; Mask: $FFFFFC00; IClass: c_cryptoaes ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_AESIMC      ; OpCode: $4E287800; Mask: $FFFFFC00; IClass: c_cryptoaes ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_AESMC       ; OpCode: $4E286800; Mask: $FFFFFC00; IClass: c_cryptoaes ; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    { Cryptographic two-register SHA. }
    (IID: INSN_SHA1H       ; OpCode: $5E280800; Mask: $FFFFFC00; IClass: c_cryptosha2; Operands: (Sd, Sn, None, None, None); Flags: 0),
    (IID: INSN_SHA1SU1     ; OpCode: $5E281800; Mask: $FFFFFC00; IClass: c_cryptosha2; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA256SU0   ; OpCode: $5E282800; Mask: $FFFFFC00; IClass: c_cryptosha2; Operands: (Vd_P4, Vn_P4, None, None, None); Flags: F_Q or F_SIZE),
    { Cryptographic three-register SHA. }
    (IID: INSN_SHA1C       ; OpCode: $5E000000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Qd, Sn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA1M       ; OpCode: $5E002000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Qd, Sn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA1P       ; OpCode: $5E001000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Qd, Sn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA1SU0     ; OpCode: $5E003000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA256H     ; OpCode: $5E004000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Qd, Qn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA256H2    ; OpCode: $5E005000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Qd, Qn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA256SU1   ; OpCode: $5E006000; Mask: $FFE0FC00; IClass: c_cryptosha3; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    { Cryptographic two-register SHA 512. }
    (IID: INSN_SHA512SU0   ; OpCode: $CEC08000; Mask: $FFFFFC00; IClass: c_cryptosha512_2; Operands: (Vd, Vn, None, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM4E        ; OpCode: $CEC08400; Mask: $FFFFFC00; IClass: c_cryptosha512_2; Operands: (Vd_N2, Vn_N2, None, None, None); Flags: F_Q or F_SIZE),
    { Cryptographic three-register SHA 512. }
    (IID: INSN_RAX1        ; OpCode: $CE608C00; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA512H     ; OpCode: $CE608000; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Qd, Qn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA512H2    ; OpCode: $CE608400; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Qd, Qn, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SHA512SU1   ; OpCode: $CE608800; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Vd_P4, Vn_P4, Vm_P4, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3PARTW1   ; OpCode: $CE60C000; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Vd_P2, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM3PARTW2   ; OpCode: $CE60C400; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Vd_P2, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    (IID: INSN_SM4EKEY     ; OpCode: $CE60C800; Mask: $FFE0FC00; IClass: c_cryptosha512_3; Operands: (Vd_P2, Vn_P2, Vm_P2, None, None); Flags: F_Q or F_SIZE),
    { Data-processing (1 source). }
    (IID: INSN_AUTDA       ; OpCode: $DAC11800; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_AUTDB       ; OpCode: $DAC11C00; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_AUTDZA      ; OpCode: $DAC13BE0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_AUTDZB      ; OpCode: $DAC13FE0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIA       ; OpCode: $DAC11000; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_AUTIB       ; OpCode: $DAC11400; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_AUTIZA      ; OpCode: $DAC133E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIZB      ; OpCode: $DAC137E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_CLS         ; OpCode: $5AC01400; Mask: $7FFFFC00; IClass: c_dp_1src   ; Operands: (Rd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_CLZ         ; OpCode: $5AC01000; Mask: $7FFFFC00; IClass: c_dp_1src   ; Operands: (Rd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_PACDA       ; OpCode: $DAC10800; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_PACDB       ; OpCode: $DAC10C00; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_PACDZA      ; OpCode: $DAC12BE0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_PACDZB      ; OpCode: $DAC12FE0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_PACIA       ; OpCode: $DAC10000; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_PACIB       ; OpCode: $DAC10400; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn_SP, None, None, None); Flags: 0),
    (IID: INSN_PACIZA      ; OpCode: $DAC123E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_PACIZB      ; OpCode: $DAC127E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_RBIT        ; OpCode: $5AC00000; Mask: $7FFFFC00; IClass: c_dp_1src   ; Operands: (Rd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_REV         ; OpCode: $5AC00800; Mask: $7FFFF800; IClass: c_dp_1src   ; Operands: (Rd, Rn, None, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_REV16       ; OpCode: $5AC00400; Mask: $7FFFFC00; IClass: c_dp_1src   ; Operands: (Rd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_REV32       ; OpCode: $DAC00800; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn, None, None, None); Flags: 0),
    (IID: INSN_REV64       ; OpCode: $DAC00C00; Mask: $FFFFFC00; IClass: c_dp_1src   ; Operands: (Xd, Xn, None, None, None); Flags: F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_XPACD       ; OpCode: $DAC147E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    (IID: INSN_XPACI       ; OpCode: $DAC143E0; Mask: $FFFFFFE0; IClass: c_dp_1src   ; Operands: (Xd, None, None, None, None); Flags: 0),
    { Data-processing (2 source). }
    (IID: INSN_ASR         ; OpCode: $1AC02800; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_ASRV        ; OpCode: $1AC02800; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_CRC32B      ; OpCode: $1AC04000; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32CB     ; OpCode: $1AC05000; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32CH     ; OpCode: $1AC05400; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32CW     ; OpCode: $1AC05800; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32CX     ; OpCode: $9AC05C00; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Xm, None, None); Flags: 0),
    (IID: INSN_CRC32H      ; OpCode: $1AC04400; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32W      ; OpCode: $1AC04800; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Wm, None, None); Flags: 0),
    (IID: INSN_CRC32X      ; OpCode: $9AC04C00; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Wd, Wn, Xm, None, None); Flags: 0),
    (IID: INSN_LSL         ; OpCode: $1AC02000; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_LSLV        ; OpCode: $1AC02000; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_LSR         ; OpCode: $1AC02400; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_LSRV        ; OpCode: $1AC02400; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_PACGA       ; OpCode: $9AC03000; Mask: $FFE0FC00; IClass: c_dp_2src   ; Operands: (Xd, Xn, Xm_SP, None, None); Flags: 0),
    (IID: INSN_ROR         ; OpCode: $1AC02C00; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_RORV        ; OpCode: $1AC02C00; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_SDIV        ; OpCode: $1AC00C00; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF),
    (IID: INSN_UDIV        ; OpCode: $1AC00800; Mask: $7FE0FC00; IClass: c_dp_2src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF),
    { Data-processing (3 source). }
    (IID: INSN_MADD        ; OpCode: $1B000000; Mask: $7FE08000; IClass: c_dp_3src   ; Operands: (Rd, Rn, Rm, Ra, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_MNEG        ; OpCode: $1B00FC00; Mask: $7FE0FC00; IClass: c_dp_3src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_MSUB        ; OpCode: $1B008000; Mask: $7FE08000; IClass: c_dp_3src   ; Operands: (Rd, Rn, Rm, Ra, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_MUL         ; OpCode: $1B007C00; Mask: $7FE0FC00; IClass: c_dp_3src   ; Operands: (Rd, Rn, Rm, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_SMADDL      ; OpCode: $9B200000; Mask: $FFE08000; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, Xa, None); Flags: F_HAS_ALIAS),
    (IID: INSN_SMNEGL      ; OpCode: $9B20FC00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, None, None); Flags: F_ALIAS),
    (IID: INSN_SMSUBL      ; OpCode: $9B208000; Mask: $FFE08000; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, Xa, None); Flags: F_HAS_ALIAS),
    (IID: INSN_SMULH       ; OpCode: $9B407C00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Xn, Xm, None, None); Flags: 0),
    (IID: INSN_SMULL       ; OpCode: $9B207C00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, None, None); Flags: F_ALIAS),
    (IID: INSN_UMADDL      ; OpCode: $9BA00000; Mask: $FFE08000; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, Xa, None); Flags: F_HAS_ALIAS),
    (IID: INSN_UMNEGL      ; OpCode: $9BA0FC00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, None, None); Flags: F_ALIAS),
    (IID: INSN_UMSUBL      ; OpCode: $9BA08000; Mask: $FFE08000; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, Xa, None); Flags: F_HAS_ALIAS),
    (IID: INSN_UMULH       ; OpCode: $9BC07C00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Xn, Xm, None, None); Flags: 0),
    (IID: INSN_UMULL       ; OpCode: $9BA07C00; Mask: $FFE0FC00; IClass: c_dp_3src   ; Operands: (Xd, Wn, Wm, None, None); Flags: F_ALIAS),
    { Exception generation. }
    (IID: INSN_BRK         ; OpCode: $D4200000; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_DCPS1       ; OpCode: $D4A00001; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_DCPS2       ; OpCode: $D4A00002; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_DCPS3       ; OpCode: $D4A00003; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_HLT         ; OpCode: $D4400000; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_HVC         ; OpCode: $D4000002; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_SMC         ; OpCode: $D4000003; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    (IID: INSN_SVC         ; OpCode: $D4000001; Mask: $FFE0001F; IClass: c_exception ; Operands: (Imm16, None, None, None, None); Flags: 0),
    { Extract. }
    (IID: INSN_EXTR        ; OpCode: $13800000; Mask: $7FA00000; IClass: c_extract   ; Operands: (Rd, Rn, Rm, Lsb, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_ROR         ; OpCode: $13800000; Mask: $7FA00000; IClass: c_extract   ; Operands: (Rd, Rs, ShiftImms, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    { Conversion between floating-point and fixed-point. }
    (IID: INSN_FCVTZS      ; OpCode: $1ED80000; Mask: $7FFF0000; IClass: c_float2fix ; Operands: (Rd, Hn, FBits, None, None); Flags: F_SF),
    (IID: INSN_FCVTZS      ; OpCode: $1E180000; Mask: $7FBF0000; IClass: c_float2fix ; Operands: (Rd, Fn, FBits, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTZU      ; OpCode: $1ED90000; Mask: $7FFF0000; IClass: c_float2fix ; Operands: (Rd, Hn, FBits, None, None); Flags: F_SF),
    (IID: INSN_FCVTZU      ; OpCode: $1E190000; Mask: $7FBF0000; IClass: c_float2fix ; Operands: (Rd, Fn, FBits, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_SCVTF       ; OpCode: $1EC20000; Mask: $7FFF0000; IClass: c_float2fix ; Operands: (Hd, Rn, FBits, None, None); Flags: F_SF),
    (IID: INSN_SCVTF       ; OpCode: $1E020000; Mask: $7FBF0000; IClass: c_float2fix ; Operands: (Fd, Rn, FBits, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_UCVTF       ; OpCode: $1EC30000; Mask: $7FFF0000; IClass: c_float2fix ; Operands: (Hd, Rn, FBits, None, None); Flags: F_SF),
    (IID: INSN_UCVTF       ; OpCode: $1E030000; Mask: $7FBF0000; IClass: c_float2fix ; Operands: (Fd, Rn, FBits, None, None); Flags: F_SF or F_TYPE),
    { Conversion between floating-point and integer. }
    (IID: INSN_FCVTAS      ; OpCode: $1EE40000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTAS      ; OpCode: $1E240000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTAU      ; OpCode: $1EE50000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTAU      ; OpCode: $1E250000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTMS      ; OpCode: $1EF00000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTMS      ; OpCode: $1E300000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTMU      ; OpCode: $1EF10000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTMU      ; OpCode: $1E310000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTNS      ; OpCode: $1EE00000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTNS      ; OpCode: $1E200000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTNU      ; OpCode: $1EE10000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTNU      ; OpCode: $1E210000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTPS      ; OpCode: $1EE80000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTPS      ; OpCode: $1E280000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTPU      ; OpCode: $1EE90000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTPU      ; OpCode: $1E290000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTZS      ; OpCode: $1EF80000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTZS      ; OpCode: $1E380000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FCVTZU      ; OpCode: $1EF90000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FCVTZU      ; OpCode: $1E390000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FJCVTZS     ; OpCode: $1E7E0000; Mask: $FFFFFC00; IClass: c_float2int ; Operands: (Wd, Dn, None, None, None); Flags: 0),
    (IID: INSN_FMOV        ; OpCode: $1EE60000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Rd, Hn, None, None, None); Flags: F_SF),
    (IID: INSN_FMOV        ; OpCode: $1EE70000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Hd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_FMOV        ; OpCode: $1E270000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Fd, Rn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FMOV        ; OpCode: $1E260000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Rd, Fn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_FMOV        ; OpCode: $9EAF0000; Mask: $FFFFFC00; IClass: c_float2int ; Operands: (Ed, Xn, None, None, None); Flags: 0),
    (IID: INSN_FMOV        ; OpCode: $9EAE0000; Mask: $FFFFFC00; IClass: c_float2int ; Operands: (Xd, En, None, None, None); Flags: 0),
    (IID: INSN_SCVTF       ; OpCode: $1EE20000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Hd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_SCVTF       ; OpCode: $1E220000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Fd, Rn, None, None, None); Flags: F_SF or F_TYPE),
    (IID: INSN_UCVTF       ; OpCode: $1EE30000; Mask: $7FFFFC00; IClass: c_float2int ; Operands: (Hd, Rn, None, None, None); Flags: F_SF),
    (IID: INSN_UCVTF       ; OpCode: $1E230000; Mask: $7FBFFC00; IClass: c_float2int ; Operands: (Fd, Rn, None, None, None); Flags: F_SF or F_TYPE),
    { Floating-point conditional compare. }
    (IID: INSN_FCCMP       ; OpCode: $1EE00400; Mask: $FFE00C10; IClass: c_floatccmp ; Operands: (Hn, Hm, NZCV, Cond, None); Flags: 0),
    (IID: INSN_FCCMP       ; OpCode: $1E200400; Mask: $FFA00C10; IClass: c_floatccmp ; Operands: (Fn, Fm, NZCV, Cond, None); Flags: F_TYPE),
    (IID: INSN_FCCMPE      ; OpCode: $1EE00410; Mask: $FFE00C10; IClass: c_floatccmp ; Operands: (Hn, Hm, NZCV, Cond, None); Flags: 0),
    (IID: INSN_FCCMPE      ; OpCode: $1E200410; Mask: $FFA00C10; IClass: c_floatccmp ; Operands: (Fn, Fm, NZCV, Cond, None); Flags: F_TYPE),
    { Floating-point compare. }
    (IID: INSN_FCMP        ; OpCode: $1EE02000; Mask: $FFE0FC1F; IClass: c_floatcmp  ; Operands: (Hn, Hm, None, None, None); Flags: 0),
    (IID: INSN_FCMP        ; OpCode: $1EE02008; Mask: $FFFFFC1F; IClass: c_floatcmp  ; Operands: (Hn, CnstFP0, None, None, None); Flags: 0),
    (IID: INSN_FCMP        ; OpCode: $1E202000; Mask: $FFA0FC1F; IClass: c_floatcmp  ; Operands: (Fn, Fm, None, None, None); Flags: F_TYPE),
    (IID: INSN_FCMP        ; OpCode: $1E202008; Mask: $FFBFFC1F; IClass: c_floatcmp  ; Operands: (Fn, CnstFP0, None, None, None); Flags: F_TYPE),
    (IID: INSN_FCMPE       ; OpCode: $1EE02010; Mask: $FFE0FC1F; IClass: c_floatcmp  ; Operands: (Hn, Hm, None, None, None); Flags: 0),
    (IID: INSN_FCMPE       ; OpCode: $1EE02018; Mask: $FFFFFC1F; IClass: c_floatcmp  ; Operands: (Hn, CnstFP0, None, None, None); Flags: 0),
    (IID: INSN_FCMPE       ; OpCode: $1E202010; Mask: $FFA0FC1F; IClass: c_floatcmp  ; Operands: (Fn, Fm, None, None, None); Flags: F_TYPE),
    (IID: INSN_FCMPE       ; OpCode: $1E202018; Mask: $FFBFFC1F; IClass: c_floatcmp  ; Operands: (Fn, CnstFP0, None, None, None); Flags: F_TYPE),
    { Floating-point data-processing (1 source). }
    (IID: INSN_FABS        ; OpCode: $1EE0C000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FABS        ; OpCode: $1E20C000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FCVT        ; OpCode: $1E224000; Mask: $FF3E7C00; IClass: c_floatdp1  ; Operands: (Od, Fn, None, None, None); Flags: F_OPC or F_TYPE),
    (IID: INSN_FMOV        ; OpCode: $1EE04000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FMOV        ; OpCode: $1E204000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FNEG        ; OpCode: $1EE14000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FNEG        ; OpCode: $1E214000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTA      ; OpCode: $1EE64000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTA      ; OpCode: $1E264000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTI      ; OpCode: $1EE7C000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTI      ; OpCode: $1E27C000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTM      ; OpCode: $1EE54000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTM      ; OpCode: $1E254000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTN      ; OpCode: $1EE44000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTN      ; OpCode: $1E244000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTP      ; OpCode: $1EE4C000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTP      ; OpCode: $1E24C000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTX      ; OpCode: $1EE74000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTX      ; OpCode: $1E274000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FRINTZ      ; OpCode: $1EE5C000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FRINTZ      ; OpCode: $1E25C000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    (IID: INSN_FSQRT       ; OpCode: $1EE1C000; Mask: $FFFFFC00; IClass: c_floatdp1  ; Operands: (Hd, Hn, None, None, None); Flags: 0),
    (IID: INSN_FSQRT       ; OpCode: $1E21C000; Mask: $FFBFFC00; IClass: c_floatdp1  ; Operands: (Fd, Fn, None, None, None); Flags: F_TYPE),
    { Floating-point data-processing (2 source). }
    (IID: INSN_FADD        ; OpCode: $1EE02800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FADD        ; OpCode: $1E202800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FDIV        ; OpCode: $1EE01800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FDIV        ; OpCode: $1E201800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FMAX        ; OpCode: $1EE04800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMAX        ; OpCode: $1E204800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FMAXNM      ; OpCode: $1EE06800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMAXNM      ; OpCode: $1E206800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FMIN        ; OpCode: $1EE05800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMIN        ; OpCode: $1E205800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FMINNM      ; OpCode: $1EE07800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMINNM      ; OpCode: $1E207800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FMUL        ; OpCode: $1EE00800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FMUL        ; OpCode: $1E200800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FNMUL       ; OpCode: $1EE08800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FNMUL       ; OpCode: $1E208800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    (IID: INSN_FSUB        ; OpCode: $1EE03800; Mask: $FFE0FC00; IClass: c_floatdp2  ; Operands: (Hd, Hn, Hm, None, None); Flags: 0),
    (IID: INSN_FSUB        ; OpCode: $1E203800; Mask: $FFA0FC00; IClass: c_floatdp2  ; Operands: (Fd, Fn, Fm, None, None); Flags: F_TYPE),
    { Floating-point data-processing (3 source). }
    (IID: INSN_FMADD       ; OpCode: $1FC00000; Mask: $FFE08000; IClass: c_floatdp3  ; Operands: (Hd, Hn, Hm, Ha, None); Flags: 0),
    (IID: INSN_FMADD       ; OpCode: $1F000000; Mask: $FFA08000; IClass: c_floatdp3  ; Operands: (Fd, Fn, Fm, Fa, None); Flags: F_TYPE),
    (IID: INSN_FMSUB       ; OpCode: $1FC08000; Mask: $FFE08000; IClass: c_floatdp3  ; Operands: (Hd, Hn, Hm, Ha, None); Flags: 0),
    (IID: INSN_FMSUB       ; OpCode: $1F008000; Mask: $FFA08000; IClass: c_floatdp3  ; Operands: (Fd, Fn, Fm, Fa, None); Flags: F_TYPE),
    (IID: INSN_FNMADD      ; OpCode: $1FE00000; Mask: $FFE08000; IClass: c_floatdp3  ; Operands: (Hd, Hn, Hm, Ha, None); Flags: 0),
    (IID: INSN_FNMADD      ; OpCode: $1F200000; Mask: $FFA08000; IClass: c_floatdp3  ; Operands: (Fd, Fn, Fm, Fa, None); Flags: F_TYPE),
    (IID: INSN_FNMSUB      ; OpCode: $1FE08000; Mask: $FFE08000; IClass: c_floatdp3  ; Operands: (Hd, Hn, Hm, Ha, None); Flags: 0),
    (IID: INSN_FNMSUB      ; OpCode: $1F208000; Mask: $FFA08000; IClass: c_floatdp3  ; Operands: (Fd, Fn, Fm, Fa, None); Flags: F_TYPE),
    { Floating-point immediate. }
    (IID: INSN_FMOV        ; OpCode: $1EE01000; Mask: $FFE01FE0; IClass: c_floatimm  ; Operands: (Hd, ImmFP8, None, None, None); Flags: 0),
    (IID: INSN_FMOV        ; OpCode: $1E201000; Mask: $FFA01FE0; IClass: c_floatimm  ; Operands: (Fd, ImmFP8, None, None, None); Flags: F_TYPE),
    { Floating-point conditional select. }
    (IID: INSN_FCSEL       ; OpCode: $1EE00C00; Mask: $FFE00C00; IClass: c_floatsel  ; Operands: (Hd, Hn, Hm, Cond, None); Flags: 0),
    (IID: INSN_FCSEL       ; OpCode: $1E200C00; Mask: $FFA00C00; IClass: c_floatsel  ; Operands: (Fd, Fn, Fm, Cond, None); Flags: F_TYPE),
    { Load/store register (immediate post-indexed). }
    (IID: INSN_LDR         ; OpCode: $B8400400; Mask: $BFE00C00; IClass: c_ldst_immpost; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_LDR         ; OpCode: $3C400400; Mask: $3F600C00; IClass: c_ldst_immpost; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_LDRB        ; OpCode: $38400400; Mask: $FFE00C00; IClass: c_ldst_immpost; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDRH        ; OpCode: $78400400; Mask: $FFE00C00; IClass: c_ldst_immpost; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDRSB       ; OpCode: $38800400; Mask: $FFA00C00; IClass: c_ldst_immpost; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSH       ; OpCode: $78800400; Mask: $FFA00C00; IClass: c_ldst_immpost; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSW       ; OpCode: $B8800400; Mask: $FFE00C00; IClass: c_ldst_immpost; Operands: (Xt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STR         ; OpCode: $B8000400; Mask: $BFE00C00; IClass: c_ldst_immpost; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_STR         ; OpCode: $3C000400; Mask: $3F600C00; IClass: c_ldst_immpost; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_STRB        ; OpCode: $38000400; Mask: $FFE00C00; IClass: c_ldst_immpost; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STRH        ; OpCode: $78000400; Mask: $FFE00C00; IClass: c_ldst_immpost; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    { Load/store register (immediate pre-indexed). }
    (IID: INSN_LDR         ; OpCode: $B8400C00; Mask: $BFE00C00; IClass: c_ldst_immpre; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_LDR         ; OpCode: $3C400C00; Mask: $3F600C00; IClass: c_ldst_immpre; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_LDRB        ; OpCode: $38400C00; Mask: $FFE00C00; IClass: c_ldst_immpre; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDRH        ; OpCode: $78400C00; Mask: $FFE00C00; IClass: c_ldst_immpre; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDRSB       ; OpCode: $38800C00; Mask: $FFA00C00; IClass: c_ldst_immpre; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSH       ; OpCode: $78800C00; Mask: $FFA00C00; IClass: c_ldst_immpre; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSW       ; OpCode: $B8800C00; Mask: $FFE00C00; IClass: c_ldst_immpre; Operands: (Xt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STR         ; OpCode: $B8000C00; Mask: $BFE00C00; IClass: c_ldst_immpre; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_STR         ; OpCode: $3C000C00; Mask: $3F600C00; IClass: c_ldst_immpre; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_STRB        ; OpCode: $38000C00; Mask: $FFE00C00; IClass: c_ldst_immpre; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STRH        ; OpCode: $78000C00; Mask: $FFE00C00; IClass: c_ldst_immpre; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    { Load/store register (pac). }
    (IID: INSN_LDRAA       ; OpCode: $F8200400; Mask: $FFA00400; IClass: c_ldst_pac  ; Operands: (Xt, addr_simm10s, None, None, None); Flags: 0),
    (IID: INSN_LDRAB       ; OpCode: $F8A00400; Mask: $FFA00400; IClass: c_ldst_pac  ; Operands: (Xt, addr_simm10s, None, None, None); Flags: 0),
    { Load/store register (unsigned immediate). }
    (IID: INSN_LDR         ; OpCode: $B9400000; Mask: $BFC00000; IClass: c_ldst_pos  ; Operands: (Rt, addr_uimm12s, None, None, None); Flags: F_SF),
    (IID: INSN_LDR         ; OpCode: $3D400000; Mask: $3F400000; IClass: c_ldst_pos  ; Operands: (Nt, addr_uimm12s, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_LDRB        ; OpCode: $39400000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Wt, addr_uimm12s, None, None, None); Flags: 0),
    (IID: INSN_LDRH        ; OpCode: $79400000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Wt, addr_uimm12s, None, None, None); Flags: 0),
    (IID: INSN_LDRSB       ; OpCode: $39800000; Mask: $FF800000; IClass: c_ldst_pos  ; Operands: (Rt, addr_uimm12s, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSH       ; OpCode: $79800000; Mask: $FF800000; IClass: c_ldst_pos  ; Operands: (Rt, addr_uimm12s, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSW       ; OpCode: $B9800000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Xt, addr_uimm12s, None, None, None); Flags: 0),
    (IID: INSN_PRFM        ; OpCode: $F9800000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Prfop, addr_uimm12s, None, None, None); Flags: 0),
    (IID: INSN_STR         ; OpCode: $B9000000; Mask: $BFC00000; IClass: c_ldst_pos  ; Operands: (Rt, addr_uimm12s, None, None, None); Flags: F_SF),
    (IID: INSN_STR         ; OpCode: $3D000000; Mask: $3F400000; IClass: c_ldst_pos  ; Operands: (Nt, addr_uimm12s, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_STRB        ; OpCode: $39000000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Wt, addr_uimm12s, None, None, None); Flags: 0),
    (IID: INSN_STRH        ; OpCode: $79000000; Mask: $FFC00000; IClass: c_ldst_pos  ; Operands: (Wt, addr_uimm12s, None, None, None); Flags: 0),
    { Load/store register (register offset). }
    (IID: INSN_LDR         ; OpCode: $B8600800; Mask: $BFE00C00; IClass: c_ldst_regoff; Operands: (Rt, addr_regoff, None, None, None); Flags: F_SF),
    (IID: INSN_LDR         ; OpCode: $3C600800; Mask: $3F600C00; IClass: c_ldst_regoff; Operands: (Nt, addr_regoff, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_LDRB        ; OpCode: $38600800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Wt, addr_regoff, None, None, None); Flags: 0),
    (IID: INSN_LDRH        ; OpCode: $78600800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Wt, addr_regoff, None, None, None); Flags: 0),
    (IID: INSN_LDRSB       ; OpCode: $38A00800; Mask: $FFA00C00; IClass: c_ldst_regoff; Operands: (Rt, addr_regoff, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSH       ; OpCode: $78A00800; Mask: $FFA00C00; IClass: c_ldst_regoff; Operands: (Rt, addr_regoff, None, None, None); Flags: F_SFN),
    (IID: INSN_LDRSW       ; OpCode: $B8A00800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Xt, addr_regoff, None, None, None); Flags: 0),
    (IID: INSN_PRFM        ; OpCode: $F8A00800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Prfop, addr_regoff, None, None, None); Flags: 0),
    (IID: INSN_STR         ; OpCode: $B8200800; Mask: $BFE00C00; IClass: c_ldst_regoff; Operands: (Rt, addr_regoff, None, None, None); Flags: F_SF),
    (IID: INSN_STR         ; OpCode: $3C200800; Mask: $3F600C00; IClass: c_ldst_regoff; Operands: (Nt, addr_regoff, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_STRB        ; OpCode: $38200800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Wt, addr_regoff, None, None, None); Flags: 0),
    (IID: INSN_STRH        ; OpCode: $78200800; Mask: $FFE00C00; IClass: c_ldst_regoff; Operands: (Wt, addr_regoff, None, None, None); Flags: 0),
    { Load/store register (unprivileged). }
    (IID: INSN_LDTR        ; OpCode: $B8400800; Mask: $BFE00C00; IClass: c_ldst_unpriv; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_LDTRB       ; OpCode: $38400800; Mask: $FFE00C00; IClass: c_ldst_unpriv; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDTRH       ; OpCode: $78400800; Mask: $FFE00C00; IClass: c_ldst_unpriv; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDTRSB      ; OpCode: $38800800; Mask: $FFA00C00; IClass: c_ldst_unpriv; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDTRSH      ; OpCode: $78800800; Mask: $FFA00C00; IClass: c_ldst_unpriv; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDTRSW      ; OpCode: $B8800800; Mask: $FFE00C00; IClass: c_ldst_unpriv; Operands: (Xt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STTR        ; OpCode: $B8000800; Mask: $BFE00C00; IClass: c_ldst_unpriv; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_STTRB       ; OpCode: $38000800; Mask: $FFE00C00; IClass: c_ldst_unpriv; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STTRH       ; OpCode: $78000800; Mask: $FFE00C00; IClass: c_ldst_unpriv; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    { Load/store register (unscaled immediate). }
    (IID: INSN_LDUR        ; OpCode: $B8400000; Mask: $BFE00C00; IClass: c_ldst_unscaled; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_LDUR        ; OpCode: $3C400000; Mask: $3F600C00; IClass: c_ldst_unscaled; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_LDURB       ; OpCode: $38400000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDURH       ; OpCode: $78400000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_LDURSB      ; OpCode: $38800000; Mask: $FFA00C00; IClass: c_ldst_unscaled; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDURSH      ; OpCode: $78800000; Mask: $FFA00C00; IClass: c_ldst_unscaled; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SFN),
    (IID: INSN_LDURSW      ; OpCode: $B8800000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Xt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_PRFUM       ; OpCode: $F8800000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Prfop, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STUR        ; OpCode: $B8000000; Mask: $BFE00C00; IClass: c_ldst_unscaled; Operands: (Rt, addr_simm9u, None, None, None); Flags: F_SF),
    (IID: INSN_STUR        ; OpCode: $3C000000; Mask: $3F600C00; IClass: c_ldst_unscaled; Operands: (Nt, addr_simm9u, None, None, None); Flags: F_OPEXT or F_SIZE),
    (IID: INSN_STURB       ; OpCode: $38000000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    (IID: INSN_STURH       ; OpCode: $78000000; Mask: $FFE00C00; IClass: c_ldst_unscaled; Operands: (Wt, addr_simm9u, None, None, None); Flags: 0),
    { Load/store exclusive. }
    (IID: INSN_CAS         ; OpCode: $88A07C00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_CASA        ; OpCode: $88E07C00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_CASAB       ; OpCode: $08E07C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASAH       ; OpCode: $48E07C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASAL       ; OpCode: $88E0FC00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_CASALB      ; OpCode: $08E0FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASALH      ; OpCode: $48E0FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASB        ; OpCode: $08A07C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASH        ; OpCode: $48A07C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASL        ; OpCode: $88A0FC00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_CASLB       ; OpCode: $08A0FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASLH       ; OpCode: $48A0FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_CASP        ; OpCode: $08207C00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Pair, Rt, Pair, addr); Flags: F_SF),
    (IID: INSN_CASPA       ; OpCode: $08607C00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Pair, Rt, Pair, addr); Flags: F_SF),
    (IID: INSN_CASPAL      ; OpCode: $0860FC00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Pair, Rt, Pair, addr); Flags: F_SF),
    (IID: INSN_CASPL       ; OpCode: $0820FC00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Rs, Pair, Rt, Pair, addr); Flags: F_SF),
    (IID: INSN_LDAR        ; OpCode: $88DFFC00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_LDARB       ; OpCode: $08DFFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDARH       ; OpCode: $48DFFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDAXP       ; OpCode: $887F8000; Mask: $BFFF8000; IClass: c_ldstexcl  ; Operands: (Rt, Rt2, addr, None, None); Flags: F_SF),
    (IID: INSN_LDAXR       ; OpCode: $885FFC00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_LDAXRB      ; OpCode: $085FFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDAXRH      ; OpCode: $485FFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDLAR       ; OpCode: $88DF7C00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_LDLARB      ; OpCode: $08DF7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDLARH      ; OpCode: $48DF7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDXP        ; OpCode: $887F0000; Mask: $BFFF8000; IClass: c_ldstexcl  ; Operands: (Rt, Rt2, addr, None, None); Flags: F_SF),
    (IID: INSN_LDXR        ; OpCode: $885F7C00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_LDXRB       ; OpCode: $085F7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDXRH       ; OpCode: $485F7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_STLLR       ; OpCode: $889F7C00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STLLRB      ; OpCode: $089F7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_STLLRH      ; OpCode: $489F7C00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_STLR        ; OpCode: $889FFC00; Mask: $BFFFFC00; IClass: c_ldstexcl  ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STLRB       ; OpCode: $089FFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_STLRH       ; OpCode: $489FFC00; Mask: $FFFFFC00; IClass: c_ldstexcl  ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_STLXP       ; OpCode: $88208000; Mask: $BFE08000; IClass: c_ldstexcl  ; Operands: (Ws, Rt, Rt2, addr, None); Flags: F_SF),
    (IID: INSN_STLXR       ; OpCode: $8800FC00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_STLXRB      ; OpCode: $0800FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_STLXRH      ; OpCode: $4800FC00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_STXP        ; OpCode: $88200000; Mask: $BFE08000; IClass: c_ldstexcl  ; Operands: (Ws, Rt, Rt2, addr, None); Flags: F_SF),
    (IID: INSN_STXR        ; OpCode: $88007C00; Mask: $BFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_STXRB       ; OpCode: $08007C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_STXRH       ; OpCode: $48007C00; Mask: $FFE0FC00; IClass: c_ldstexcl  ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    { Load/store no-allocate pair (offset). }
    (IID: INSN_LDNP        ; OpCode: $28400000; Mask: $7FC00000; IClass: c_ldstnapair_offs; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_LDNP        ; OpCode: $2C400000; Mask: $3FC00000; IClass: c_ldstnapair_offs; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    (IID: INSN_STNP        ; OpCode: $28000000; Mask: $7FC00000; IClass: c_ldstnapair_offs; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_STNP        ; OpCode: $2C000000; Mask: $3FC00000; IClass: c_ldstnapair_offs; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    { Load/store register pair (offset). }
    (IID: INSN_LDP         ; OpCode: $29400000; Mask: $7FC00000; IClass: c_ldstpair_off; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_LDP         ; OpCode: $2D400000; Mask: $3FC00000; IClass: c_ldstpair_off; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    (IID: INSN_LDPSW       ; OpCode: $69400000; Mask: $FFC00000; IClass: c_ldstpair_off; Operands: (Xt, Xt2, addr_simm7s, None, None); Flags: 0),
    (IID: INSN_STP         ; OpCode: $29000000; Mask: $7FC00000; IClass: c_ldstpair_off; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_STP         ; OpCode: $2D000000; Mask: $3FC00000; IClass: c_ldstpair_off; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    { Load/store register pair (post-indexed). }
    (IID: INSN_LDP         ; OpCode: $28C00000; Mask: $7FC00000; IClass: c_ldstpair_post; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_LDP         ; OpCode: $2CC00000; Mask: $3FC00000; IClass: c_ldstpair_post; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    (IID: INSN_LDPSW       ; OpCode: $68C00000; Mask: $FFC00000; IClass: c_ldstpair_post; Operands: (Xt, Xt2, addr_simm7s, None, None); Flags: 0),
    (IID: INSN_STP         ; OpCode: $28800000; Mask: $7FC00000; IClass: c_ldstpair_post; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_STP         ; OpCode: $2C800000; Mask: $3FC00000; IClass: c_ldstpair_post; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    { Load/store register pair (pre-indexed). }
    (IID: INSN_LDP         ; OpCode: $29C00000; Mask: $7FC00000; IClass: c_ldstpair_pre; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_LDP         ; OpCode: $2DC00000; Mask: $3FC00000; IClass: c_ldstpair_pre; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    (IID: INSN_LDPSW       ; OpCode: $69C00000; Mask: $FFC00000; IClass: c_ldstpair_pre; Operands: (Xt, Xt2, addr_simm7s, None, None); Flags: 0),
    (IID: INSN_STP         ; OpCode: $29800000; Mask: $7FC00000; IClass: c_ldstpair_pre; Operands: (Rt, Rt2, addr_simm7s, None, None); Flags: F_SF),
    (IID: INSN_STP         ; OpCode: $2D800000; Mask: $3FC00000; IClass: c_ldstpair_pre; Operands: (Ot, Ot2, addr_simm7s, None, None); Flags: F_OPC),
    { Load register (literal). }
    (IID: INSN_LDR         ; OpCode: $18000000; Mask: $BF000000; IClass: c_loadlit   ; Operands: (Rt, Rel19, None, None, None); Flags: F_SF),
    (IID: INSN_LDR         ; OpCode: $1C000000; Mask: $3F000000; IClass: c_loadlit   ; Operands: (Ot, Rel19, None, None, None); Flags: F_OPC),
    (IID: INSN_LDRSW       ; OpCode: $98000000; Mask: $FF000000; IClass: c_loadlit   ; Operands: (Xt, Rel19, None, None, None); Flags: 0),
    (IID: INSN_PRFM        ; OpCode: $D8000000; Mask: $FF000000; IClass: c_loadlit   ; Operands: (Prfop, Rel19, None, None, None); Flags: 0),
    { Logical (immediate). }
    (IID: INSN_AND         ; OpCode: $12000000; Mask: $7F800000; IClass: c_log_imm   ; Operands: (Rd_SP, Rn, ImmLog, None, None); Flags: F_SF),
    (IID: INSN_ANDS        ; OpCode: $72000000; Mask: $7F800000; IClass: c_log_imm   ; Operands: (Rd, Rn, ImmLog, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_EOR         ; OpCode: $52000000; Mask: $7F800000; IClass: c_log_imm   ; Operands: (Rd_SP, Rn, ImmLog, None, None); Flags: F_SF),
    (IID: INSN_MOV         ; OpCode: $320003E0; Mask: $7F8003E0; IClass: c_log_imm   ; Operands: (Rd_SP, ImmLog, None, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_ORR         ; OpCode: $32000000; Mask: $7F800000; IClass: c_log_imm   ; Operands: (Rd_SP, Rn, ImmLog, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_TST         ; OpCode: $7200001F; Mask: $7F80001F; IClass: c_log_imm   ; Operands: (Rn, ImmLog, None, None, None); Flags: F_SF or F_ALIAS),
    { Logical (shifted register). }
    (IID: INSN_AND         ; OpCode: $0A000000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_ANDS        ; OpCode: $6A000000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_BIC         ; OpCode: $0A200000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_BICS        ; OpCode: $6A200000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_EON         ; OpCode: $4A200000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_EOR         ; OpCode: $4A000000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF),
    (IID: INSN_MOV         ; OpCode: $2A0003E0; Mask: $7FE0FFE0; IClass: c_log_shift ; Operands: (Rd, Rm, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_MVN         ; OpCode: $2A2003E0; Mask: $7F2003E0; IClass: c_log_shift ; Operands: (Rd, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    (IID: INSN_ORN         ; OpCode: $2A200000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_ORR         ; OpCode: $2A000000; Mask: $7F200000; IClass: c_log_shift ; Operands: (Rd, Rn, Rm_SFT, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_TST         ; OpCode: $6A00001F; Mask: $7F20001F; IClass: c_log_shift ; Operands: (Rn, Rm_SFT, None, None, None); Flags: F_SF or F_ALIAS),
    { Atomic memory operations. }
    (IID: INSN_LDADD       ; OpCode: $B8200000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDADDA      ; OpCode: $B8A00000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDADDAB     ; OpCode: $38A00000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDAH     ; OpCode: $78A00000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDAL     ; OpCode: $B8E00000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDADDALB    ; OpCode: $38E00000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDALH    ; OpCode: $78E00000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDB      ; OpCode: $38200000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDH      ; OpCode: $78200000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDL      ; OpCode: $B8600000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDADDLB     ; OpCode: $38600000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDADDLH     ; OpCode: $78600000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDAPR       ; OpCode: $B8BFC000; Mask: $BFFFFC00; IClass: c_memop     ; Operands: (Rt, addr, None, None, None); Flags: F_SF),
    (IID: INSN_LDAPRB      ; OpCode: $38BFC000; Mask: $FFFFFC00; IClass: c_memop     ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDAPRH      ; OpCode: $78BFC000; Mask: $FFFFFC00; IClass: c_memop     ; Operands: (Wt, addr, None, None, None); Flags: 0),
    (IID: INSN_LDCLR       ; OpCode: $B8201000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDCLRA      ; OpCode: $B8A01000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDCLRAB     ; OpCode: $38A01000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRAH     ; OpCode: $78A01000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRAL     ; OpCode: $B8E01000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDCLRALB    ; OpCode: $38E01000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRALH    ; OpCode: $78E01000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRB      ; OpCode: $38201000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRH      ; OpCode: $78201000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRL      ; OpCode: $B8601000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDCLRLB     ; OpCode: $38601000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDCLRLH     ; OpCode: $78601000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEOR       ; OpCode: $B8202000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDEORA      ; OpCode: $B8A02000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDEORAB     ; OpCode: $38A02000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORAH     ; OpCode: $78A02000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORAL     ; OpCode: $B8E02000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDEORALB    ; OpCode: $38E02000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORALH    ; OpCode: $78E02000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORB      ; OpCode: $38202000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORH      ; OpCode: $78202000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORL      ; OpCode: $B8602000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDEORLB     ; OpCode: $38602000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDEORLH     ; OpCode: $78602000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSET       ; OpCode: $B8203000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSETA      ; OpCode: $B8A03000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSETAB     ; OpCode: $38A03000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETAH     ; OpCode: $78A03000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETAL     ; OpCode: $B8E03000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSETALB    ; OpCode: $38E03000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETALH    ; OpCode: $78E03000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETB      ; OpCode: $38203000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETH      ; OpCode: $78203000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETL      ; OpCode: $B8603000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSETLB     ; OpCode: $38603000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSETLH     ; OpCode: $78603000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAX      ; OpCode: $B8204000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMAXA     ; OpCode: $B8A04000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMAXAB    ; OpCode: $38A04000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXAH    ; OpCode: $78A04000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXAL    ; OpCode: $B8E04000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMAXALB   ; OpCode: $38E04000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXALH   ; OpCode: $78E04000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXB     ; OpCode: $38204000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXH     ; OpCode: $78204000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXL     ; OpCode: $B8604000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMAXLB    ; OpCode: $38604000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMAXLH    ; OpCode: $78604000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMIN      ; OpCode: $B8205000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMINA     ; OpCode: $B8A05000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMINAB    ; OpCode: $38A05000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINAH    ; OpCode: $78A05000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINAL    ; OpCode: $B8E05000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMINALB   ; OpCode: $38E05000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINALH   ; OpCode: $78E05000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINB     ; OpCode: $38205000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINH     ; OpCode: $78205000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINL     ; OpCode: $B8605000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDSMINLB    ; OpCode: $38605000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDSMINLH    ; OpCode: $78605000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAX      ; OpCode: $B8206000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMAXA     ; OpCode: $B8A06000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMAXAB    ; OpCode: $38A06000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXAH    ; OpCode: $78A06000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXAL    ; OpCode: $B8E06000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMAXALB   ; OpCode: $38E06000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXALH   ; OpCode: $78E06000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXB     ; OpCode: $38206000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXH     ; OpCode: $78206000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXL     ; OpCode: $B8606000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMAXLB    ; OpCode: $38606000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMAXLH    ; OpCode: $78606000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMIN      ; OpCode: $B8207000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMINA     ; OpCode: $B8A07000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMINAB    ; OpCode: $38A07000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINAH    ; OpCode: $78A07000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINAL    ; OpCode: $B8E07000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMINALB   ; OpCode: $38E07000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINALH   ; OpCode: $78E07000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINB     ; OpCode: $38207000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINH     ; OpCode: $78207000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINL     ; OpCode: $B8607000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_LDUMINLB    ; OpCode: $38607000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_LDUMINLH    ; OpCode: $78607000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_STADD       ; OpCode: $B820001F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STADDB      ; OpCode: $3820001F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STADDH      ; OpCode: $7820001F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STADDL      ; OpCode: $B860001F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STADDLB     ; OpCode: $3860001F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STADDLH     ; OpCode: $7860001F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STCLR       ; OpCode: $B820101F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STCLRB      ; OpCode: $3820101F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STCLRH      ; OpCode: $7820101F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STCLRL      ; OpCode: $B860101F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STCLRLB     ; OpCode: $3860101F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STCLRLH     ; OpCode: $7860101F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STEOR       ; OpCode: $B820201F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STEORB      ; OpCode: $3820201F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STEORH      ; OpCode: $7820201F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STEORL      ; OpCode: $B860201F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STEORLB     ; OpCode: $3860201F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STEORLH     ; OpCode: $7860201F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSET       ; OpCode: $B820301F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSETB      ; OpCode: $3820301F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSETH      ; OpCode: $7820301F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSETL      ; OpCode: $B860301F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSETLB     ; OpCode: $3860301F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSETLH     ; OpCode: $7860301F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMAX      ; OpCode: $B820401F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSMAXB     ; OpCode: $3820401F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMAXH     ; OpCode: $7820401F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMAXL     ; OpCode: $B860401F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSMAXLB    ; OpCode: $3860401F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMAXLH    ; OpCode: $7860401F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMIN      ; OpCode: $B820501F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSMINB     ; OpCode: $3820501F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMINH     ; OpCode: $7820501F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMINL     ; OpCode: $B860501F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STSMINLB    ; OpCode: $3860501F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STSMINLH    ; OpCode: $7860501F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMAX      ; OpCode: $B820601F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STUMAXB     ; OpCode: $3820601F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMAXH     ; OpCode: $7820601F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMAXL     ; OpCode: $B860601F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STUMAXLB    ; OpCode: $3860601F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMAXLH    ; OpCode: $7860601F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMIN      ; OpCode: $B820701F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STUMINB     ; OpCode: $3820701F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMINH     ; OpCode: $7820701F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMINL     ; OpCode: $B860701F; Mask: $BFE0FC1F; IClass: c_memop     ; Operands: (Rs, addr, None, None, None); Flags: F_SF),
    (IID: INSN_STUMINLB    ; OpCode: $3860701F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_STUMINLH    ; OpCode: $7860701F; Mask: $FFE0FC1F; IClass: c_memop     ; Operands: (Ws, addr, None, None, None); Flags: 0),
    (IID: INSN_SWP         ; OpCode: $B8208000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_SWPA        ; OpCode: $B8A08000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_SWPAB       ; OpCode: $38A08000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPAH       ; OpCode: $78A08000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPAL       ; OpCode: $B8E08000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_SWPALB      ; OpCode: $38E08000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPALH      ; OpCode: $78E08000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPB        ; OpCode: $38208000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPH        ; OpCode: $78208000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPL        ; OpCode: $B8608000; Mask: $BFE0FC00; IClass: c_memop     ; Operands: (Rs, Rt, addr, None, None); Flags: F_SF),
    (IID: INSN_SWPLB       ; OpCode: $38608000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    (IID: INSN_SWPLH       ; OpCode: $78608000; Mask: $FFE0FC00; IClass: c_memop     ; Operands: (Ws, Wt, addr, None, None); Flags: 0),
    { Move wide (immediate). }
    (IID: INSN_MOV         ; OpCode: $12800000; Mask: $7F800000; IClass: c_movewide  ; Operands: (Rd, ImmWide, None, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_MOV         ; OpCode: $52800000; Mask: $7F800000; IClass: c_movewide  ; Operands: (Rd, ImmWide, None, None, None); Flags: F_SF or F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_MOVK        ; OpCode: $72800000; Mask: $7F800000; IClass: c_movewide  ; Operands: (Rd, ImmWide, None, None, None); Flags: F_SF),
    (IID: INSN_MOVN        ; OpCode: $12800000; Mask: $7F800000; IClass: c_movewide  ; Operands: (Rd, ImmWide, None, None, None); Flags: F_SF or F_HAS_ALIAS),
    (IID: INSN_MOVZ        ; OpCode: $52800000; Mask: $7F800000; IClass: c_movewide  ; Operands: (Rd, ImmWide, None, None, None); Flags: F_SF or F_HAS_ALIAS),
    { PC-rel. addressing. }
    (IID: INSN_ADR         ; OpCode: $10000000; Mask: $9F000000; IClass: c_pcreladdr ; Operands: (Xd, RelLong, None, None, None); Flags: 0),
    (IID: INSN_ADRP        ; OpCode: $90000000; Mask: $9F000000; IClass: c_pcreladdr ; Operands: (Xd, RelLong, None, None, None); Flags: 0),
    { System. }
    (IID: INSN_AT          ; OpCode: $D5087800; Mask: $FFF8FE00; IClass: c_system    ; Operands: (SysReg_AT, Xt, None, None, None); Flags: F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_AUTIA1716   ; OpCode: $D503219F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIASP     ; OpCode: $D50323BF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIAZ      ; OpCode: $D503239F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIB1716   ; OpCode: $D50321DF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIBSP     ; OpCode: $D50323FF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_AUTIBZ      ; OpCode: $D50323DF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_CLREX       ; OpCode: $D503305F; Mask: $FFFFF0FF; IClass: c_system    ; Operands: (ImmSys, None, None, None, None); Flags: 0),
    (IID: INSN_DC          ; OpCode: $D5087000; Mask: $FFF8F000; IClass: c_system    ; Operands: (SysReg_DC, Xt, None, None, None); Flags: F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_DMB         ; OpCode: $D50330BF; Mask: $FFFFF0FF; IClass: c_system    ; Operands: (Barrier, None, None, None, None); Flags: 0),
    (IID: INSN_DSB         ; OpCode: $D503309F; Mask: $FFFFF0FF; IClass: c_system    ; Operands: (Barrier, None, None, None, None); Flags: 0),
    (IID: INSN_ESB         ; OpCode: $D503221F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_HINT        ; OpCode: $D503201F; Mask: $FFFFF01F; IClass: c_system    ; Operands: (ImmHint, None, None, None, None); Flags: 0),
    (IID: INSN_IC          ; OpCode: $D5087000; Mask: $FFF8F000; IClass: c_system    ; Operands: (SysReg_IC, Xt, None, None, None); Flags: F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_ISB         ; OpCode: $D50330DF; Mask: $FFFFF0FF; IClass: c_system    ; Operands: (Barrier, None, None, None, None); Flags: 0),
    (IID: INSN_MRS         ; OpCode: $D5300000; Mask: $FFF00000; IClass: c_system    ; Operands: (Xt, Systemreg, None, None, None); Flags: 0),
    (IID: INSN_MSR         ; OpCode: $D500401F; Mask: $FFF8F01F; IClass: c_system    ; Operands: (Pstatefield, ImmSys, None, None, None); Flags: 0),
    (IID: INSN_MSR         ; OpCode: $D5100000; Mask: $FFF00000; IClass: c_system    ; Operands: (Systemreg, Xt, None, None, None); Flags: 0),
    (IID: INSN_NOP         ; OpCode: $D503201F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIA1716   ; OpCode: $D503211F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIASP     ; OpCode: $D503233F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIAZ      ; OpCode: $D503231F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIB1716   ; OpCode: $D503215F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIBSP     ; OpCode: $D503237F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PACIBZ      ; OpCode: $D503235F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_PSB         ; OpCode: $D503223F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (Cnst_CSYNC, None, None, None, None); Flags: 0),
    (IID: INSN_SEV         ; OpCode: $D503209F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_SEVL        ; OpCode: $D50320BF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_SYS         ; OpCode: $D5080000; Mask: $FFF80000; IClass: c_system    ; Operands: (Op1, Cn, Cm, Op2, Xt); Flags: F_HAS_ALIAS),
    (IID: INSN_SYSL        ; OpCode: $D5280000; Mask: $FFF80000; IClass: c_system    ; Operands: (Xt, Op1, Cn, Cm, Op2); Flags: 0),
    (IID: INSN_TLBI        ; OpCode: $D5088000; Mask: $FFF8F000; IClass: c_system    ; Operands: (SysReg_TLBI, Xt, None, None, None); Flags: F_ALIAS or F_CONDITIONALLY),
    (IID: INSN_WFE         ; OpCode: $D503205F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_WFI         ; OpCode: $D503207F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_XPACLRI     ; OpCode: $D50320FF; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    (IID: INSN_YIELD       ; OpCode: $D503203F; Mask: $FFFFFFFF; IClass: c_system    ; Operands: (None, None, None, None, None); Flags: 0),
    { Test and branch (immediate). }
    (IID: INSN_TBNZ        ; OpCode: $37000000; Mask: $7F000000; IClass: c_testbranch; Operands: (Rt, ImmTest, Rel14, None, None); Flags: F_SF),
    (IID: INSN_TBZ         ; OpCode: $36000000; Mask: $7F000000; IClass: c_testbranch; Operands: (Rt, ImmTest, Rel14, None, None); Flags: F_SF)
);
