/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|*Assembly Writer Source Fragment                                             *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

/* Capstone Disassembly Engine, http://www.capstone-engine.org */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */

/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
{
  static const uint32_t OpInfo[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// CFI_INSTRUCTION
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    2694U,	// DBG_VALUE
    0U,	// REG_SEQUENCE
    0U,	// COPY
    2687U,	// BUNDLE
    2704U,	// LIFETIME_START
    2674U,	// LIFETIME_END
    0U,	// STACKMAP
    0U,	// PATCHPOINT
    0U,	// LOAD_STACK_GUARD
    0U,	// STATEPOINT
    0U,	// FRAME_ALLOC
    6182U,	// ABSv16i8
    553920550U,	// ABSv1i64
    1074272294U,	// ABSv2i32
    1611405350U,	// ABSv2i64
    2148538406U,	// ABSv4i16
    2685671462U,	// ABSv4i32
    3222804518U,	// ABSv8i16
    3759937574U,	// ABSv8i8
    17049662U,	// ADCSWr
    17049662U,	// ADCSXr
    17048298U,	// ADCWr
    17048298U,	// ADCXr
    537400863U,	// ADDHNv2i64_v2i32
    571748634U,	// ADDHNv2i64_v4i32
    1074796063U,	// ADDHNv4i32_v4i16
    1108881690U,	// ADDHNv4i32_v8i16
    1644179738U,	// ADDHNv8i16_v16i8
    1612453407U,	// ADDHNv8i16_v8i8
    2147489464U,	// ADDPv16i8
    2684884664U,	// ADDPv2i32
    537663160U,	// ADDPv2i64
    1610884792U,	// ADDPv2i64p
    3222279864U,	// ADDPv4i16
    1075058360U,	// ADDPv4i32
    1612191416U,	// ADDPv8i16
    3759937208U,	// ADDPv8i8
    17049674U,	// ADDSWri
    0U,	// ADDSWrr
    17049674U,	// ADDSWrs
    17049674U,	// ADDSWrx
    17049674U,	// ADDSXri
    0U,	// ADDSXrr
    17049674U,	// ADDSXrs
    17049674U,	// ADDSXrx
    17049674U,	// ADDSXrx64
    272671U,	// ADDVv16i8v
    2147756319U,	// ADDVv4i16v
    2684627231U,	// ADDVv4i32v
    3221498143U,	// ADDVv8i16v
    3758369055U,	// ADDVv8i8v
    17048359U,	// ADDWri
    0U,	// ADDWrr
    17048359U,	// ADDWrs
    17048359U,	// ADDWrx
    17048359U,	// ADDXri
    0U,	// ADDXrr
    17048359U,	// ADDXrs
    17048359U,	// ADDXrx
    17048359U,	// ADDXrx64
    2147488551U,	// ADDv16i8
    17048359U,	// ADDv1i64
    2684883751U,	// ADDv2i32
    537662247U,	// ADDv2i64
    3222278951U,	// ADDv4i16
    1075057447U,	// ADDv4i32
    1612190503U,	// ADDv8i16
    3759936295U,	// ADDv8i8
    0U,	// ADJCALLSTACKDOWN
    0U,	// ADJCALLSTACKUP
    553920403U,	// ADR
    50603811U,	// ADRP
    33567598U,	// AESDrr
    33567656U,	// AESErr
    4852U,	// AESIMCrr
    4860U,	// AESMCrr
    17049680U,	// ANDSWri
    0U,	// ANDSWrr
    17049680U,	// ANDSWrs
    17049680U,	// ANDSXri
    0U,	// ANDSXrr
    17049680U,	// ANDSXrs
    17048425U,	// ANDWri
    0U,	// ANDWrr
    17048425U,	// ANDWrs
    17048425U,	// ANDXri
    0U,	// ANDXrr
    17048425U,	// ANDXrs
    2147488617U,	// ANDv16i8
    3759936361U,	// ANDv8i8
    17049553U,	// ASRVWr
    17049553U,	// ASRVXr
    16935U,	// B
    67380710U,	// BFMWri
    67380710U,	// BFMXri
    0U,	// BICSWrr
    17049668U,	// BICSWrs
    0U,	// BICSXrr
    17049668U,	// BICSXrs
    0U,	// BICWrr
    17048303U,	// BICWrs
    0U,	// BICXrr
    17048303U,	// BICXrs
    2147488495U,	// BICv16i8
    84423407U,	// BICv2i32
    84947695U,	// BICv4i16
    85209839U,	// BICv4i32
    85471983U,	// BICv8i16
    3759936239U,	// BICv8i8
    2147488704U,	// BIFv16i8
    3759936448U,	// BIFv8i8
    2181052603U,	// BITv16i8
    3793500347U,	// BITv8i8
    17641U,	// BL
    2107319U,	// BLR
    2107279U,	// BR
    21688U,	// BRK
    2181051810U,	// BSLv16i8
    3793499554U,	// BSLv8i8
    27247U,	// Bcc
    100936257U,	// CBNZW
    100936257U,	// CBNZX
    100936242U,	// CBZW
    100936242U,	// CBZX
    17049144U,	// CCMNWi
    17049144U,	// CCMNWr
    17049144U,	// CCMNXi
    17049144U,	// CCMNXr
    17049316U,	// CCMPWi
    17049316U,	// CCMPWr
    17049316U,	// CCMPXi
    17049316U,	// CCMPXr
    2107924U,	// CLREX
    553920604U,	// CLSWr
    553920604U,	// CLSXr
    6236U,	// CLSv16i8
    1074272348U,	// CLSv2i32
    2148538460U,	// CLSv4i16
    2685671516U,	// CLSv4i32
    3222804572U,	// CLSv8i16
    3759937628U,	// CLSv8i8
    553921084U,	// CLZWr
    553921084U,	// CLZXr
    6716U,	// CLZv16i8
    1074272828U,	// CLZv2i32
    2148538940U,	// CLZv4i16
    2685671996U,	// CLZv4i32
    3222805052U,	// CLZv8i16
    3759938108U,	// CLZv8i8
    2147489643U,	// CMEQv16i8
    5995U,	// CMEQv16i8rz
    17049451U,	// CMEQv1i64
    553920363U,	// CMEQv1i64rz
    2684884843U,	// CMEQv2i32
    1074272107U,	// CMEQv2i32rz
    537663339U,	// CMEQv2i64
    1611405163U,	// CMEQv2i64rz
    3222280043U,	// CMEQv4i16
    2148538219U,	// CMEQv4i16rz
    1075058539U,	// CMEQv4i32
    2685671275U,	// CMEQv4i32rz
    1612191595U,	// CMEQv8i16
    3222804331U,	// CMEQv8i16rz
    3759937387U,	// CMEQv8i8
    3759937387U,	// CMEQv8i8rz
    2147488636U,	// CMGEv16i8
    4988U,	// CMGEv16i8rz
    17048444U,	// CMGEv1i64
    553919356U,	// CMGEv1i64rz
    2684883836U,	// CMGEv2i32
    1074271100U,	// CMGEv2i32rz
    537662332U,	// CMGEv2i64
    1611404156U,	// CMGEv2i64rz
    3222279036U,	// CMGEv4i16
    2148537212U,	// CMGEv4i16rz
    1075057532U,	// CMGEv4i32
    2685670268U,	// CMGEv4i32rz
    1612190588U,	// CMGEv8i16
    3222803324U,	// CMGEv8i16rz
    3759936380U,	// CMGEv8i8
    3759936380U,	// CMGEv8i8rz
    2147489972U,	// CMGTv16i8
    6324U,	// CMGTv16i8rz
    17049780U,	// CMGTv1i64
    553920692U,	// CMGTv1i64rz
    2684885172U,	// CMGTv2i32
    1074272436U,	// CMGTv2i32rz
    537663668U,	// CMGTv2i64
    1611405492U,	// CMGTv2i64rz
    3222280372U,	// CMGTv4i16
    2148538548U,	// CMGTv4i16rz
    1075058868U,	// CMGTv4i32
    2685671604U,	// CMGTv4i32rz
    1612191924U,	// CMGTv8i16
    3222804660U,	// CMGTv8i16rz
    3759937716U,	// CMGTv8i8
    3759937716U,	// CMGTv8i8rz
    2147488916U,	// CMHIv16i8
    17048724U,	// CMHIv1i64
    2684884116U,	// CMHIv2i32
    537662612U,	// CMHIv2i64
    3222279316U,	// CMHIv4i16
    1075057812U,	// CMHIv4i32
    1612190868U,	// CMHIv8i16
    3759936660U,	// CMHIv8i8
    2147489878U,	// CMHSv16i8
    17049686U,	// CMHSv1i64
    2684885078U,	// CMHSv2i32
    537663574U,	// CMHSv2i64
    3222280278U,	// CMHSv4i16
    1075058774U,	// CMHSv4i32
    1612191830U,	// CMHSv8i16
    3759937622U,	// CMHSv8i8
    4995U,	// CMLEv16i8rz
    553919363U,	// CMLEv1i64rz
    1074271107U,	// CMLEv2i32rz
    1611404163U,	// CMLEv2i64rz
    2148537219U,	// CMLEv4i16rz
    2685670275U,	// CMLEv4i32rz
    3222803331U,	// CMLEv8i16rz
    3759936387U,	// CMLEv8i8rz
    6342U,	// CMLTv16i8rz
    553920710U,	// CMLTv1i64rz
    1074272454U,	// CMLTv2i32rz
    1611405510U,	// CMLTv2i64rz
    2148538566U,	// CMLTv4i16rz
    2685671622U,	// CMLTv4i32rz
    3222804678U,	// CMLTv8i16rz
    3759937734U,	// CMLTv8i8rz
    2147490013U,	// CMTSTv16i8
    17049821U,	// CMTSTv1i64
    2684885213U,	// CMTSTv2i32
    537663709U,	// CMTSTv2i64
    3222280413U,	// CMTSTv4i16
    1075058909U,	// CMTSTv4i32
    1612191965U,	// CMTSTv8i16
    3759937757U,	// CMTSTv8i8
    6348U,	// CNTv16i8
    3759937740U,	// CNTv8i8
    272763U,	// CPYi16
    537143675U,	// CPYi32
    1074014587U,	// CPYi64
    1610885499U,	// CPYi8
    17048098U,	// CRC32Brr
    17048106U,	// CRC32CBrr
    17048575U,	// CRC32CHrr
    17050039U,	// CRC32CWrr
    17050123U,	// CRC32CXrr
    17048558U,	// CRC32Hrr
    17050017U,	// CRC32Wrr
    17050092U,	// CRC32Xrr
    17048888U,	// CSELWr
    17048888U,	// CSELXr
    17048323U,	// CSINCWr
    17048323U,	// CSINCXr
    17049971U,	// CSINVWr
    17049971U,	// CSINVXr
    17048544U,	// CSNEGWr
    17048544U,	// CSNEGXr
    20524U,	// DCPS1
    20889U,	// DCPS2
    20938U,	// DCPS3
    29235U,	// DMB
    2719U,	// DRPS
    29324U,	// DSB
    553654070U,	// DUPv16i8gpr
    1610618678U,	// DUPv16i8lane
    554178358U,	// DUPv2i32gpr
    537401142U,	// DUPv2i32lane
    554440502U,	// DUPv2i64gpr
    1074534198U,	// DUPv2i64lane
    554702646U,	// DUPv4i16gpr
    1054518U,	// DUPv4i16lane
    554964790U,	// DUPv4i32gpr
    538187574U,	// DUPv4i32lane
    555226934U,	// DUPv8i16gpr
    1578806U,	// DUPv8i16lane
    555489078U,	// DUPv8i8gpr
    1612453686U,	// DUPv8i8lane
    0U,	// EONWrr
    17049150U,	// EONWrs
    0U,	// EONXrr
    17049150U,	// EONXrs
    17049538U,	// EORWri
    0U,	// EORWrr
    17049538U,	// EORWrs
    17049538U,	// EORXri
    0U,	// EORXrr
    17049538U,	// EORXrs
    2147489730U,	// EORv16i8
    3759937474U,	// EORv8i8
    2724U,	// ERET
    17049585U,	// EXTRWrri
    17049585U,	// EXTRXrri
    2147490026U,	// EXTv16i8
    3759937770U,	// EXTv8i8
    0U,	// F128CSEL
    17048340U,	// FABD32
    17048340U,	// FABD64
    2684883732U,	// FABDv2f32
    537662228U,	// FABDv2f64
    1075057428U,	// FABDv4f32
    553920549U,	// FABSDr
    553920549U,	// FABSSr
    1074272293U,	// FABSv2f32
    1611405349U,	// FABSv2f64
    2685671461U,	// FABSv4f32
    17048436U,	// FACGE32
    17048436U,	// FACGE64
    2684883828U,	// FACGEv2f32
    537662324U,	// FACGEv2f64
    1075057524U,	// FACGEv4f32
    17049772U,	// FACGT32
    17049772U,	// FACGT64
    2684885164U,	// FACGTv2f32
    537663660U,	// FACGTv2f64
    1075058860U,	// FACGTv4f32
    17048358U,	// FADDDrr
    2684884663U,	// FADDPv2f32
    537663159U,	// FADDPv2f64
    1074013879U,	// FADDPv2i32p
    1610884791U,	// FADDPv2i64p
    1075058359U,	// FADDPv4f32
    17048358U,	// FADDSrr
    2684883750U,	// FADDv2f32
    537662246U,	// FADDv2f64
    1075057446U,	// FADDv4f32
    17049315U,	// FCCMPDrr
    17048473U,	// FCCMPEDrr
    17048473U,	// FCCMPESrr
    17049315U,	// FCCMPSrr
    17049450U,	// FCMEQ32
    17049450U,	// FCMEQ64
    2164533098U,	// FCMEQv1i32rz
    2164533098U,	// FCMEQv1i64rz
    2684884842U,	// FCMEQv2f32
    537663338U,	// FCMEQv2f64
    2684884842U,	// FCMEQv2i32rz
    3222017898U,	// FCMEQv2i64rz
    1075058538U,	// FCMEQv4f32
    3759413098U,	// FCMEQv4i32rz
    17048443U,	// FCMGE32
    17048443U,	// FCMGE64
    2164532091U,	// FCMGEv1i32rz
    2164532091U,	// FCMGEv1i64rz
    2684883835U,	// FCMGEv2f32
    537662331U,	// FCMGEv2f64
    2684883835U,	// FCMGEv2i32rz
    3222016891U,	// FCMGEv2i64rz
    1075057531U,	// FCMGEv4f32
    3759412091U,	// FCMGEv4i32rz
    17049779U,	// FCMGT32
    17049779U,	// FCMGT64
    2164533427U,	// FCMGTv1i32rz
    2164533427U,	// FCMGTv1i64rz
    2684885171U,	// FCMGTv2f32
    537663667U,	// FCMGTv2f64
    2684885171U,	// FCMGTv2i32rz
    3222018227U,	// FCMGTv2i64rz
    1075058867U,	// FCMGTv4f32
    3759413427U,	// FCMGTv4i32rz
    2164532098U,	// FCMLEv1i32rz
    2164532098U,	// FCMLEv1i64rz
    2684883842U,	// FCMLEv2i32rz
    3222016898U,	// FCMLEv2i64rz
    3759412098U,	// FCMLEv4i32rz
    2164533445U,	// FCMLTv1i32rz
    2164533445U,	// FCMLTv1i64rz
    2684885189U,	// FCMLTv2i32rz
    3222018245U,	// FCMLTv2i64rz
    3759413445U,	// FCMLTv4i32rz
    2369258U,	// FCMPDri
    553920234U,	// FCMPDrr
    2368417U,	// FCMPEDri
    553919393U,	// FCMPEDrr
    2368417U,	// FCMPESri
    553919393U,	// FCMPESrr
    2369258U,	// FCMPSri
    553920234U,	// FCMPSrr
    17048887U,	// FCSELDrrr
    17048887U,	// FCSELSrrr
    553920541U,	// FCVTASUWDr
    553920541U,	// FCVTASUWSr
    553920541U,	// FCVTASUXDr
    553920541U,	// FCVTASUXSr
    553920541U,	// FCVTASv1i32
    553920541U,	// FCVTASv1i64
    1074272285U,	// FCVTASv2f32
    1611405341U,	// FCVTASv2f64
    2685671453U,	// FCVTASv4f32
    553920751U,	// FCVTAUUWDr
    553920751U,	// FCVTAUUWSr
    553920751U,	// FCVTAUUXDr
    553920751U,	// FCVTAUUXSr
    553920751U,	// FCVTAUv1i32
    553920751U,	// FCVTAUv1i64
    1074272495U,	// FCVTAUv2f32
    1611405551U,	// FCVTAUv2f64
    2685671663U,	// FCVTAUv4f32
    553920740U,	// FCVTDHr
    553920740U,	// FCVTDSr
    553920740U,	// FCVTHDr
    553920740U,	// FCVTHSr
    1074533828U,	// FCVTLv2i32
    2148799940U,	// FCVTLv4i16
    2685145352U,	// FCVTLv4i32
    3222540552U,	// FCVTLv8i16
    553920615U,	// FCVTMSUWDr
    553920615U,	// FCVTMSUWSr
    553920615U,	// FCVTMSUXDr
    553920615U,	// FCVTMSUXSr
    553920615U,	// FCVTMSv1i32
    553920615U,	// FCVTMSv1i64
    1074272359U,	// FCVTMSv2f32
    1611405415U,	// FCVTMSv2f64
    2685671527U,	// FCVTMSv4f32
    553920767U,	// FCVTMUUWDr
    553920767U,	// FCVTMUUWSr
    553920767U,	// FCVTMUUXDr
    553920767U,	// FCVTMUUXSr
    553920767U,	// FCVTMUv1i32
    553920767U,	// FCVTMUv1i64
    1074272511U,	// FCVTMUv2f32
    1611405567U,	// FCVTMUv2f64
    2685671679U,	// FCVTMUv4f32
    553920628U,	// FCVTNSUWDr
    553920628U,	// FCVTNSUWSr
    553920628U,	// FCVTNSUXDr
    553920628U,	// FCVTNSUXSr
    553920628U,	// FCVTNSv1i32
    553920628U,	// FCVTNSv1i64
    1074272372U,	// FCVTNSv2f32
    1611405428U,	// FCVTNSv2f64
    2685671540U,	// FCVTNSv4f32
    553920775U,	// FCVTNUUWDr
    553920775U,	// FCVTNUUWSr
    553920775U,	// FCVTNUUXDr
    553920775U,	// FCVTNUUXSr
    553920775U,	// FCVTNUv1i32
    553920775U,	// FCVTNUv1i64
    1074272519U,	// FCVTNUv2f32
    1611405575U,	// FCVTNUv2f64
    2685671687U,	// FCVTNUv4f32
    1611142770U,	// FCVTNv2i32
    2685408882U,	// FCVTNv4i16
    1645490510U,	// FCVTNv4i32
    2719494478U,	// FCVTNv8i16
    553920644U,	// FCVTPSUWDr
    553920644U,	// FCVTPSUWSr
    553920644U,	// FCVTPSUXDr
    553920644U,	// FCVTPSUXSr
    553920644U,	// FCVTPSv1i32
    553920644U,	// FCVTPSv1i64
    1074272388U,	// FCVTPSv2f32
    1611405444U,	// FCVTPSv2f64
    2685671556U,	// FCVTPSv4f32
    553920783U,	// FCVTPUUWDr
    553920783U,	// FCVTPUUWSr
    553920783U,	// FCVTPUUXDr
    553920783U,	// FCVTPUUXSr
    553920783U,	// FCVTPUv1i32
    553920783U,	// FCVTPUv1i64
    1074272527U,	// FCVTPUv2f32
    1611405583U,	// FCVTPUv2f64
    2685671695U,	// FCVTPUv4f32
    553920740U,	// FCVTSDr
    553920740U,	// FCVTSHr
    553920168U,	// FCVTXNv1i64
    1611142824U,	// FCVTXNv2f32
    1645490564U,	// FCVTXNv4f32
    17049759U,	// FCVTZSSWDri
    17049759U,	// FCVTZSSWSri
    17049759U,	// FCVTZSSXDri
    17049759U,	// FCVTZSSXSri
    553920671U,	// FCVTZSUWDr
    553920671U,	// FCVTZSUWSr
    553920671U,	// FCVTZSUXDr
    553920671U,	// FCVTZSUXSr
    17049759U,	// FCVTZS_IntSWDri
    17049759U,	// FCVTZS_IntSWSri
    17049759U,	// FCVTZS_IntSXDri
    17049759U,	// FCVTZS_IntSXSri
    553920671U,	// FCVTZS_IntUWDr
    553920671U,	// FCVTZS_IntUWSr
    553920671U,	// FCVTZS_IntUXDr
    553920671U,	// FCVTZS_IntUXSr
    1074272415U,	// FCVTZS_Intv2f32
    1611405471U,	// FCVTZS_Intv2f64
    2685671583U,	// FCVTZS_Intv4f32
    17049759U,	// FCVTZSd
    17049759U,	// FCVTZSs
    553920671U,	// FCVTZSv1i32
    553920671U,	// FCVTZSv1i64
    1074272415U,	// FCVTZSv2f32
    1611405471U,	// FCVTZSv2f64
    2684885151U,	// FCVTZSv2i32_shift
    537663647U,	// FCVTZSv2i64_shift
    2685671583U,	// FCVTZSv4f32
    1075058847U,	// FCVTZSv4i32_shift
    17049879U,	// FCVTZUSWDri
    17049879U,	// FCVTZUSWSri
    17049879U,	// FCVTZUSXDri
    17049879U,	// FCVTZUSXSri
    553920791U,	// FCVTZUUWDr
    553920791U,	// FCVTZUUWSr
    553920791U,	// FCVTZUUXDr
    553920791U,	// FCVTZUUXSr
    17049879U,	// FCVTZU_IntSWDri
    17049879U,	// FCVTZU_IntSWSri
    17049879U,	// FCVTZU_IntSXDri
    17049879U,	// FCVTZU_IntSXSri
    553920791U,	// FCVTZU_IntUWDr
    553920791U,	// FCVTZU_IntUWSr
    553920791U,	// FCVTZU_IntUXDr
    553920791U,	// FCVTZU_IntUXSr
    1074272535U,	// FCVTZU_Intv2f32
    1611405591U,	// FCVTZU_Intv2f64
    2685671703U,	// FCVTZU_Intv4f32
    17049879U,	// FCVTZUd
    17049879U,	// FCVTZUs
    553920791U,	// FCVTZUv1i32
    553920791U,	// FCVTZUv1i64
    1074272535U,	// FCVTZUv2f32
    1611405591U,	// FCVTZUv2f64
    2684885271U,	// FCVTZUv2i32_shift
    537663767U,	// FCVTZUv2i64_shift
    2685671703U,	// FCVTZUv4f32
    1075058967U,	// FCVTZUv4i32_shift
    17049898U,	// FDIVDrr
    17049898U,	// FDIVSrr
    2684885290U,	// FDIVv2f32
    537663786U,	// FDIVv2f64
    1075058986U,	// FDIVv4f32
    17048394U,	// FMADDDrrr
    17048394U,	// FMADDSrrr
    17050100U,	// FMAXDrr
    17049087U,	// FMAXNMDrr
    2684884729U,	// FMAXNMPv2f32
    537663225U,	// FMAXNMPv2f64
    1074013945U,	// FMAXNMPv2i32p
    1610884857U,	// FMAXNMPv2i64p
    1075058425U,	// FMAXNMPv4f32
    17049087U,	// FMAXNMSrr
    2684627285U,	// FMAXNMVv4i32v
    2684884479U,	// FMAXNMv2f32
    537662975U,	// FMAXNMv2f64
    1075058175U,	// FMAXNMv4f32
    2684884802U,	// FMAXPv2f32
    537663298U,	// FMAXPv2f64
    1074014018U,	// FMAXPv2i32p
    1610884930U,	// FMAXPv2i64p
    1075058498U,	// FMAXPv4f32
    17050100U,	// FMAXSrr
    2684627340U,	// FMAXVv4i32v
    2684885492U,	// FMAXv2f32
    537663988U,	// FMAXv2f64
    1075059188U,	// FMAXv4f32
    17049126U,	// FMINDrr
    17049079U,	// FMINNMDrr
    2684884720U,	// FMINNMPv2f32
    537663216U,	// FMINNMPv2f64
    1074013936U,	// FMINNMPv2i32p
    1610884848U,	// FMINNMPv2i64p
    1075058416U,	// FMINNMPv4f32
    17049079U,	// FMINNMSrr
    2684627276U,	// FMINNMVv4i32v
    2684884471U,	// FMINNMv2f32
    537662967U,	// FMINNMv2f64
    1075058167U,	// FMINNMv4f32
    2684884744U,	// FMINPv2f32
    537663240U,	// FMINPv2f64
    1074013960U,	// FMINPv2i32p
    1610884872U,	// FMINPv2i64p
    1075058440U,	// FMINPv4f32
    17049126U,	// FMINSrr
    2684627294U,	// FMINVv4i32v
    2684884518U,	// FMINv2f32
    537663014U,	// FMINv2f64
    1075058214U,	// FMINv4f32
    67404282U,	// FMLAv1i32_indexed
    67404282U,	// FMLAv1i64_indexed
    2718446074U,	// FMLAv2f32
    571224570U,	// FMLAv2f64
    2718446074U,	// FMLAv2i32_indexed
    571224570U,	// FMLAv2i64_indexed
    1108619770U,	// FMLAv4f32
    1108619770U,	// FMLAv4i32_indexed
    67405921U,	// FMLSv1i32_indexed
    67405921U,	// FMLSv1i64_indexed
    2718447713U,	// FMLSv2f32
    571226209U,	// FMLSv2f64
    2718447713U,	// FMLSv2i32_indexed
    571226209U,	// FMLSv2i64_indexed
    1108621409U,	// FMLSv4f32
    1108621409U,	// FMLSv4i32_indexed
    1074014586U,	// FMOVDXHighr
    553920890U,	// FMOVDXr
    117713274U,	// FMOVDi
    553920890U,	// FMOVDr
    553920890U,	// FMOVSWr
    117713274U,	// FMOVSi
    553920890U,	// FMOVSr
    553920890U,	// FMOVWSr
    556276090U,	// FMOVXDHighr
    553920890U,	// FMOVXDr
    117971322U,	// FMOVv2f32_ns
    118233466U,	// FMOVv2f64_ns
    118757754U,	// FMOVv4f32_ns
    17048257U,	// FMSUBDrrr
    17048257U,	// FMSUBSrrr
    17049035U,	// FMULDrr
    17049035U,	// FMULSrr
    17050139U,	// FMULX32
    17050139U,	// FMULX64
    17050139U,	// FMULXv1i32_indexed
    17050139U,	// FMULXv1i64_indexed
    2684885531U,	// FMULXv2f32
    537664027U,	// FMULXv2f64
    2684885531U,	// FMULXv2i32_indexed
    537664027U,	// FMULXv2i64_indexed
    1075059227U,	// FMULXv4f32
    1075059227U,	// FMULXv4i32_indexed
    17049035U,	// FMULv1i32_indexed
    17049035U,	// FMULv1i64_indexed
    2684884427U,	// FMULv2f32
    537662923U,	// FMULv2f64
    2684884427U,	// FMULv2i32_indexed
    537662923U,	// FMULv2i64_indexed
    1075058123U,	// FMULv4f32
    1075058123U,	// FMULv4i32_indexed
    553919443U,	// FNEGDr
    553919443U,	// FNEGSr
    1074271187U,	// FNEGv2f32
    1611404243U,	// FNEGv2f64
    2685670355U,	// FNEGv4f32
    17048401U,	// FNMADDDrrr
    17048401U,	// FNMADDSrrr
    17048264U,	// FNMSUBDrrr
    17048264U,	// FNMSUBSrrr
    17049041U,	// FNMULDrr
    17049041U,	// FNMULSrr
    553919369U,	// FRECPEv1i32
    553919369U,	// FRECPEv1i64
    1074271113U,	// FRECPEv2f32
    1611404169U,	// FRECPEv2f64
    2685670281U,	// FRECPEv4f32
    17049724U,	// FRECPS32
    17049724U,	// FRECPS64
    2684885116U,	// FRECPSv2f32
    537663612U,	// FRECPSv2f64
    1075058812U,	// FRECPSv4f32
    553921058U,	// FRECPXv1i32
    553921058U,	// FRECPXv1i64
    553919002U,	// FRINTADr
    553919002U,	// FRINTASr
    1074270746U,	// FRINTAv2f32
    1611403802U,	// FRINTAv2f64
    2685669914U,	// FRINTAv4f32
    553919658U,	// FRINTIDr
    553919658U,	// FRINTISr
    1074271402U,	// FRINTIv2f32
    1611404458U,	// FRINTIv2f64
    2685670570U,	// FRINTIv4f32
    553920007U,	// FRINTMDr
    553920007U,	// FRINTMSr
    1074271751U,	// FRINTMv2f32
    1611404807U,	// FRINTMv2f64
    2685670919U,	// FRINTMv4f32
    553920106U,	// FRINTNDr
    553920106U,	// FRINTNSr
    1074271850U,	// FRINTNv2f32
    1611404906U,	// FRINTNv2f64
    2685671018U,	// FRINTNv4f32
    553920297U,	// FRINTPDr
    553920297U,	// FRINTPSr
    1074272041U,	// FRINTPv2f32
    1611405097U,	// FRINTPv2f64
    2685671209U,	// FRINTPv4f32
    553921066U,	// FRINTXDr
    553921066U,	// FRINTXSr
    1074272810U,	// FRINTXv2f32
    1611405866U,	// FRINTXv2f64
    2685671978U,	// FRINTXv4f32
    553921101U,	// FRINTZDr
    553921101U,	// FRINTZSr
    1074272845U,	// FRINTZv2f32
    1611405901U,	// FRINTZv2f64
    2685672013U,	// FRINTZv4f32
    553919406U,	// FRSQRTEv1i32
    553919406U,	// FRSQRTEv1i64
    1074271150U,	// FRSQRTEv2f32
    1611404206U,	// FRSQRTEv2f64
    2685670318U,	// FRSQRTEv4f32
    17049745U,	// FRSQRTS32
    17049745U,	// FRSQRTS64
    2684885137U,	// FRSQRTSv2f32
    537663633U,	// FRSQRTSv2f64
    1075058833U,	// FRSQRTSv4f32
    553920726U,	// FSQRTDr
    553920726U,	// FSQRTSr
    1074272470U,	// FSQRTv2f32
    1611405526U,	// FSQRTv2f64
    2685671638U,	// FSQRTv4f32
    17048237U,	// FSUBDrr
    17048237U,	// FSUBSrr
    2684883629U,	// FSUBv2f32
    537662125U,	// FSUBv2f64
    1075057325U,	// FSUBv4f32
    23145U,	// HINT
    22720U,	// HLT
    21258U,	// HVC
    137115759U,	// INSvi16gpr
    153892975U,	// INSvi16lane
    137377903U,	// INSvi32gpr
    691026031U,	// INSvi32lane
    136853615U,	// INSvi64gpr
    1227372655U,	// INSvi64lane
    137640047U,	// INSvi8gpr
    1765029999U,	// INSvi8lane
    29329U,	// ISB
    36885U,	// LD1Fourv16b
    3710997U,	// LD1Fourv16b_POST
    45077U,	// LD1Fourv1d
    3981333U,	// LD1Fourv1d_POST
    53269U,	// LD1Fourv2d
    3727381U,	// LD1Fourv2d_POST
    61461U,	// LD1Fourv2s
    3997717U,	// LD1Fourv2s_POST
    69653U,	// LD1Fourv4h
    4005909U,	// LD1Fourv4h_POST
    77845U,	// LD1Fourv4s
    3751957U,	// LD1Fourv4s_POST
    86037U,	// LD1Fourv8b
    4022293U,	// LD1Fourv8b_POST
    94229U,	// LD1Fourv8h
    3768341U,	// LD1Fourv8h_POST
    36885U,	// LD1Onev16b
    4235285U,	// LD1Onev16b_POST
    45077U,	// LD1Onev1d
    4505621U,	// LD1Onev1d_POST
    53269U,	// LD1Onev2d
    4251669U,	// LD1Onev2d_POST
    61461U,	// LD1Onev2s
    4522005U,	// LD1Onev2s_POST
    69653U,	// LD1Onev4h
    4530197U,	// LD1Onev4h_POST
    77845U,	// LD1Onev4s
    4276245U,	// LD1Onev4s_POST
    86037U,	// LD1Onev8b
    4546581U,	// LD1Onev8b_POST
    94229U,	// LD1Onev8h
    4292629U,	// LD1Onev8h_POST
    38769U,	// LD1Rv16b
    4761457U,	// LD1Rv16b_POST
    46961U,	// LD1Rv1d
    4507505U,	// LD1Rv1d_POST
    55153U,	// LD1Rv2d
    4515697U,	// LD1Rv2d_POST
    63345U,	// LD1Rv2s
    5048177U,	// LD1Rv2s_POST
    71537U,	// LD1Rv4h
    5318513U,	// LD1Rv4h_POST
    79729U,	// LD1Rv4s
    5064561U,	// LD1Rv4s_POST
    87921U,	// LD1Rv8b
    4810609U,	// LD1Rv8b_POST
    96113U,	// LD1Rv8h
    5343089U,	// LD1Rv8h_POST
    36885U,	// LD1Threev16b
    5546005U,	// LD1Threev16b_POST
    45077U,	// LD1Threev1d
    5816341U,	// LD1Threev1d_POST
    53269U,	// LD1Threev2d
    5562389U,	// LD1Threev2d_POST
    61461U,	// LD1Threev2s
    5832725U,	// LD1Threev2s_POST
    69653U,	// LD1Threev4h
    5840917U,	// LD1Threev4h_POST
    77845U,	// LD1Threev4s
    5586965U,	// LD1Threev4s_POST
    86037U,	// LD1Threev8b
    5857301U,	// LD1Threev8b_POST
    94229U,	// LD1Threev8h
    5603349U,	// LD1Threev8h_POST
    36885U,	// LD1Twov16b
    3973141U,	// LD1Twov16b_POST
    45077U,	// LD1Twov1d
    4243477U,	// LD1Twov1d_POST
    53269U,	// LD1Twov2d
    3989525U,	// LD1Twov2d_POST
    61461U,	// LD1Twov2s
    4259861U,	// LD1Twov2s_POST
    69653U,	// LD1Twov4h
    4268053U,	// LD1Twov4h_POST
    77845U,	// LD1Twov4s
    4014101U,	// LD1Twov4s_POST
    86037U,	// LD1Twov8b
    4284437U,	// LD1Twov8b_POST
    94229U,	// LD1Twov8h
    4030485U,	// LD1Twov8h_POST
    6131733U,	// LD1i16
    6397973U,	// LD1i16_POST
    6139925U,	// LD1i32
    6668309U,	// LD1i32_POST
    6148117U,	// LD1i64
    6938645U,	// LD1i64_POST
    6156309U,	// LD1i8
    7208981U,	// LD1i8_POST
    38775U,	// LD2Rv16b
    5285751U,	// LD2Rv16b_POST
    46967U,	// LD2Rv1d
    4245367U,	// LD2Rv1d_POST
    55159U,	// LD2Rv2d
    4253559U,	// LD2Rv2d_POST
    63351U,	// LD2Rv2s
    4523895U,	// LD2Rv2s_POST
    71543U,	// LD2Rv4h
    5056375U,	// LD2Rv4h_POST
    79735U,	// LD2Rv4s
    4540279U,	// LD2Rv4s_POST
    87927U,	// LD2Rv8b
    5334903U,	// LD2Rv8b_POST
    96119U,	// LD2Rv8h
    5080951U,	// LD2Rv8h_POST
    36947U,	// LD2Twov16b
    3973203U,	// LD2Twov16b_POST
    53331U,	// LD2Twov2d
    3989587U,	// LD2Twov2d_POST
    61523U,	// LD2Twov2s
    4259923U,	// LD2Twov2s_POST
    69715U,	// LD2Twov4h
    4268115U,	// LD2Twov4h_POST
    77907U,	// LD2Twov4s
    4014163U,	// LD2Twov4s_POST
    86099U,	// LD2Twov8b
    4284499U,	// LD2Twov8b_POST
    94291U,	// LD2Twov8h
    4030547U,	// LD2Twov8h_POST
    6131795U,	// LD2i16
    6660179U,	// LD2i16_POST
    6139987U,	// LD2i32
    6930515U,	// LD2i32_POST
    6148179U,	// LD2i64
    7462995U,	// LD2i64_POST
    6156371U,	// LD2i8
    6422611U,	// LD2i8_POST
    38781U,	// LD3Rv16b
    7645053U,	// LD3Rv16b_POST
    46973U,	// LD3Rv1d
    5818237U,	// LD3Rv1d_POST
    55165U,	// LD3Rv2d
    5826429U,	// LD3Rv2d_POST
    63357U,	// LD3Rv2s
    7931773U,	// LD3Rv2s_POST
    71549U,	// LD3Rv4h
    8202109U,	// LD3Rv4h_POST
    79741U,	// LD3Rv4s
    7948157U,	// LD3Rv4s_POST
    87933U,	// LD3Rv8b
    7694205U,	// LD3Rv8b_POST
    96125U,	// LD3Rv8h
    8226685U,	// LD3Rv8h_POST
    37317U,	// LD3Threev16b
    5546437U,	// LD3Threev16b_POST
    53701U,	// LD3Threev2d
    5562821U,	// LD3Threev2d_POST
    61893U,	// LD3Threev2s
    5833157U,	// LD3Threev2s_POST
    70085U,	// LD3Threev4h
    5841349U,	// LD3Threev4h_POST
    78277U,	// LD3Threev4s
    5587397U,	// LD3Threev4s_POST
    86469U,	// LD3Threev8b
    5857733U,	// LD3Threev8b_POST
    94661U,	// LD3Threev8h
    5603781U,	// LD3Threev8h_POST
    6132165U,	// LD3i16
    8495557U,	// LD3i16_POST
    6140357U,	// LD3i32
    8765893U,	// LD3i32_POST
    6148549U,	// LD3i64
    9036229U,	// LD3i64_POST
    6156741U,	// LD3i8
    9306565U,	// LD3i8_POST
    37341U,	// LD4Fourv16b
    3711453U,	// LD4Fourv16b_POST
    53725U,	// LD4Fourv2d
    3727837U,	// LD4Fourv2d_POST
    61917U,	// LD4Fourv2s
    3998173U,	// LD4Fourv2s_POST
    70109U,	// LD4Fourv4h
    4006365U,	// LD4Fourv4h_POST
    78301U,	// LD4Fourv4s
    3752413U,	// LD4Fourv4s_POST
    86493U,	// LD4Fourv8b
    4022749U,	// LD4Fourv8b_POST
    94685U,	// LD4Fourv8h
    3768797U,	// LD4Fourv8h_POST
    38787U,	// LD4Rv16b
    5023619U,	// LD4Rv16b_POST
    46979U,	// LD4Rv1d
    3983235U,	// LD4Rv1d_POST
    55171U,	// LD4Rv2d
    3991427U,	// LD4Rv2d_POST
    63363U,	// LD4Rv2s
    4261763U,	// LD4Rv2s_POST
    71555U,	// LD4Rv4h
    4532099U,	// LD4Rv4h_POST
    79747U,	// LD4Rv4s
    4278147U,	// LD4Rv4s_POST
    87939U,	// LD4Rv8b
    5072771U,	// LD4Rv8b_POST
    96131U,	// LD4Rv8h
    4556675U,	// LD4Rv8h_POST
    6132189U,	// LD4i16
    6922717U,	// LD4i16_POST
    6140381U,	// LD4i32
    7455197U,	// LD4i32_POST
    6148573U,	// LD4i64
    9560541U,	// LD4i64_POST
    6156765U,	// LD4i8
    6685149U,	// LD4i8_POST
    26485304U,	// LDARB
    26485801U,	// LDARH
    26486665U,	// LDARW
    26486665U,	// LDARX
    553920315U,	// LDAXPW
    553920315U,	// LDAXPX
    26485358U,	// LDAXRB
    26485855U,	// LDAXRH
    26486787U,	// LDAXRW
    26486787U,	// LDAXRX
    553920258U,	// LDNPDi
    553920258U,	// LDNPQi
    553920258U,	// LDNPSi
    553920258U,	// LDNPWi
    553920258U,	// LDNPXi
    553920190U,	// LDPDi
    604276414U,	// LDPDpost
    604276414U,	// LDPDpre
    553920190U,	// LDPQi
    604276414U,	// LDPQpost
    604276414U,	// LDPQpre
    553920974U,	// LDPSWi
    604277198U,	// LDPSWpost
    604277198U,	// LDPSWpre
    553920190U,	// LDPSi
    604276414U,	// LDPSpost
    604276414U,	// LDPSpre
    553920190U,	// LDPWi
    604276414U,	// LDPWpost
    604276414U,	// LDPWpre
    553920190U,	// LDPXi
    604276414U,	// LDPXpost
    604276414U,	// LDPXpre
    1150583359U,	// LDRBBpost
    76841535U,	// LDRBBpre
    26485311U,	// LDRBBroW
    26485311U,	// LDRBBroX
    26485311U,	// LDRBBui
    1150584728U,	// LDRBpost
    76842904U,	// LDRBpre
    26486680U,	// LDRBroW
    26486680U,	// LDRBroX
    26486680U,	// LDRBui
    100935576U,	// LDRDl
    1150584728U,	// LDRDpost
    76842904U,	// LDRDpre
    26486680U,	// LDRDroW
    26486680U,	// LDRDroX
    26486680U,	// LDRDui
    1150583856U,	// LDRHHpost
    76842032U,	// LDRHHpre
    26485808U,	// LDRHHroW
    26485808U,	// LDRHHroX
    26485808U,	// LDRHHui
    1150584728U,	// LDRHpost
    76842904U,	// LDRHpre
    26486680U,	// LDRHroW
    26486680U,	// LDRHroX
    26486680U,	// LDRHui
    100935576U,	// LDRQl
    1150584728U,	// LDRQpost
    76842904U,	// LDRQpre
    26486680U,	// LDRQroW
    26486680U,	// LDRQroX
    26486680U,	// LDRQui
    1150583446U,	// LDRSBWpost
    76841622U,	// LDRSBWpre
    26485398U,	// LDRSBWroW
    26485398U,	// LDRSBWroX
    26485398U,	// LDRSBWui
    1150583446U,	// LDRSBXpost
    76841622U,	// LDRSBXpre
    26485398U,	// LDRSBXroW
    26485398U,	// LDRSBXroX
    26485398U,	// LDRSBXui
    1150583933U,	// LDRSHWpost
    76842109U,	// LDRSHWpre
    26485885U,	// LDRSHWroW
    26485885U,	// LDRSHWroX
    26485885U,	// LDRSHWui
    1150583933U,	// LDRSHXpost
    76842109U,	// LDRSHXpre
    26485885U,	// LDRSHXroW
    26485885U,	// LDRSHXroX
    26485885U,	// LDRSHXui
    100936149U,	// LDRSWl
    1150585301U,	// LDRSWpost
    76843477U,	// LDRSWpre
    26487253U,	// LDRSWroW
    26487253U,	// LDRSWroX
    26487253U,	// LDRSWui
    100935576U,	// LDRSl
    1150584728U,	// LDRSpost
    76842904U,	// LDRSpre
    26486680U,	// LDRSroW
    26486680U,	// LDRSroX
    26486680U,	// LDRSui
    100935576U,	// LDRWl
    1150584728U,	// LDRWpost
    76842904U,	// LDRWpre
    26486680U,	// LDRWroW
    26486680U,	// LDRWroX
    26486680U,	// LDRWui
    100935576U,	// LDRXl
    1150584728U,	// LDRXpost
    76842904U,	// LDRXpre
    26486680U,	// LDRXroW
    26486680U,	// LDRXroX
    26486680U,	// LDRXui
    26485324U,	// LDTRBi
    26485821U,	// LDTRHi
    26485405U,	// LDTRSBWi
    26485405U,	// LDTRSBXi
    26485892U,	// LDTRSHWi
    26485892U,	// LDTRSHXi
    26487260U,	// LDTRSWi
    26486752U,	// LDTRWi
    26486752U,	// LDTRXi
    26485344U,	// LDURBBi
    26486775U,	// LDURBi
    26486775U,	// LDURDi
    26485841U,	// LDURHHi
    26486775U,	// LDURHi
    26486775U,	// LDURQi
    26485413U,	// LDURSBWi
    26485413U,	// LDURSBXi
    26485900U,	// LDURSHWi
    26485900U,	// LDURSHXi
    26487268U,	// LDURSWi
    26486775U,	// LDURSi
    26486775U,	// LDURWi
    26486775U,	// LDURXi
    553920343U,	// LDXPW
    553920343U,	// LDXPX
    26485366U,	// LDXRB
    26485863U,	// LDXRH
    26486794U,	// LDXRW
    26486794U,	// LDXRX
    0U,	// LOADgot
    17049003U,	// LSLVWr
    17049003U,	// LSLVXr
    17049558U,	// LSRVWr
    17049558U,	// LSRVXr
    17048395U,	// MADDWrrr
    17048395U,	// MADDXrrr
    2181050875U,	// MLAv16i8
    2718446075U,	// MLAv2i32
    2718446075U,	// MLAv2i32_indexed
    3255841275U,	// MLAv4i16
    3255841275U,	// MLAv4i16_indexed
    1108619771U,	// MLAv4i32
    1108619771U,	// MLAv4i32_indexed
    1645752827U,	// MLAv8i16
    1645752827U,	// MLAv8i16_indexed
    3793498619U,	// MLAv8i8
    2181052514U,	// MLSv16i8
    2718447714U,	// MLSv2i32
    2718447714U,	// MLSv2i32_indexed
    3255842914U,	// MLSv4i16
    3255842914U,	// MLSv4i16_indexed
    1108621410U,	// MLSv4i32
    1108621410U,	// MLSv4i32_indexed
    1645754466U,	// MLSv8i16
    1645754466U,	// MLSv8i16_indexed
    3793500258U,	// MLSv8i8
    168043698U,	// MOVID
    721425586U,	// MOVIv16b_ns
    168563890U,	// MOVIv2d_ns
    1795691698U,	// MOVIv2i32
    1795691698U,	// MOVIv2s_msl
    1796215986U,	// MOVIv4i16
    1796478130U,	// MOVIv4i32
    1796478130U,	// MOVIv4s_msl
    723260594U,	// MOVIv8b_ns
    1796740274U,	// MOVIv8i16
    84157629U,	// MOVKWi
    84157629U,	// MOVKXi
    1795434146U,	// MOVNWi
    1795434146U,	// MOVNXi
    1795435093U,	// MOVZWi
    1795435093U,	// MOVZXi
    0U,	// MOVaddr
    0U,	// MOVaddrBA
    0U,	// MOVaddrCP
    0U,	// MOVaddrEXT
    0U,	// MOVaddrJT
    0U,	// MOVaddrTLS
    0U,	// MOVi32imm
    0U,	// MOVi64imm
    201599116U,	// MRS
    137179U,	// MSR
    141275U,	// MSRpstate
    17048258U,	// MSUBWrrr
    17048258U,	// MSUBXrrr
    2147489228U,	// MULv16i8
    2684884428U,	// MULv2i32
    2684884428U,	// MULv2i32_indexed
    3222279628U,	// MULv4i16
    3222279628U,	// MULv4i16_indexed
    1075058124U,	// MULv4i32
    1075058124U,	// MULv4i32_indexed
    1612191180U,	// MULv8i16
    1612191180U,	// MULv8i16_indexed
    3759936972U,	// MULv8i8
    1795691679U,	// MVNIv2i32
    1795691679U,	// MVNIv2s_msl
    1796215967U,	// MVNIv4i16
    1796478111U,	// MVNIv4i32
    1796478111U,	// MVNIv4s_msl
    1796740255U,	// MVNIv8i16
    5076U,	// NEGv16i8
    553919444U,	// NEGv1i64
    1074271188U,	// NEGv2i32
    1611404244U,	// NEGv2i64
    2148537300U,	// NEGv4i16
    2685670356U,	// NEGv4i32
    3222803412U,	// NEGv8i16
    3759936468U,	// NEGv8i8
    6353U,	// NOTv16i8
    3759937745U,	// NOTv8i8
    0U,	// ORNWrr
    17049189U,	// ORNWrs
    0U,	// ORNXrr
    17049189U,	// ORNXrs
    2147489381U,	// ORNv16i8
    3759937125U,	// ORNv8i8
    17049548U,	// ORRWri
    0U,	// ORRWrr
    17049548U,	// ORRWrs
    17049548U,	// ORRXri
    0U,	// ORRXrr
    17049548U,	// ORRXrs
    2147489740U,	// ORRv16i8
    84424652U,	// ORRv2i32
    84948940U,	// ORRv4i16
    85211084U,	// ORRv4i32
    85473228U,	// ORRv8i16
    3759937484U,	// ORRv8i8
    2149060822U,	// PMULLv16i8
    228070797U,	// PMULLv1i64
    244846806U,	// PMULLv2i64
    3759674765U,	// PMULLv8i8
    2147489240U,	// PMULv16i8
    3759936984U,	// PMULv8i8
    101070321U,	// PRFMl
    26621425U,	// PRFMroW
    26621425U,	// PRFMroX
    26621425U,	// PRFMui
    26621455U,	// PRFUMi
    537400862U,	// RADDHNv2i64_v2i32
    571748633U,	// RADDHNv2i64_v4i32
    1074796062U,	// RADDHNv4i32_v4i16
    1108881689U,	// RADDHNv4i32_v8i16
    1644179737U,	// RADDHNv8i16_v16i8
    1612453406U,	// RADDHNv8i16_v8i8
    553920698U,	// RBITWr
    553920698U,	// RBITXr
    6330U,	// RBITv16i8
    3759937722U,	// RBITv8i8
    2107559U,	// RET
    0U,	// RET_ReallyLR
    553918951U,	// REV16Wr
    553918951U,	// REV16Xr
    4583U,	// REV16v16i8
    3759935975U,	// REV16v8i8
    553918540U,	// REV32Xr
    4172U,	// REV32v16i8
    2148536396U,	// REV32v4i16
    3222802508U,	// REV32v8i16
    3759935564U,	// REV32v8i8
    4566U,	// REV64v16i8
    1074270678U,	// REV64v2i32
    2148536790U,	// REV64v4i16
    2685669846U,	// REV64v4i32
    3222802902U,	// REV64v8i16
    3759935958U,	// REV64v8i8
    553920805U,	// REVWr
    553920805U,	// REVXr
    17049543U,	// RORVWr
    17049543U,	// RORVXr
    1644179766U,	// RSHRNv16i8_shift
    537400917U,	// RSHRNv2i32_shift
    1074796117U,	// RSHRNv4i16_shift
    571748662U,	// RSHRNv4i32_shift
    1108881718U,	// RSHRNv8i16_shift
    1612453461U,	// RSHRNv8i8_shift
    537400854U,	// RSUBHNv2i64_v2i32
    571748624U,	// RSUBHNv2i64_v4i32
    1074796054U,	// RSUBHNv4i32_v4i16
    1108881680U,	// RSUBHNv4i32_v8i16
    1644179728U,	// RSUBHNv8i16_v16i8
    1612453398U,	// RSUBHNv8i16_v8i8
    2182623330U,	// SABALv16i8_v8i16
    2718708931U,	// SABALv2i32_v2i64
    3256104131U,	// SABALv4i16_v4i32
    1108095074U,	// SABALv4i32_v2i64
    1645490274U,	// SABALv8i16_v4i32
    3793237187U,	// SABALv8i8_v8i16
    2181050862U,	// SABAv16i8
    2718446062U,	// SABAv2i32
    3255841262U,	// SABAv4i16
    1108619758U,	// SABAv4i32
    1645752814U,	// SABAv8i16
    3793498606U,	// SABAv8i8
    2149060764U,	// SABDLv16i8_v8i16
    2685146379U,	// SABDLv2i32_v2i64
    3222541579U,	// SABDLv4i16_v4i32
    1074532508U,	// SABDLv4i32_v2i64
    1611927708U,	// SABDLv8i16_v4i32
    3759674635U,	// SABDLv8i8_v8i16
    2147488538U,	// SABDv16i8
    2684883738U,	// SABDv2i32
    3222278938U,	// SABDv4i16
    1075057434U,	// SABDv4i32
    1612190490U,	// SABDv8i16
    3759936282U,	// SABDv8i8
    35141315U,	// SADALPv16i8_v8i16
    1117533891U,	// SADALPv2i32_v1i64
    2181576387U,	// SADALPv4i16_v2i32
    2718709443U,	// SADALPv4i32_v2i64
    3256104643U,	// SADALPv8i16_v4i32
    3792713411U,	// SADALPv8i8_v4i16
    1578707U,	// SADDLPv16i8_v8i16
    1083971283U,	// SADDLPv2i32_v1i64
    2148013779U,	// SADDLPv4i16_v2i32
    2685146835U,	// SADDLPv4i32_v2i64
    3222542035U,	// SADDLPv8i16_v4i32
    3759150803U,	// SADDLPv8i8_v4i16
    272700U,	// SADDLVv16i8v
    2147756348U,	// SADDLVv4i16v
    2684627260U,	// SADDLVv4i32v
    3221498172U,	// SADDLVv8i16v
    3758369084U,	// SADDLVv8i8v
    2149060780U,	// SADDLv16i8_v8i16
    2685146409U,	// SADDLv2i32_v2i64
    3222541609U,	// SADDLv4i16_v4i32
    1074532524U,	// SADDLv4i32_v2i64
    1611927724U,	// SADDLv8i16_v4i32
    3759674665U,	// SADDLv8i8_v8i16
    1612190133U,	// SADDWv16i8_v8i16
    537663936U,	// SADDWv2i32_v2i64
    1075059136U,	// SADDWv4i16_v4i32
    537661877U,	// SADDWv4i32_v2i64
    1075057077U,	// SADDWv8i16_v4i32
    1612192192U,	// SADDWv8i8_v8i16
    17049656U,	// SBCSWr
    17049656U,	// SBCSXr
    17048293U,	// SBCWr
    17048293U,	// SBCXr
    17049061U,	// SBFMWri
    17049061U,	// SBFMXri
    17048517U,	// SCVTFSWDri
    17048517U,	// SCVTFSWSri
    17048517U,	// SCVTFSXDri
    17048517U,	// SCVTFSXSri
    553919429U,	// SCVTFUWDri
    553919429U,	// SCVTFUWSri
    553919429U,	// SCVTFUXDri
    553919429U,	// SCVTFUXSri
    17048517U,	// SCVTFd
    17048517U,	// SCVTFs
    553919429U,	// SCVTFv1i32
    553919429U,	// SCVTFv1i64
    1074271173U,	// SCVTFv2f32
    1611404229U,	// SCVTFv2f64
    2684883909U,	// SCVTFv2i32_shift
    537662405U,	// SCVTFv2i64_shift
    2685670341U,	// SCVTFv4f32
    1075057605U,	// SCVTFv4i32_shift
    17049904U,	// SDIVWr
    17049904U,	// SDIVXr
    17049904U,	// SDIV_IntWr
    17049904U,	// SDIV_IntXr
    67404510U,	// SHA1Crrr
    553919463U,	// SHA1Hrr
    67405278U,	// SHA1Mrrr
    67405488U,	// SHA1Prrr
    1108619265U,	// SHA1SU0rrr
    2719232056U,	// SHA1SU1rr
    67403864U,	// SHA256H2rrr
    67404790U,	// SHA256Hrrr
    2719232010U,	// SHA256SU0rr
    1108619329U,	// SHA256SU1rrr
    2147488572U,	// SHADDv16i8
    2684883772U,	// SHADDv2i32
    3222278972U,	// SHADDv4i16
    1075057468U,	// SHADDv4i32
    1612190524U,	// SHADDv8i16
    3759936316U,	// SHADDv8i8
    2149060797U,	// SHLLv16i8
    2685146487U,	// SHLLv2i32
    3222541687U,	// SHLLv4i16
    3758887101U,	// SHLLv4i32
    1315005U,	// SHLLv8i16
    538449271U,	// SHLLv8i8
    17048896U,	// SHLd
    2147489088U,	// SHLv16i8_shift
    2684884288U,	// SHLv2i32_shift
    537662784U,	// SHLv2i64_shift
    3222279488U,	// SHLv4i16_shift
    1075057984U,	// SHLv4i32_shift
    1612191040U,	// SHLv8i16_shift
    3759936832U,	// SHLv8i8_shift
    1644179748U,	// SHRNv16i8_shift
    537400901U,	// SHRNv2i32_shift
    1074796101U,	// SHRNv4i16_shift
    571748644U,	// SHRNv4i32_shift
    1108881700U,	// SHRNv8i16_shift
    1612453445U,	// SHRNv8i8_shift
    2147488435U,	// SHSUBv16i8
    2684883635U,	// SHSUBv2i32
    3222278835U,	// SHSUBv4i16
    1075057331U,	// SHSUBv4i32
    1612190387U,	// SHSUBv8i16
    3759936179U,	// SHSUBv8i8
    67404954U,	// SLId
    2181051546U,	// SLIv16i8_shift
    2718446746U,	// SLIv2i32_shift
    571225242U,	// SLIv2i64_shift
    3255841946U,	// SLIv4i16_shift
    1108620442U,	// SLIv4i32_shift
    1645753498U,	// SLIv8i16_shift
    3793499290U,	// SLIv8i8_shift
    17048857U,	// SMADDLrrr
    2147489609U,	// SMAXPv16i8
    2684884809U,	// SMAXPv2i32
    3222280009U,	// SMAXPv4i16
    1075058505U,	// SMAXPv4i32
    1612191561U,	// SMAXPv8i16
    3759937353U,	// SMAXPv8i8
    272787U,	// SMAXVv16i8v
    2147756435U,	// SMAXVv4i16v
    2684627347U,	// SMAXVv4i32v
    3221498259U,	// SMAXVv8i16v
    3758369171U,	// SMAXVv8i8v
    2147490298U,	// SMAXv16i8
    2684885498U,	// SMAXv2i32
    3222280698U,	// SMAXv4i16
    1075059194U,	// SMAXv4i32
    1612192250U,	// SMAXv8i16
    3759938042U,	// SMAXv8i8
    21246U,	// SMC
    2147489551U,	// SMINPv16i8
    2684884751U,	// SMINPv2i32
    3222279951U,	// SMINPv4i16
    1075058447U,	// SMINPv4i32
    1612191503U,	// SMINPv8i16
    3759937295U,	// SMINPv8i8
    272741U,	// SMINVv16i8v
    2147756389U,	// SMINVv4i16v
    2684627301U,	// SMINVv4i32v
    3221498213U,	// SMINVv8i16v
    3758369125U,	// SMINVv8i8v
    2147489324U,	// SMINv16i8
    2684884524U,	// SMINv2i32
    3222279724U,	// SMINv4i16
    1075058220U,	// SMINv4i32
    1612191276U,	// SMINv8i16
    3759937068U,	// SMINv8i8
    2182623356U,	// SMLALv16i8_v8i16
    2718708954U,	// SMLALv2i32_indexed
    2718708954U,	// SMLALv2i32_v2i64
    3256104154U,	// SMLALv4i16_indexed
    3256104154U,	// SMLALv4i16_v4i32
    1108095100U,	// SMLALv4i32_indexed
    1108095100U,	// SMLALv4i32_v2i64
    1645490300U,	// SMLALv8i16_indexed
    1645490300U,	// SMLALv8i16_v4i32
    3793237210U,	// SMLALv8i8_v8i16
    2182623480U,	// SMLSLv16i8_v8i16
    2718709168U,	// SMLSLv2i32_indexed
    2718709168U,	// SMLSLv2i32_v2i64
    3256104368U,	// SMLSLv4i16_indexed
    3256104368U,	// SMLSLv4i16_v4i32
    1108095224U,	// SMLSLv4i32_indexed
    1108095224U,	// SMLSLv4i32_v2i64
    1645490424U,	// SMLSLv8i16_indexed
    1645490424U,	// SMLSLv8i16_v4i32
    3793237424U,	// SMLSLv8i8_v8i16
    272768U,	// SMOVvi16to32
    272768U,	// SMOVvi16to64
    537143680U,	// SMOVvi32to64
    1610885504U,	// SMOVvi8to32
    1610885504U,	// SMOVvi8to64
    17048813U,	// SMSUBLrrr
    17048603U,	// SMULHrr
    2149060830U,	// SMULLv16i8_v8i16
    2685146516U,	// SMULLv2i32_indexed
    2685146516U,	// SMULLv2i32_v2i64
    3222541716U,	// SMULLv4i16_indexed
    3222541716U,	// SMULLv4i16_v4i32
    1074532574U,	// SMULLv4i32_indexed
    1074532574U,	// SMULLv4i32_v2i64
    1611927774U,	// SMULLv8i16_indexed
    1611927774U,	// SMULLv8i16_v4i32
    3759674772U,	// SMULLv8i8_v8i16
    6187U,	// SQABSv16i8
    553920555U,	// SQABSv1i16
    553920555U,	// SQABSv1i32
    553920555U,	// SQABSv1i64
    553920555U,	// SQABSv1i8
    1074272299U,	// SQABSv2i32
    1611405355U,	// SQABSv2i64
    2148538411U,	// SQABSv4i16
    2685671467U,	// SQABSv4i32
    3222804523U,	// SQABSv8i16
    3759937579U,	// SQABSv8i8
    2147488602U,	// SQADDv16i8
    17048410U,	// SQADDv1i16
    17048410U,	// SQADDv1i32
    17048410U,	// SQADDv1i64
    17048410U,	// SQADDv1i8
    2684883802U,	// SQADDv2i32
    537662298U,	// SQADDv2i64
    3222279002U,	// SQADDv4i16
    1075057498U,	// SQADDv4i32
    1612190554U,	// SQADDv8i16
    3759936346U,	// SQADDv8i8
    67405009U,	// SQDMLALi16
    67405009U,	// SQDMLALi32
    67405009U,	// SQDMLALv1i32_indexed
    67405009U,	// SQDMLALv1i64_indexed
    2718708945U,	// SQDMLALv2i32_indexed
    2718708945U,	// SQDMLALv2i32_v2i64
    3256104145U,	// SQDMLALv4i16_indexed
    3256104145U,	// SQDMLALv4i16_v4i32
    1108095090U,	// SQDMLALv4i32_indexed
    1108095090U,	// SQDMLALv4i32_v2i64
    1645490290U,	// SQDMLALv8i16_indexed
    1645490290U,	// SQDMLALv8i16_v4i32
    67405223U,	// SQDMLSLi16
    67405223U,	// SQDMLSLi32
    67405223U,	// SQDMLSLv1i32_indexed
    67405223U,	// SQDMLSLv1i64_indexed
    2718709159U,	// SQDMLSLv2i32_indexed
    2718709159U,	// SQDMLSLv2i32_v2i64
    3256104359U,	// SQDMLSLv4i16_indexed
    3256104359U,	// SQDMLSLv4i16_v4i32
    1108095214U,	// SQDMLSLv4i32_indexed
    1108095214U,	// SQDMLSLv4i32_v2i64
    1645490414U,	// SQDMLSLv8i16_indexed
    1645490414U,	// SQDMLSLv8i16_v4i32
    17048584U,	// SQDMULHv1i16
    17048584U,	// SQDMULHv1i16_indexed
    17048584U,	// SQDMULHv1i32
    17048584U,	// SQDMULHv1i32_indexed
    2684883976U,	// SQDMULHv2i32
    2684883976U,	// SQDMULHv2i32_indexed
    3222279176U,	// SQDMULHv4i16
    3222279176U,	// SQDMULHv4i16_indexed
    1075057672U,	// SQDMULHv4i32
    1075057672U,	// SQDMULHv4i32_indexed
    1612190728U,	// SQDMULHv8i16
    1612190728U,	// SQDMULHv8i16_indexed
    17048964U,	// SQDMULLi16
    17048964U,	// SQDMULLi32
    17048964U,	// SQDMULLv1i32_indexed
    17048964U,	// SQDMULLv1i64_indexed
    2685146500U,	// SQDMULLv2i32_indexed
    2685146500U,	// SQDMULLv2i32_v2i64
    3222541700U,	// SQDMULLv4i16_indexed
    3222541700U,	// SQDMULLv4i16_v4i32
    1074532556U,	// SQDMULLv4i32_indexed
    1074532556U,	// SQDMULLv4i32_v2i64
    1611927756U,	// SQDMULLv8i16_indexed
    1611927756U,	// SQDMULLv8i16_v4i32
    5081U,	// SQNEGv16i8
    553919449U,	// SQNEGv1i16
    553919449U,	// SQNEGv1i32
    553919449U,	// SQNEGv1i64
    553919449U,	// SQNEGv1i8
    1074271193U,	// SQNEGv2i32
    1611404249U,	// SQNEGv2i64
    2148537305U,	// SQNEGv4i16
    2685670361U,	// SQNEGv4i32
    3222803417U,	// SQNEGv8i16
    3759936473U,	// SQNEGv8i8
    17048593U,	// SQRDMULHv1i16
    17048593U,	// SQRDMULHv1i16_indexed
    17048593U,	// SQRDMULHv1i32
    17048593U,	// SQRDMULHv1i32_indexed
    2684883985U,	// SQRDMULHv2i32
    2684883985U,	// SQRDMULHv2i32_indexed
    3222279185U,	// SQRDMULHv4i16
    3222279185U,	// SQRDMULHv4i16_indexed
    1075057681U,	// SQRDMULHv4i32
    1075057681U,	// SQRDMULHv4i32_indexed
    1612190737U,	// SQRDMULHv8i16
    1612190737U,	// SQRDMULHv8i16_indexed
    2147489100U,	// SQRSHLv16i8
    17048908U,	// SQRSHLv1i16
    17048908U,	// SQRSHLv1i32
    17048908U,	// SQRSHLv1i64
    17048908U,	// SQRSHLv1i8
    2684884300U,	// SQRSHLv2i32
    537662796U,	// SQRSHLv2i64
    3222279500U,	// SQRSHLv4i16
    1075057996U,	// SQRSHLv4i32
    1612191052U,	// SQRSHLv8i16
    3759936844U,	// SQRSHLv8i8
    17049171U,	// SQRSHRNb
    17049171U,	// SQRSHRNh
    17049171U,	// SQRSHRNs
    1644179764U,	// SQRSHRNv16i8_shift
    537400915U,	// SQRSHRNv2i32_shift
    1074796115U,	// SQRSHRNv4i16_shift
    571748660U,	// SQRSHRNv4i32_shift
    1108881716U,	// SQRSHRNv8i16_shift
    1612453459U,	// SQRSHRNv8i8_shift
    17049232U,	// SQRSHRUNb
    17049232U,	// SQRSHRUNh
    17049232U,	// SQRSHRUNs
    1644179824U,	// SQRSHRUNv16i8_shift
    537400976U,	// SQRSHRUNv2i32_shift
    1074796176U,	// SQRSHRUNv4i16_shift
    571748720U,	// SQRSHRUNv4i32_shift
    1108881776U,	// SQRSHRUNv8i16_shift
    1612453520U,	// SQRSHRUNv8i8_shift
    17049847U,	// SQSHLUb
    17049847U,	// SQSHLUd
    17049847U,	// SQSHLUh
    17049847U,	// SQSHLUs
    2147490039U,	// SQSHLUv16i8_shift
    2684885239U,	// SQSHLUv2i32_shift
    537663735U,	// SQSHLUv2i64_shift
    3222280439U,	// SQSHLUv4i16_shift
    1075058935U,	// SQSHLUv4i32_shift
    1612191991U,	// SQSHLUv8i16_shift
    3759937783U,	// SQSHLUv8i8_shift
    17048894U,	// SQSHLb
    17048894U,	// SQSHLd
    17048894U,	// SQSHLh
    17048894U,	// SQSHLs
    2147489086U,	// SQSHLv16i8
    2147489086U,	// SQSHLv16i8_shift
    17048894U,	// SQSHLv1i16
    17048894U,	// SQSHLv1i32
    17048894U,	// SQSHLv1i64
    17048894U,	// SQSHLv1i8
    2684884286U,	// SQSHLv2i32
    2684884286U,	// SQSHLv2i32_shift
    537662782U,	// SQSHLv2i64
    537662782U,	// SQSHLv2i64_shift
    3222279486U,	// SQSHLv4i16
    3222279486U,	// SQSHLv4i16_shift
    1075057982U,	// SQSHLv4i32
    1075057982U,	// SQSHLv4i32_shift
    1612191038U,	// SQSHLv8i16
    1612191038U,	// SQSHLv8i16_shift
    3759936830U,	// SQSHLv8i8
    3759936830U,	// SQSHLv8i8_shift
    17049155U,	// SQSHRNb
    17049155U,	// SQSHRNh
    17049155U,	// SQSHRNs
    1644179746U,	// SQSHRNv16i8_shift
    537400899U,	// SQSHRNv2i32_shift
    1074796099U,	// SQSHRNv4i16_shift
    571748642U,	// SQSHRNv4i32_shift
    1108881698U,	// SQSHRNv8i16_shift
    1612453443U,	// SQSHRNv8i8_shift
    17049223U,	// SQSHRUNb
    17049223U,	// SQSHRUNh
    17049223U,	// SQSHRUNs
    1644179814U,	// SQSHRUNv16i8_shift
    537400967U,	// SQSHRUNv2i32_shift
    1074796167U,	// SQSHRUNv4i16_shift
    571748710U,	// SQSHRUNv4i32_shift
    1108881766U,	// SQSHRUNv8i16_shift
    1612453511U,	// SQSHRUNv8i8_shift
    2147488464U,	// SQSUBv16i8
    17048272U,	// SQSUBv1i16
    17048272U,	// SQSUBv1i32
    17048272U,	// SQSUBv1i64
    17048272U,	// SQSUBv1i8
    2684883664U,	// SQSUBv2i32
    537662160U,	// SQSUBv2i64
    3222278864U,	// SQSUBv4i16
    1075057360U,	// SQSUBv4i32
    1612190416U,	// SQSUBv8i16
    3759936208U,	// SQSUBv8i8
    3254792534U,	// SQXTNv16i8
    553920121U,	// SQXTNv1i16
    553920121U,	// SQXTNv1i32
    553920121U,	// SQXTNv1i8
    1611142777U,	// SQXTNv2i32
    2685408889U,	// SQXTNv4i16
    1645490518U,	// SQXTNv4i32
    2719494486U,	// SQXTNv8i16
    3223066233U,	// SQXTNv8i8
    3254792571U,	// SQXTUNv16i8
    553920154U,	// SQXTUNv1i16
    553920154U,	// SQXTUNv1i32
    553920154U,	// SQXTUNv1i8
    1611142810U,	// SQXTUNv2i32
    2685408922U,	// SQXTUNv4i16
    1645490555U,	// SQXTUNv4i32
    2719494523U,	// SQXTUNv8i16
    3223066266U,	// SQXTUNv8i8
    2147488556U,	// SRHADDv16i8
    2684883756U,	// SRHADDv2i32
    3222278956U,	// SRHADDv4i16
    1075057452U,	// SRHADDv4i32
    1612190508U,	// SRHADDv8i16
    3759936300U,	// SRHADDv8i8
    67404965U,	// SRId
    2181051557U,	// SRIv16i8_shift
    2718446757U,	// SRIv2i32_shift
    571225253U,	// SRIv2i64_shift
    3255841957U,	// SRIv4i16_shift
    1108620453U,	// SRIv4i32_shift
    1645753509U,	// SRIv8i16_shift
    3793499301U,	// SRIv8i8_shift
    2147489116U,	// SRSHLv16i8
    17048924U,	// SRSHLv1i64
    2684884316U,	// SRSHLv2i32
    537662812U,	// SRSHLv2i64
    3222279516U,	// SRSHLv4i16
    1075058012U,	// SRSHLv4i32
    1612191068U,	// SRSHLv8i16
    3759936860U,	// SRSHLv8i8
    17049501U,	// SRSHRd
    2147489693U,	// SRSHRv16i8_shift
    2684884893U,	// SRSHRv2i32_shift
    537663389U,	// SRSHRv2i64_shift
    3222280093U,	// SRSHRv4i16_shift
    1075058589U,	// SRSHRv4i32_shift
    1612191645U,	// SRSHRv8i16_shift
    3759937437U,	// SRSHRv8i8_shift
    67404288U,	// SRSRAd
    2181050880U,	// SRSRAv16i8_shift
    2718446080U,	// SRSRAv2i32_shift
    571224576U,	// SRSRAv2i64_shift
    3255841280U,	// SRSRAv4i16_shift
    1108619776U,	// SRSRAv4i32_shift
    1645752832U,	// SRSRAv8i16_shift
    3793498624U,	// SRSRAv8i8_shift
    2149060796U,	// SSHLLv16i8_shift
    2685146486U,	// SSHLLv2i32_shift
    3222541686U,	// SSHLLv4i16_shift
    1074532540U,	// SSHLLv4i32_shift
    1611927740U,	// SSHLLv8i16_shift
    3759674742U,	// SSHLLv8i8_shift
    2147489130U,	// SSHLv16i8
    17048938U,	// SSHLv1i64
    2684884330U,	// SSHLv2i32
    537662826U,	// SSHLv2i64
    3222279530U,	// SSHLv4i16
    1075058026U,	// SSHLv4i32
    1612191082U,	// SSHLv8i16
    3759936874U,	// SSHLv8i8
    17049515U,	// SSHRd
    2147489707U,	// SSHRv16i8_shift
    2684884907U,	// SSHRv2i32_shift
    537663403U,	// SSHRv2i64_shift
    3222280107U,	// SSHRv4i16_shift
    1075058603U,	// SSHRv4i32_shift
    1612191659U,	// SSHRv8i16_shift
    3759937451U,	// SSHRv8i8_shift
    67404302U,	// SSRAd
    2181050894U,	// SSRAv16i8_shift
    2718446094U,	// SSRAv2i32_shift
    571224590U,	// SSRAv2i64_shift
    3255841294U,	// SSRAv4i16_shift
    1108619790U,	// SSRAv4i32_shift
    1645752846U,	// SSRAv8i16_shift
    3793498638U,	// SSRAv8i8_shift
    2149060748U,	// SSUBLv16i8_v8i16
    2685146365U,	// SSUBLv2i32_v2i64
    3222541565U,	// SSUBLv4i16_v4i32
    1074532492U,	// SSUBLv4i32_v2i64
    1611927692U,	// SSUBLv8i16_v4i32
    3759674621U,	// SSUBLv8i8_v8i16
    1612190117U,	// SSUBWv16i8_v8i16
    537663913U,	// SSUBWv2i32_v2i64
    1075059113U,	// SSUBWv4i16_v4i32
    537661861U,	// SSUBWv4i32_v2i64
    1075057061U,	// SSUBWv8i16_v4i32
    1612192169U,	// SSUBWv8i8_v8i16
    36915U,	// ST1Fourv16b
    3711027U,	// ST1Fourv16b_POST
    45107U,	// ST1Fourv1d
    3981363U,	// ST1Fourv1d_POST
    53299U,	// ST1Fourv2d
    3727411U,	// ST1Fourv2d_POST
    61491U,	// ST1Fourv2s
    3997747U,	// ST1Fourv2s_POST
    69683U,	// ST1Fourv4h
    4005939U,	// ST1Fourv4h_POST
    77875U,	// ST1Fourv4s
    3751987U,	// ST1Fourv4s_POST
    86067U,	// ST1Fourv8b
    4022323U,	// ST1Fourv8b_POST
    94259U,	// ST1Fourv8h
    3768371U,	// ST1Fourv8h_POST
    36915U,	// ST1Onev16b
    4235315U,	// ST1Onev16b_POST
    45107U,	// ST1Onev1d
    4505651U,	// ST1Onev1d_POST
    53299U,	// ST1Onev2d
    4251699U,	// ST1Onev2d_POST
    61491U,	// ST1Onev2s
    4522035U,	// ST1Onev2s_POST
    69683U,	// ST1Onev4h
    4530227U,	// ST1Onev4h_POST
    77875U,	// ST1Onev4s
    4276275U,	// ST1Onev4s_POST
    86067U,	// ST1Onev8b
    4546611U,	// ST1Onev8b_POST
    94259U,	// ST1Onev8h
    4292659U,	// ST1Onev8h_POST
    36915U,	// ST1Threev16b
    5546035U,	// ST1Threev16b_POST
    45107U,	// ST1Threev1d
    5816371U,	// ST1Threev1d_POST
    53299U,	// ST1Threev2d
    5562419U,	// ST1Threev2d_POST
    61491U,	// ST1Threev2s
    5832755U,	// ST1Threev2s_POST
    69683U,	// ST1Threev4h
    5840947U,	// ST1Threev4h_POST
    77875U,	// ST1Threev4s
    5586995U,	// ST1Threev4s_POST
    86067U,	// ST1Threev8b
    5857331U,	// ST1Threev8b_POST
    94259U,	// ST1Threev8h
    5603379U,	// ST1Threev8h_POST
    36915U,	// ST1Twov16b
    3973171U,	// ST1Twov16b_POST
    45107U,	// ST1Twov1d
    4243507U,	// ST1Twov1d_POST
    53299U,	// ST1Twov2d
    3989555U,	// ST1Twov2d_POST
    61491U,	// ST1Twov2s
    4259891U,	// ST1Twov2s_POST
    69683U,	// ST1Twov4h
    4268083U,	// ST1Twov4h_POST
    77875U,	// ST1Twov4s
    4014131U,	// ST1Twov4s_POST
    86067U,	// ST1Twov8b
    4284467U,	// ST1Twov8b_POST
    94259U,	// ST1Twov8h
    4030515U,	// ST1Twov8h_POST
    147507U,	// ST1i16
    262246451U,	// ST1i16_POST
    151603U,	// ST1i32
    279031859U,	// ST1i32_POST
    155699U,	// ST1i64
    295817267U,	// ST1i64_POST
    159795U,	// ST1i8
    312602675U,	// ST1i8_POST
    37280U,	// ST2Twov16b
    3973536U,	// ST2Twov16b_POST
    53664U,	// ST2Twov2d
    3989920U,	// ST2Twov2d_POST
    61856U,	// ST2Twov2s
    4260256U,	// ST2Twov2s_POST
    70048U,	// ST2Twov4h
    4268448U,	// ST2Twov4h_POST
    78240U,	// ST2Twov4s
    4014496U,	// ST2Twov4s_POST
    86432U,	// ST2Twov8b
    4284832U,	// ST2Twov8b_POST
    94624U,	// ST2Twov8h
    4030880U,	// ST2Twov8h_POST
    147872U,	// ST2i16
    279024032U,	// ST2i16_POST
    151968U,	// ST2i32
    295809440U,	// ST2i32_POST
    156064U,	// ST2i64
    329372064U,	// ST2i64_POST
    160160U,	// ST2i8
    262271392U,	// ST2i8_POST
    37329U,	// ST3Threev16b
    5546449U,	// ST3Threev16b_POST
    53713U,	// ST3Threev2d
    5562833U,	// ST3Threev2d_POST
    61905U,	// ST3Threev2s
    5833169U,	// ST3Threev2s_POST
    70097U,	// ST3Threev4h
    5841361U,	// ST3Threev4h_POST
    78289U,	// ST3Threev4s
    5587409U,	// ST3Threev4s_POST
    86481U,	// ST3Threev8b
    5857745U,	// ST3Threev8b_POST
    94673U,	// ST3Threev8h
    5603793U,	// ST3Threev8h_POST
    147921U,	// ST3i16
    346132945U,	// ST3i16_POST
    152017U,	// ST3i32
    362918353U,	// ST3i32_POST
    156113U,	// ST3i64
    379703761U,	// ST3i64_POST
    160209U,	// ST3i8
    396489169U,	// ST3i8_POST
    37346U,	// ST4Fourv16b
    3711458U,	// ST4Fourv16b_POST
    53730U,	// ST4Fourv2d
    3727842U,	// ST4Fourv2d_POST
    61922U,	// ST4Fourv2s
    3998178U,	// ST4Fourv2s_POST
    70114U,	// ST4Fourv4h
    4006370U,	// ST4Fourv4h_POST
    78306U,	// ST4Fourv4s
    3752418U,	// ST4Fourv4s_POST
    86498U,	// ST4Fourv8b
    4022754U,	// ST4Fourv8b_POST
    94690U,	// ST4Fourv8h
    3768802U,	// ST4Fourv8h_POST
    147938U,	// ST4i16
    295801314U,	// ST4i16_POST
    152034U,	// ST4i32
    329363938U,	// ST4i32_POST
    156130U,	// ST4i64
    413258210U,	// ST4i64_POST
    160226U,	// ST4i8
    279048674U,	// ST4i8_POST
    26485317U,	// STLRB
    26485814U,	// STLRH
    26486716U,	// STLRW
    26486716U,	// STLRX
    17049437U,	// STLXPW
    17049437U,	// STLXPX
    553919101U,	// STLXRB
    553919598U,	// STLXRH
    553920528U,	// STLXRW
    553920528U,	// STLXRX
    553920285U,	// STNPDi
    553920285U,	// STNPQi
    553920285U,	// STNPSi
    553920285U,	// STNPWi
    553920285U,	// STNPXi
    553920305U,	// STPDi
    604276529U,	// STPDpost
    604276529U,	// STPDpre
    553920305U,	// STPQi
    604276529U,	// STPQpost
    604276529U,	// STPQpre
    553920305U,	// STPSi
    604276529U,	// STPSpost
    604276529U,	// STPSpre
    553920305U,	// STPWi
    604276529U,	// STPWpost
    604276529U,	// STPWpre
    553920305U,	// STPXi
    604276529U,	// STPXpost
    604276529U,	// STPXpre
    1150583379U,	// STRBBpost
    76841555U,	// STRBBpre
    26485331U,	// STRBBroW
    26485331U,	// STRBBroX
    26485331U,	// STRBBui
    1150584806U,	// STRBpost
    76842982U,	// STRBpre
    26486758U,	// STRBroW
    26486758U,	// STRBroX
    26486758U,	// STRBui
    1150584806U,	// STRDpost
    76842982U,	// STRDpre
    26486758U,	// STRDroW
    26486758U,	// STRDroX
    26486758U,	// STRDui
    1150583876U,	// STRHHpost
    76842052U,	// STRHHpre
    26485828U,	// STRHHroW
    26485828U,	// STRHHroX
    26485828U,	// STRHHui
    1150584806U,	// STRHpost
    76842982U,	// STRHpre
    26486758U,	// STRHroW
    26486758U,	// STRHroX
    26486758U,	// STRHui
    1150584806U,	// STRQpost
    76842982U,	// STRQpre
    26486758U,	// STRQroW
    26486758U,	// STRQroX
    26486758U,	// STRQui
    1150584806U,	// STRSpost
    76842982U,	// STRSpre
    26486758U,	// STRSroW
    26486758U,	// STRSroX
    26486758U,	// STRSui
    1150584806U,	// STRWpost
    76842982U,	// STRWpre
    26486758U,	// STRWroW
    26486758U,	// STRWroX
    26486758U,	// STRWui
    1150584806U,	// STRXpost
    76842982U,	// STRXpre
    26486758U,	// STRXroW
    26486758U,	// STRXroX
    26486758U,	// STRXui
    26485337U,	// STTRBi
    26485834U,	// STTRHi
    26486763U,	// STTRWi
    26486763U,	// STTRXi
    26485351U,	// STURBBi
    26486781U,	// STURBi
    26486781U,	// STURDi
    26485848U,	// STURHHi
    26486781U,	// STURHi
    26486781U,	// STURQi
    26486781U,	// STURSi
    26486781U,	// STURWi
    26486781U,	// STURXi
    17049444U,	// STXPW
    17049444U,	// STXPX
    553919109U,	// STXRB
    553919606U,	// STXRH
    553920535U,	// STXRW
    553920535U,	// STXRX
    537400855U,	// SUBHNv2i64_v2i32
    571748625U,	// SUBHNv2i64_v4i32
    1074796055U,	// SUBHNv4i32_v4i16
    1108881681U,	// SUBHNv4i32_v8i16
    1644179729U,	// SUBHNv8i16_v16i8
    1612453399U,	// SUBHNv8i16_v8i8
    17049650U,	// SUBSWri
    0U,	// SUBSWrr
    17049650U,	// SUBSWrs
    17049650U,	// SUBSWrx
    17049650U,	// SUBSXri
    0U,	// SUBSXrr
    17049650U,	// SUBSXrs
    17049650U,	// SUBSXrx
    17049650U,	// SUBSXrx64
    17048238U,	// SUBWri
    0U,	// SUBWrr
    17048238U,	// SUBWrs
    17048238U,	// SUBWrx
    17048238U,	// SUBXri
    0U,	// SUBXrr
    17048238U,	// SUBXrs
    17048238U,	// SUBXrx
    17048238U,	// SUBXrx64
    2147488430U,	// SUBv16i8
    17048238U,	// SUBv1i64
    2684883630U,	// SUBv2i32
    537662126U,	// SUBv2i64
    3222278830U,	// SUBv4i16
    1075057326U,	// SUBv4i32
    1612190382U,	// SUBv8i16
    3759936174U,	// SUBv8i8
    33567585U,	// SUQADDv16i8
    604275553U,	// SUQADDv1i16
    604275553U,	// SUQADDv1i32
    604275553U,	// SUQADDv1i64
    604275553U,	// SUQADDv1i8
    1107833697U,	// SUQADDv2i32
    1644966753U,	// SUQADDv2i64
    2182099809U,	// SUQADDv4i16
    2719232865U,	// SUQADDv4i32
    3256365921U,	// SUQADDv8i16
    3793498977U,	// SUQADDv8i8
    21263U,	// SVC
    17049022U,	// SYSLxt
    419702938U,	// SYSxt
    436212968U,	// TBLv16i8Four
    436212968U,	// TBLv16i8One
    436212968U,	// TBLv16i8Three
    436212968U,	// TBLv16i8Two
    4196144360U,	// TBLv8i8Four
    4196144360U,	// TBLv8i8One
    4196144360U,	// TBLv8i8Three
    4196144360U,	// TBLv8i8Two
    17050183U,	// TBNZW
    17050183U,	// TBNZX
    452999686U,	// TBXv16i8Four
    452999686U,	// TBXv16i8One
    452999686U,	// TBXv16i8Three
    452999686U,	// TBXv16i8Two
    4212931078U,	// TBXv8i8Four
    4212931078U,	// TBXv8i8One
    4212931078U,	// TBXv8i8Three
    4212931078U,	// TBXv8i8Two
    17050167U,	// TBZW
    17050167U,	// TBZX
    0U,	// TCRETURNdi
    0U,	// TCRETURNri
    2107995U,	// TLSDESCCALL
    0U,	// TLSDESC_BLR
    2147487770U,	// TRN1v16i8
    2684882970U,	// TRN1v2i32
    537661466U,	// TRN1v2i64
    3222278170U,	// TRN1v4i16
    1075056666U,	// TRN1v4i32
    1612189722U,	// TRN1v8i16
    3759935514U,	// TRN1v8i8
    2147488072U,	// TRN2v16i8
    2684883272U,	// TRN2v2i32
    537661768U,	// TRN2v2i64
    3222278472U,	// TRN2v4i16
    1075056968U,	// TRN2v4i32
    1612190024U,	// TRN2v8i16
    3759935816U,	// TRN2v8i8
    2182623338U,	// UABALv16i8_v8i16
    2718708938U,	// UABALv2i32_v2i64
    3256104138U,	// UABALv4i16_v4i32
    1108095082U,	// UABALv4i32_v2i64
    1645490282U,	// UABALv8i16_v4i32
    3793237194U,	// UABALv8i8_v8i16
    2181050868U,	// UABAv16i8
    2718446068U,	// UABAv2i32
    3255841268U,	// UABAv4i16
    1108619764U,	// UABAv4i32
    1645752820U,	// UABAv8i16
    3793498612U,	// UABAv8i8
    2149060772U,	// UABDLv16i8_v8i16
    2685146386U,	// UABDLv2i32_v2i64
    3222541586U,	// UABDLv4i16_v4i32
    1074532516U,	// UABDLv4i32_v2i64
    1611927716U,	// UABDLv8i16_v4i32
    3759674642U,	// UABDLv8i8_v8i16
    2147488544U,	// UABDv16i8
    2684883744U,	// UABDv2i32
    3222278944U,	// UABDv4i16
    1075057440U,	// UABDv4i32
    1612190496U,	// UABDv8i16
    3759936288U,	// UABDv8i8
    35141323U,	// UADALPv16i8_v8i16
    1117533899U,	// UADALPv2i32_v1i64
    2181576395U,	// UADALPv4i16_v2i32
    2718709451U,	// UADALPv4i32_v2i64
    3256104651U,	// UADALPv8i16_v4i32
    3792713419U,	// UADALPv8i8_v4i16
    1578715U,	// UADDLPv16i8_v8i16
    1083971291U,	// UADDLPv2i32_v1i64
    2148013787U,	// UADDLPv4i16_v2i32
    2685146843U,	// UADDLPv4i32_v2i64
    3222542043U,	// UADDLPv8i16_v4i32
    3759150811U,	// UADDLPv8i8_v4i16
    272708U,	// UADDLVv16i8v
    2147756356U,	// UADDLVv4i16v
    2684627268U,	// UADDLVv4i32v
    3221498180U,	// UADDLVv8i16v
    3758369092U,	// UADDLVv8i8v
    2149060788U,	// UADDLv16i8_v8i16
    2685146416U,	// UADDLv2i32_v2i64
    3222541616U,	// UADDLv4i16_v4i32
    1074532532U,	// UADDLv4i32_v2i64
    1611927732U,	// UADDLv8i16_v4i32
    3759674672U,	// UADDLv8i8_v8i16
    1612190141U,	// UADDWv16i8_v8i16
    537663943U,	// UADDWv2i32_v2i64
    1075059143U,	// UADDWv4i16_v4i32
    537661885U,	// UADDWv4i32_v2i64
    1075057085U,	// UADDWv8i16_v4i32
    1612192199U,	// UADDWv8i8_v8i16
    17049067U,	// UBFMWri
    17049067U,	// UBFMXri
    17048524U,	// UCVTFSWDri
    17048524U,	// UCVTFSWSri
    17048524U,	// UCVTFSXDri
    17048524U,	// UCVTFSXSri
    553919436U,	// UCVTFUWDri
    553919436U,	// UCVTFUWSri
    553919436U,	// UCVTFUXDri
    553919436U,	// UCVTFUXSri
    17048524U,	// UCVTFd
    17048524U,	// UCVTFs
    553919436U,	// UCVTFv1i32
    553919436U,	// UCVTFv1i64
    1074271180U,	// UCVTFv2f32
    1611404236U,	// UCVTFv2f64
    2684883916U,	// UCVTFv2i32_shift
    537662412U,	// UCVTFv2i64_shift
    2685670348U,	// UCVTFv4f32
    1075057612U,	// UCVTFv4i32_shift
    17049910U,	// UDIVWr
    17049910U,	// UDIVXr
    17049910U,	// UDIV_IntWr
    17049910U,	// UDIV_IntXr
    2147488579U,	// UHADDv16i8
    2684883779U,	// UHADDv2i32
    3222278979U,	// UHADDv4i16
    1075057475U,	// UHADDv4i32
    1612190531U,	// UHADDv8i16
    3759936323U,	// UHADDv8i8
    2147488442U,	// UHSUBv16i8
    2684883642U,	// UHSUBv2i32
    3222278842U,	// UHSUBv4i16
    1075057338U,	// UHSUBv4i32
    1612190394U,	// UHSUBv8i16
    3759936186U,	// UHSUBv8i8
    17048865U,	// UMADDLrrr
    2147489616U,	// UMAXPv16i8
    2684884816U,	// UMAXPv2i32
    3222280016U,	// UMAXPv4i16
    1075058512U,	// UMAXPv4i32
    1612191568U,	// UMAXPv8i16
    3759937360U,	// UMAXPv8i8
    272794U,	// UMAXVv16i8v
    2147756442U,	// UMAXVv4i16v
    2684627354U,	// UMAXVv4i32v
    3221498266U,	// UMAXVv8i16v
    3758369178U,	// UMAXVv8i8v
    2147490304U,	// UMAXv16i8
    2684885504U,	// UMAXv2i32
    3222280704U,	// UMAXv4i16
    1075059200U,	// UMAXv4i32
    1612192256U,	// UMAXv8i16
    3759938048U,	// UMAXv8i8
    2147489558U,	// UMINPv16i8
    2684884758U,	// UMINPv2i32
    3222279958U,	// UMINPv4i16
    1075058454U,	// UMINPv4i32
    1612191510U,	// UMINPv8i16
    3759937302U,	// UMINPv8i8
    272748U,	// UMINVv16i8v
    2147756396U,	// UMINVv4i16v
    2684627308U,	// UMINVv4i32v
    3221498220U,	// UMINVv8i16v
    3758369132U,	// UMINVv8i8v
    2147489330U,	// UMINv16i8
    2684884530U,	// UMINv2i32
    3222279730U,	// UMINv4i16
    1075058226U,	// UMINv4i32
    1612191282U,	// UMINv8i16
    3759937074U,	// UMINv8i8
    2182623364U,	// UMLALv16i8_v8i16
    2718708961U,	// UMLALv2i32_indexed
    2718708961U,	// UMLALv2i32_v2i64
    3256104161U,	// UMLALv4i16_indexed
    3256104161U,	// UMLALv4i16_v4i32
    1108095108U,	// UMLALv4i32_indexed
    1108095108U,	// UMLALv4i32_v2i64
    1645490308U,	// UMLALv8i16_indexed
    1645490308U,	// UMLALv8i16_v4i32
    3793237217U,	// UMLALv8i8_v8i16
    2182623488U,	// UMLSLv16i8_v8i16
    2718709175U,	// UMLSLv2i32_indexed
    2718709175U,	// UMLSLv2i32_v2i64
    3256104375U,	// UMLSLv4i16_indexed
    3256104375U,	// UMLSLv4i16_v4i32
    1108095232U,	// UMLSLv4i32_indexed
    1108095232U,	// UMLSLv4i32_v2i64
    1645490432U,	// UMLSLv8i16_indexed
    1645490432U,	// UMLSLv8i16_v4i32
    3793237431U,	// UMLSLv8i8_v8i16
    272774U,	// UMOVvi16
    537143686U,	// UMOVvi32
    1074014598U,	// UMOVvi64
    1610885510U,	// UMOVvi8
    17048821U,	// UMSUBLrrr
    17048610U,	// UMULHrr
    2149060838U,	// UMULLv16i8_v8i16
    2685146523U,	// UMULLv2i32_indexed
    2685146523U,	// UMULLv2i32_v2i64
    3222541723U,	// UMULLv4i16_indexed
    3222541723U,	// UMULLv4i16_v4i32
    1074532582U,	// UMULLv4i32_indexed
    1074532582U,	// UMULLv4i32_v2i64
    1611927782U,	// UMULLv8i16_indexed
    1611927782U,	// UMULLv8i16_v4i32
    3759674779U,	// UMULLv8i8_v8i16
    2147488610U,	// UQADDv16i8
    17048418U,	// UQADDv1i16
    17048418U,	// UQADDv1i32
    17048418U,	// UQADDv1i64
    17048418U,	// UQADDv1i8
    2684883810U,	// UQADDv2i32
    537662306U,	// UQADDv2i64
    3222279010U,	// UQADDv4i16
    1075057506U,	// UQADDv4i32
    1612190562U,	// UQADDv8i16
    3759936354U,	// UQADDv8i8
    2147489108U,	// UQRSHLv16i8
    17048916U,	// UQRSHLv1i16
    17048916U,	// UQRSHLv1i32
    17048916U,	// UQRSHLv1i64
    17048916U,	// UQRSHLv1i8
    2684884308U,	// UQRSHLv2i32
    537662804U,	// UQRSHLv2i64
    3222279508U,	// UQRSHLv4i16
    1075058004U,	// UQRSHLv4i32
    1612191060U,	// UQRSHLv8i16
    3759936852U,	// UQRSHLv8i8
    17049180U,	// UQRSHRNb
    17049180U,	// UQRSHRNh
    17049180U,	// UQRSHRNs
    1644179774U,	// UQRSHRNv16i8_shift
    537400924U,	// UQRSHRNv2i32_shift
    1074796124U,	// UQRSHRNv4i16_shift
    571748670U,	// UQRSHRNv4i32_shift
    1108881726U,	// UQRSHRNv8i16_shift
    1612453468U,	// UQRSHRNv8i8_shift
    17048901U,	// UQSHLb
    17048901U,	// UQSHLd
    17048901U,	// UQSHLh
    17048901U,	// UQSHLs
    2147489093U,	// UQSHLv16i8
    2147489093U,	// UQSHLv16i8_shift
    17048901U,	// UQSHLv1i16
    17048901U,	// UQSHLv1i32
    17048901U,	// UQSHLv1i64
    17048901U,	// UQSHLv1i8
    2684884293U,	// UQSHLv2i32
    2684884293U,	// UQSHLv2i32_shift
    537662789U,	// UQSHLv2i64
    537662789U,	// UQSHLv2i64_shift
    3222279493U,	// UQSHLv4i16
    3222279493U,	// UQSHLv4i16_shift
    1075057989U,	// UQSHLv4i32
    1075057989U,	// UQSHLv4i32_shift
    1612191045U,	// UQSHLv8i16
    1612191045U,	// UQSHLv8i16_shift
    3759936837U,	// UQSHLv8i8
    3759936837U,	// UQSHLv8i8_shift
    17049163U,	// UQSHRNb
    17049163U,	// UQSHRNh
    17049163U,	// UQSHRNs
    1644179755U,	// UQSHRNv16i8_shift
    537400907U,	// UQSHRNv2i32_shift
    1074796107U,	// UQSHRNv4i16_shift
    571748651U,	// UQSHRNv4i32_shift
    1108881707U,	// UQSHRNv8i16_shift
    1612453451U,	// UQSHRNv8i8_shift
    2147488471U,	// UQSUBv16i8
    17048279U,	// UQSUBv1i16
    17048279U,	// UQSUBv1i32
    17048279U,	// UQSUBv1i64
    17048279U,	// UQSUBv1i8
    2684883671U,	// UQSUBv2i32
    537662167U,	// UQSUBv2i64
    3222278871U,	// UQSUBv4i16
    1075057367U,	// UQSUBv4i32
    1612190423U,	// UQSUBv8i16
    3759936215U,	// UQSUBv8i8
    3254792542U,	// UQXTNv16i8
    553920128U,	// UQXTNv1i16
    553920128U,	// UQXTNv1i32
    553920128U,	// UQXTNv1i8
    1611142784U,	// UQXTNv2i32
    2685408896U,	// UQXTNv4i16
    1645490526U,	// UQXTNv4i32
    2719494494U,	// UQXTNv8i16
    3223066240U,	// UQXTNv8i8
    1074271121U,	// URECPEv2i32
    2685670289U,	// URECPEv4i32
    2147488564U,	// URHADDv16i8
    2684883764U,	// URHADDv2i32
    3222278964U,	// URHADDv4i16
    1075057460U,	// URHADDv4i32
    1612190516U,	// URHADDv8i16
    3759936308U,	// URHADDv8i8
    2147489123U,	// URSHLv16i8
    17048931U,	// URSHLv1i64
    2684884323U,	// URSHLv2i32
    537662819U,	// URSHLv2i64
    3222279523U,	// URSHLv4i16
    1075058019U,	// URSHLv4i32
    1612191075U,	// URSHLv8i16
    3759936867U,	// URSHLv8i8
    17049508U,	// URSHRd
    2147489700U,	// URSHRv16i8_shift
    2684884900U,	// URSHRv2i32_shift
    537663396U,	// URSHRv2i64_shift
    3222280100U,	// URSHRv4i16_shift
    1075058596U,	// URSHRv4i32_shift
    1612191652U,	// URSHRv8i16_shift
    3759937444U,	// URSHRv8i8_shift
    1074271159U,	// URSQRTEv2i32
    2685670327U,	// URSQRTEv4i32
    67404295U,	// URSRAd
    2181050887U,	// URSRAv16i8_shift
    2718446087U,	// URSRAv2i32_shift
    571224583U,	// URSRAv2i64_shift
    3255841287U,	// URSRAv4i16_shift
    1108619783U,	// URSRAv4i32_shift
    1645752839U,	// URSRAv8i16_shift
    3793498631U,	// URSRAv8i8_shift
    2149060804U,	// USHLLv16i8_shift
    2685146493U,	// USHLLv2i32_shift
    3222541693U,	// USHLLv4i16_shift
    1074532548U,	// USHLLv4i32_shift
    1611927748U,	// USHLLv8i16_shift
    3759674749U,	// USHLLv8i8_shift
    2147489136U,	// USHLv16i8
    17048944U,	// USHLv1i64
    2684884336U,	// USHLv2i32
    537662832U,	// USHLv2i64
    3222279536U,	// USHLv4i16
    1075058032U,	// USHLv4i32
    1612191088U,	// USHLv8i16
    3759936880U,	// USHLv8i8
    17049521U,	// USHRd
    2147489713U,	// USHRv16i8_shift
    2684884913U,	// USHRv2i32_shift
    537663409U,	// USHRv2i64_shift
    3222280113U,	// USHRv4i16_shift
    1075058609U,	// USHRv4i32_shift
    1612191665U,	// USHRv8i16_shift
    3759937457U,	// USHRv8i8_shift
    33567577U,	// USQADDv16i8
    604275545U,	// USQADDv1i16
    604275545U,	// USQADDv1i32
    604275545U,	// USQADDv1i64
    604275545U,	// USQADDv1i8
    1107833689U,	// USQADDv2i32
    1644966745U,	// USQADDv2i64
    2182099801U,	// USQADDv4i16
    2719232857U,	// USQADDv4i32
    3256365913U,	// USQADDv8i16
    3793498969U,	// USQADDv8i8
    67404308U,	// USRAd
    2181050900U,	// USRAv16i8_shift
    2718446100U,	// USRAv2i32_shift
    571224596U,	// USRAv2i64_shift
    3255841300U,	// USRAv4i16_shift
    1108619796U,	// USRAv4i32_shift
    1645752852U,	// USRAv8i16_shift
    3793498644U,	// USRAv8i8_shift
    2149060756U,	// USUBLv16i8_v8i16
    2685146372U,	// USUBLv2i32_v2i64
    3222541572U,	// USUBLv4i16_v4i32
    1074532500U,	// USUBLv4i32_v2i64
    1611927700U,	// USUBLv8i16_v4i32
    3759674628U,	// USUBLv8i8_v8i16
    1612190125U,	// USUBWv16i8_v8i16
    537663920U,	// USUBWv2i32_v2i64
    1075059120U,	// USUBWv4i16_v4i32
    537661869U,	// USUBWv4i32_v2i64
    1075057069U,	// USUBWv8i16_v4i32
    1612192176U,	// USUBWv8i8_v8i16
    2147487782U,	// UZP1v16i8
    2684882982U,	// UZP1v2i32
    537661478U,	// UZP1v2i64
    3222278182U,	// UZP1v4i16
    1075056678U,	// UZP1v4i32
    1612189734U,	// UZP1v8i16
    3759935526U,	// UZP1v8i8
    2147488147U,	// UZP2v16i8
    2684883347U,	// UZP2v2i32
    537661843U,	// UZP2v2i64
    3222278547U,	// UZP2v4i16
    1075057043U,	// UZP2v4i32
    1612190099U,	// UZP2v8i16
    3759935891U,	// UZP2v8i8
    3254792536U,	// XTNv16i8
    1611142779U,	// XTNv2i32
    2685408891U,	// XTNv4i16
    1645490520U,	// XTNv4i32
    2719494488U,	// XTNv8i16
    3223066235U,	// XTNv8i8
    2147487776U,	// ZIP1v16i8
    2684882976U,	// ZIP1v2i32
    537661472U,	// ZIP1v2i64
    3222278176U,	// ZIP1v4i16
    1075056672U,	// ZIP1v4i32
    1612189728U,	// ZIP1v8i16
    3759935520U,	// ZIP1v8i8
    2147488141U,	// ZIP2v16i8
    2684883341U,	// ZIP2v2i32
    537661837U,	// ZIP2v2i64
    3222278541U,	// ZIP2v4i16
    1075057037U,	// ZIP2v4i32
    1612190093U,	// ZIP2v8i16
    3759935885U,	// ZIP2v8i8
    0U
  };

  static const uint32_t OpInfo2[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// CFI_INSTRUCTION
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    0U,	// DBG_VALUE
    0U,	// REG_SEQUENCE
    0U,	// COPY
    0U,	// BUNDLE
    0U,	// LIFETIME_START
    0U,	// LIFETIME_END
    0U,	// STACKMAP
    0U,	// PATCHPOINT
    0U,	// LOAD_STACK_GUARD
    0U,	// STATEPOINT
    0U,	// FRAME_ALLOC
    0U,	// ABSv16i8
    0U,	// ABSv1i64
    0U,	// ABSv2i32
    0U,	// ABSv2i64
    0U,	// ABSv4i16
    0U,	// ABSv4i32
    0U,	// ABSv8i16
    0U,	// ABSv8i8
    1U,	// ADCSWr
    1U,	// ADCSXr
    1U,	// ADCWr
    1U,	// ADCXr
    265U,	// ADDHNv2i64_v2i32
    273U,	// ADDHNv2i64_v4i32
    521U,	// ADDHNv4i32_v4i16
    529U,	// ADDHNv4i32_v8i16
    785U,	// ADDHNv8i16_v16i8
    777U,	// ADDHNv8i16_v8i8
    1033U,	// ADDPv16i8
    1289U,	// ADDPv2i32
    265U,	// ADDPv2i64
    0U,	// ADDPv2i64p
    1545U,	// ADDPv4i16
    521U,	// ADDPv4i32
    777U,	// ADDPv8i16
    1801U,	// ADDPv8i8
    25U,	// ADDSWri
    0U,	// ADDSWrr
    33U,	// ADDSWrs
    41U,	// ADDSWrx
    25U,	// ADDSXri
    0U,	// ADDSXrr
    33U,	// ADDSXrs
    41U,	// ADDSXrx
    2049U,	// ADDSXrx64
    0U,	// ADDVv16i8v
    0U,	// ADDVv4i16v
    0U,	// ADDVv4i32v
    0U,	// ADDVv8i16v
    0U,	// ADDVv8i8v
    25U,	// ADDWri
    0U,	// ADDWrr
    33U,	// ADDWrs
    41U,	// ADDWrx
    25U,	// ADDXri
    0U,	// ADDXrr
    33U,	// ADDXrs
    41U,	// ADDXrx
    2049U,	// ADDXrx64
    1033U,	// ADDv16i8
    1U,	// ADDv1i64
    1289U,	// ADDv2i32
    265U,	// ADDv2i64
    1545U,	// ADDv4i16
    521U,	// ADDv4i32
    777U,	// ADDv8i16
    1801U,	// ADDv8i8
    0U,	// ADJCALLSTACKDOWN
    0U,	// ADJCALLSTACKUP
    0U,	// ADR
    0U,	// ADRP
    0U,	// AESDrr
    0U,	// AESErr
    0U,	// AESIMCrr
    0U,	// AESMCrr
    49U,	// ANDSWri
    0U,	// ANDSWrr
    33U,	// ANDSWrs
    57U,	// ANDSXri
    0U,	// ANDSXrr
    33U,	// ANDSXrs
    49U,	// ANDWri
    0U,	// ANDWrr
    33U,	// ANDWrs
    57U,	// ANDXri
    0U,	// ANDXrr
    33U,	// ANDXrs
    1033U,	// ANDv16i8
    1801U,	// ANDv8i8
    1U,	// ASRVWr
    1U,	// ASRVXr
    0U,	// B
    2369U,	// BFMWri
    2369U,	// BFMXri
    0U,	// BICSWrr
    33U,	// BICSWrs
    0U,	// BICSXrr
    33U,	// BICSXrs
    0U,	// BICWrr
    33U,	// BICWrs
    0U,	// BICXrr
    33U,	// BICXrs
    1033U,	// BICv16i8
    0U,	// BICv2i32
    0U,	// BICv4i16
    0U,	// BICv4i32
    0U,	// BICv8i16
    1801U,	// BICv8i8
    1033U,	// BIFv16i8
    1801U,	// BIFv8i8
    1041U,	// BITv16i8
    1809U,	// BITv8i8
    0U,	// BL
    0U,	// BLR
    0U,	// BR
    0U,	// BRK
    1041U,	// BSLv16i8
    1809U,	// BSLv8i8
    0U,	// Bcc
    0U,	// CBNZW
    0U,	// CBNZX
    0U,	// CBZW
    0U,	// CBZX
    10497U,	// CCMNWi
    10497U,	// CCMNWr
    10497U,	// CCMNXi
    10497U,	// CCMNXr
    10497U,	// CCMPWi
    10497U,	// CCMPWr
    10497U,	// CCMPXi
    10497U,	// CCMPXr
    0U,	// CLREX
    0U,	// CLSWr
    0U,	// CLSXr
    0U,	// CLSv16i8
    0U,	// CLSv2i32
    0U,	// CLSv4i16
    0U,	// CLSv4i32
    0U,	// CLSv8i16
    0U,	// CLSv8i8
    0U,	// CLZWr
    0U,	// CLZXr
    0U,	// CLZv16i8
    0U,	// CLZv2i32
    0U,	// CLZv4i16
    0U,	// CLZv4i32
    0U,	// CLZv8i16
    0U,	// CLZv8i8
    1033U,	// CMEQv16i8
    2U,	// CMEQv16i8rz
    1U,	// CMEQv1i64
    2U,	// CMEQv1i64rz
    1289U,	// CMEQv2i32
    2U,	// CMEQv2i32rz
    265U,	// CMEQv2i64
    2U,	// CMEQv2i64rz
    1545U,	// CMEQv4i16
    2U,	// CMEQv4i16rz
    521U,	// CMEQv4i32
    2U,	// CMEQv4i32rz
    777U,	// CMEQv8i16
    2U,	// CMEQv8i16rz
    1801U,	// CMEQv8i8
    2U,	// CMEQv8i8rz
    1033U,	// CMGEv16i8
    2U,	// CMGEv16i8rz
    1U,	// CMGEv1i64
    2U,	// CMGEv1i64rz
    1289U,	// CMGEv2i32
    2U,	// CMGEv2i32rz
    265U,	// CMGEv2i64
    2U,	// CMGEv2i64rz
    1545U,	// CMGEv4i16
    2U,	// CMGEv4i16rz
    521U,	// CMGEv4i32
    2U,	// CMGEv4i32rz
    777U,	// CMGEv8i16
    2U,	// CMGEv8i16rz
    1801U,	// CMGEv8i8
    2U,	// CMGEv8i8rz
    1033U,	// CMGTv16i8
    2U,	// CMGTv16i8rz
    1U,	// CMGTv1i64
    2U,	// CMGTv1i64rz
    1289U,	// CMGTv2i32
    2U,	// CMGTv2i32rz
    265U,	// CMGTv2i64
    2U,	// CMGTv2i64rz
    1545U,	// CMGTv4i16
    2U,	// CMGTv4i16rz
    521U,	// CMGTv4i32
    2U,	// CMGTv4i32rz
    777U,	// CMGTv8i16
    2U,	// CMGTv8i16rz
    1801U,	// CMGTv8i8
    2U,	// CMGTv8i8rz
    1033U,	// CMHIv16i8
    1U,	// CMHIv1i64
    1289U,	// CMHIv2i32
    265U,	// CMHIv2i64
    1545U,	// CMHIv4i16
    521U,	// CMHIv4i32
    777U,	// CMHIv8i16
    1801U,	// CMHIv8i8
    1033U,	// CMHSv16i8
    1U,	// CMHSv1i64
    1289U,	// CMHSv2i32
    265U,	// CMHSv2i64
    1545U,	// CMHSv4i16
    521U,	// CMHSv4i32
    777U,	// CMHSv8i16
    1801U,	// CMHSv8i8
    2U,	// CMLEv16i8rz
    2U,	// CMLEv1i64rz
    2U,	// CMLEv2i32rz
    2U,	// CMLEv2i64rz
    2U,	// CMLEv4i16rz
    2U,	// CMLEv4i32rz
    2U,	// CMLEv8i16rz
    2U,	// CMLEv8i8rz
    2U,	// CMLTv16i8rz
    2U,	// CMLTv1i64rz
    2U,	// CMLTv2i32rz
    2U,	// CMLTv2i64rz
    2U,	// CMLTv4i16rz
    2U,	// CMLTv4i32rz
    2U,	// CMLTv8i16rz
    2U,	// CMLTv8i8rz
    1033U,	// CMTSTv16i8
    1U,	// CMTSTv1i64
    1289U,	// CMTSTv2i32
    265U,	// CMTSTv2i64
    1545U,	// CMTSTv4i16
    521U,	// CMTSTv4i32
    777U,	// CMTSTv8i16
    1801U,	// CMTSTv8i8
    0U,	// CNTv16i8
    0U,	// CNTv8i8
    75U,	// CPYi16
    75U,	// CPYi32
    75U,	// CPYi64
    75U,	// CPYi8
    1U,	// CRC32Brr
    1U,	// CRC32CBrr
    1U,	// CRC32CHrr
    1U,	// CRC32CWrr
    1U,	// CRC32CXrr
    1U,	// CRC32Hrr
    1U,	// CRC32Wrr
    1U,	// CRC32Xrr
    10497U,	// CSELWr
    10497U,	// CSELXr
    10497U,	// CSINCWr
    10497U,	// CSINCXr
    10497U,	// CSINVWr
    10497U,	// CSINVXr
    10497U,	// CSNEGWr
    10497U,	// CSNEGXr
    0U,	// DCPS1
    0U,	// DCPS2
    0U,	// DCPS3
    0U,	// DMB
    0U,	// DRPS
    0U,	// DSB
    0U,	// DUPv16i8gpr
    75U,	// DUPv16i8lane
    0U,	// DUPv2i32gpr
    75U,	// DUPv2i32lane
    0U,	// DUPv2i64gpr
    75U,	// DUPv2i64lane
    0U,	// DUPv4i16gpr
    75U,	// DUPv4i16lane
    0U,	// DUPv4i32gpr
    75U,	// DUPv4i32lane
    0U,	// DUPv8i16gpr
    75U,	// DUPv8i16lane
    0U,	// DUPv8i8gpr
    75U,	// DUPv8i8lane
    0U,	// EONWrr
    33U,	// EONWrs
    0U,	// EONXrr
    33U,	// EONXrs
    49U,	// EORWri
    0U,	// EORWrr
    33U,	// EORWrs
    57U,	// EORXri
    0U,	// EORXrr
    33U,	// EORXrs
    1033U,	// EORv16i8
    1801U,	// EORv8i8
    0U,	// ERET
    18689U,	// EXTRWrri
    18689U,	// EXTRXrri
    2569U,	// EXTv16i8
    2825U,	// EXTv8i8
    0U,	// F128CSEL
    1U,	// FABD32
    1U,	// FABD64
    1289U,	// FABDv2f32
    265U,	// FABDv2f64
    521U,	// FABDv4f32
    0U,	// FABSDr
    0U,	// FABSSr
    0U,	// FABSv2f32
    0U,	// FABSv2f64
    0U,	// FABSv4f32
    1U,	// FACGE32
    1U,	// FACGE64
    1289U,	// FACGEv2f32
    265U,	// FACGEv2f64
    521U,	// FACGEv4f32
    1U,	// FACGT32
    1U,	// FACGT64
    1289U,	// FACGTv2f32
    265U,	// FACGTv2f64
    521U,	// FACGTv4f32
    1U,	// FADDDrr
    1289U,	// FADDPv2f32
    265U,	// FADDPv2f64
    0U,	// FADDPv2i32p
    0U,	// FADDPv2i64p
    521U,	// FADDPv4f32
    1U,	// FADDSrr
    1289U,	// FADDv2f32
    265U,	// FADDv2f64
    521U,	// FADDv4f32
    10497U,	// FCCMPDrr
    10497U,	// FCCMPEDrr
    10497U,	// FCCMPESrr
    10497U,	// FCCMPSrr
    1U,	// FCMEQ32
    1U,	// FCMEQ64
    3U,	// FCMEQv1i32rz
    3U,	// FCMEQv1i64rz
    1289U,	// FCMEQv2f32
    265U,	// FCMEQv2f64
    3U,	// FCMEQv2i32rz
    3U,	// FCMEQv2i64rz
    521U,	// FCMEQv4f32
    3U,	// FCMEQv4i32rz
    1U,	// FCMGE32
    1U,	// FCMGE64
    3U,	// FCMGEv1i32rz
    3U,	// FCMGEv1i64rz
    1289U,	// FCMGEv2f32
    265U,	// FCMGEv2f64
    3U,	// FCMGEv2i32rz
    3U,	// FCMGEv2i64rz
    521U,	// FCMGEv4f32
    3U,	// FCMGEv4i32rz
    1U,	// FCMGT32
    1U,	// FCMGT64
    3U,	// FCMGTv1i32rz
    3U,	// FCMGTv1i64rz
    1289U,	// FCMGTv2f32
    265U,	// FCMGTv2f64
    3U,	// FCMGTv2i32rz
    3U,	// FCMGTv2i64rz
    521U,	// FCMGTv4f32
    3U,	// FCMGTv4i32rz
    3U,	// FCMLEv1i32rz
    3U,	// FCMLEv1i64rz
    3U,	// FCMLEv2i32rz
    3U,	// FCMLEv2i64rz
    3U,	// FCMLEv4i32rz
    3U,	// FCMLTv1i32rz
    3U,	// FCMLTv1i64rz
    3U,	// FCMLTv2i32rz
    3U,	// FCMLTv2i64rz
    3U,	// FCMLTv4i32rz
    0U,	// FCMPDri
    0U,	// FCMPDrr
    0U,	// FCMPEDri
    0U,	// FCMPEDrr
    0U,	// FCMPESri
    0U,	// FCMPESrr
    0U,	// FCMPSri
    0U,	// FCMPSrr
    10497U,	// FCSELDrrr
    10497U,	// FCSELSrrr
    0U,	// FCVTASUWDr
    0U,	// FCVTASUWSr
    0U,	// FCVTASUXDr
    0U,	// FCVTASUXSr
    0U,	// FCVTASv1i32
    0U,	// FCVTASv1i64
    0U,	// FCVTASv2f32
    0U,	// FCVTASv2f64
    0U,	// FCVTASv4f32
    0U,	// FCVTAUUWDr
    0U,	// FCVTAUUWSr
    0U,	// FCVTAUUXDr
    0U,	// FCVTAUUXSr
    0U,	// FCVTAUv1i32
    0U,	// FCVTAUv1i64
    0U,	// FCVTAUv2f32
    0U,	// FCVTAUv2f64
    0U,	// FCVTAUv4f32
    0U,	// FCVTDHr
    0U,	// FCVTDSr
    0U,	// FCVTHDr
    0U,	// FCVTHSr
    0U,	// FCVTLv2i32
    0U,	// FCVTLv4i16
    0U,	// FCVTLv4i32
    0U,	// FCVTLv8i16
    0U,	// FCVTMSUWDr
    0U,	// FCVTMSUWSr
    0U,	// FCVTMSUXDr
    0U,	// FCVTMSUXSr
    0U,	// FCVTMSv1i32
    0U,	// FCVTMSv1i64
    0U,	// FCVTMSv2f32
    0U,	// FCVTMSv2f64
    0U,	// FCVTMSv4f32
    0U,	// FCVTMUUWDr
    0U,	// FCVTMUUWSr
    0U,	// FCVTMUUXDr
    0U,	// FCVTMUUXSr
    0U,	// FCVTMUv1i32
    0U,	// FCVTMUv1i64
    0U,	// FCVTMUv2f32
    0U,	// FCVTMUv2f64
    0U,	// FCVTMUv4f32
    0U,	// FCVTNSUWDr
    0U,	// FCVTNSUWSr
    0U,	// FCVTNSUXDr
    0U,	// FCVTNSUXSr
    0U,	// FCVTNSv1i32
    0U,	// FCVTNSv1i64
    0U,	// FCVTNSv2f32
    0U,	// FCVTNSv2f64
    0U,	// FCVTNSv4f32
    0U,	// FCVTNUUWDr
    0U,	// FCVTNUUWSr
    0U,	// FCVTNUUXDr
    0U,	// FCVTNUUXSr
    0U,	// FCVTNUv1i32
    0U,	// FCVTNUv1i64
    0U,	// FCVTNUv2f32
    0U,	// FCVTNUv2f64
    0U,	// FCVTNUv4f32
    0U,	// FCVTNv2i32
    0U,	// FCVTNv4i16
    0U,	// FCVTNv4i32
    0U,	// FCVTNv8i16
    0U,	// FCVTPSUWDr
    0U,	// FCVTPSUWSr
    0U,	// FCVTPSUXDr
    0U,	// FCVTPSUXSr
    0U,	// FCVTPSv1i32
    0U,	// FCVTPSv1i64
    0U,	// FCVTPSv2f32
    0U,	// FCVTPSv2f64
    0U,	// FCVTPSv4f32
    0U,	// FCVTPUUWDr
    0U,	// FCVTPUUWSr
    0U,	// FCVTPUUXDr
    0U,	// FCVTPUUXSr
    0U,	// FCVTPUv1i32
    0U,	// FCVTPUv1i64
    0U,	// FCVTPUv2f32
    0U,	// FCVTPUv2f64
    0U,	// FCVTPUv4f32
    0U,	// FCVTSDr
    0U,	// FCVTSHr
    0U,	// FCVTXNv1i64
    0U,	// FCVTXNv2f32
    0U,	// FCVTXNv4f32
    1U,	// FCVTZSSWDri
    1U,	// FCVTZSSWSri
    1U,	// FCVTZSSXDri
    1U,	// FCVTZSSXSri
    0U,	// FCVTZSUWDr
    0U,	// FCVTZSUWSr
    0U,	// FCVTZSUXDr
    0U,	// FCVTZSUXSr
    1U,	// FCVTZS_IntSWDri
    1U,	// FCVTZS_IntSWSri
    1U,	// FCVTZS_IntSXDri
    1U,	// FCVTZS_IntSXSri
    0U,	// FCVTZS_IntUWDr
    0U,	// FCVTZS_IntUWSr
    0U,	// FCVTZS_IntUXDr
    0U,	// FCVTZS_IntUXSr
    0U,	// FCVTZS_Intv2f32
    0U,	// FCVTZS_Intv2f64
    0U,	// FCVTZS_Intv4f32
    1U,	// FCVTZSd
    1U,	// FCVTZSs
    0U,	// FCVTZSv1i32
    0U,	// FCVTZSv1i64
    0U,	// FCVTZSv2f32
    0U,	// FCVTZSv2f64
    1U,	// FCVTZSv2i32_shift
    1U,	// FCVTZSv2i64_shift
    0U,	// FCVTZSv4f32
    1U,	// FCVTZSv4i32_shift
    1U,	// FCVTZUSWDri
    1U,	// FCVTZUSWSri
    1U,	// FCVTZUSXDri
    1U,	// FCVTZUSXSri
    0U,	// FCVTZUUWDr
    0U,	// FCVTZUUWSr
    0U,	// FCVTZUUXDr
    0U,	// FCVTZUUXSr
    1U,	// FCVTZU_IntSWDri
    1U,	// FCVTZU_IntSWSri
    1U,	// FCVTZU_IntSXDri
    1U,	// FCVTZU_IntSXSri
    0U,	// FCVTZU_IntUWDr
    0U,	// FCVTZU_IntUWSr
    0U,	// FCVTZU_IntUXDr
    0U,	// FCVTZU_IntUXSr
    0U,	// FCVTZU_Intv2f32
    0U,	// FCVTZU_Intv2f64
    0U,	// FCVTZU_Intv4f32
    1U,	// FCVTZUd
    1U,	// FCVTZUs
    0U,	// FCVTZUv1i32
    0U,	// FCVTZUv1i64
    0U,	// FCVTZUv2f32
    0U,	// FCVTZUv2f64
    1U,	// FCVTZUv2i32_shift
    1U,	// FCVTZUv2i64_shift
    0U,	// FCVTZUv4f32
    1U,	// FCVTZUv4i32_shift
    1U,	// FDIVDrr
    1U,	// FDIVSrr
    1289U,	// FDIVv2f32
    265U,	// FDIVv2f64
    521U,	// FDIVv4f32
    18689U,	// FMADDDrrr
    18689U,	// FMADDSrrr
    1U,	// FMAXDrr
    1U,	// FMAXNMDrr
    1289U,	// FMAXNMPv2f32
    265U,	// FMAXNMPv2f64
    0U,	// FMAXNMPv2i32p
    0U,	// FMAXNMPv2i64p
    521U,	// FMAXNMPv4f32
    1U,	// FMAXNMSrr
    0U,	// FMAXNMVv4i32v
    1289U,	// FMAXNMv2f32
    265U,	// FMAXNMv2f64
    521U,	// FMAXNMv4f32
    1289U,	// FMAXPv2f32
    265U,	// FMAXPv2f64
    0U,	// FMAXPv2i32p
    0U,	// FMAXPv2i64p
    521U,	// FMAXPv4f32
    1U,	// FMAXSrr
    0U,	// FMAXVv4i32v
    1289U,	// FMAXv2f32
    265U,	// FMAXv2f64
    521U,	// FMAXv4f32
    1U,	// FMINDrr
    1U,	// FMINNMDrr
    1289U,	// FMINNMPv2f32
    265U,	// FMINNMPv2f64
    0U,	// FMINNMPv2i32p
    0U,	// FMINNMPv2i64p
    521U,	// FMINNMPv4f32
    1U,	// FMINNMSrr
    0U,	// FMINNMVv4i32v
    1289U,	// FMINNMv2f32
    265U,	// FMINNMv2f64
    521U,	// FMINNMv4f32
    1289U,	// FMINPv2f32
    265U,	// FMINPv2f64
    0U,	// FMINPv2i32p
    0U,	// FMINPv2i64p
    521U,	// FMINPv4f32
    1U,	// FMINSrr
    0U,	// FMINVv4i32v
    1289U,	// FMINv2f32
    265U,	// FMINv2f64
    521U,	// FMINv4f32
    27665U,	// FMLAv1i32_indexed
    27921U,	// FMLAv1i64_indexed
    1297U,	// FMLAv2f32
    273U,	// FMLAv2f64
    27665U,	// FMLAv2i32_indexed
    27921U,	// FMLAv2i64_indexed
    529U,	// FMLAv4f32
    27665U,	// FMLAv4i32_indexed
    27665U,	// FMLSv1i32_indexed
    27921U,	// FMLSv1i64_indexed
    1297U,	// FMLSv2f32
    273U,	// FMLSv2f64
    27665U,	// FMLSv2i32_indexed
    27921U,	// FMLSv2i64_indexed
    529U,	// FMLSv4f32
    27665U,	// FMLSv4i32_indexed
    75U,	// FMOVDXHighr
    0U,	// FMOVDXr
    0U,	// FMOVDi
    0U,	// FMOVDr
    0U,	// FMOVSWr
    0U,	// FMOVSi
    0U,	// FMOVSr
    0U,	// FMOVWSr
    0U,	// FMOVXDHighr
    0U,	// FMOVXDr
    0U,	// FMOVv2f32_ns
    0U,	// FMOVv2f64_ns
    0U,	// FMOVv4f32_ns
    18689U,	// FMSUBDrrr
    18689U,	// FMSUBSrrr
    1U,	// FMULDrr
    1U,	// FMULSrr
    1U,	// FMULX32
    1U,	// FMULX64
    35849U,	// FMULXv1i32_indexed
    36105U,	// FMULXv1i64_indexed
    1289U,	// FMULXv2f32
    265U,	// FMULXv2f64
    35849U,	// FMULXv2i32_indexed
    36105U,	// FMULXv2i64_indexed
    521U,	// FMULXv4f32
    35849U,	// FMULXv4i32_indexed
    35849U,	// FMULv1i32_indexed
    36105U,	// FMULv1i64_indexed
    1289U,	// FMULv2f32
    265U,	// FMULv2f64
    35849U,	// FMULv2i32_indexed
    36105U,	// FMULv2i64_indexed
    521U,	// FMULv4f32
    35849U,	// FMULv4i32_indexed
    0U,	// FNEGDr
    0U,	// FNEGSr
    0U,	// FNEGv2f32
    0U,	// FNEGv2f64
    0U,	// FNEGv4f32
    18689U,	// FNMADDDrrr
    18689U,	// FNMADDSrrr
    18689U,	// FNMSUBDrrr
    18689U,	// FNMSUBSrrr
    1U,	// FNMULDrr
    1U,	// FNMULSrr
    0U,	// FRECPEv1i32
    0U,	// FRECPEv1i64
    0U,	// FRECPEv2f32
    0U,	// FRECPEv2f64
    0U,	// FRECPEv4f32
    1U,	// FRECPS32
    1U,	// FRECPS64
    1289U,	// FRECPSv2f32
    265U,	// FRECPSv2f64
    521U,	// FRECPSv4f32
    0U,	// FRECPXv1i32
    0U,	// FRECPXv1i64
    0U,	// FRINTADr
    0U,	// FRINTASr
    0U,	// FRINTAv2f32
    0U,	// FRINTAv2f64
    0U,	// FRINTAv4f32
    0U,	// FRINTIDr
    0U,	// FRINTISr
    0U,	// FRINTIv2f32
    0U,	// FRINTIv2f64
    0U,	// FRINTIv4f32
    0U,	// FRINTMDr
    0U,	// FRINTMSr
    0U,	// FRINTMv2f32
    0U,	// FRINTMv2f64
    0U,	// FRINTMv4f32
    0U,	// FRINTNDr
    0U,	// FRINTNSr
    0U,	// FRINTNv2f32
    0U,	// FRINTNv2f64
    0U,	// FRINTNv4f32
    0U,	// FRINTPDr
    0U,	// FRINTPSr
    0U,	// FRINTPv2f32
    0U,	// FRINTPv2f64
    0U,	// FRINTPv4f32
    0U,	// FRINTXDr
    0U,	// FRINTXSr
    0U,	// FRINTXv2f32
    0U,	// FRINTXv2f64
    0U,	// FRINTXv4f32
    0U,	// FRINTZDr
    0U,	// FRINTZSr
    0U,	// FRINTZv2f32
    0U,	// FRINTZv2f64
    0U,	// FRINTZv4f32
    0U,	// FRSQRTEv1i32
    0U,	// FRSQRTEv1i64
    0U,	// FRSQRTEv2f32
    0U,	// FRSQRTEv2f64
    0U,	// FRSQRTEv4f32
    1U,	// FRSQRTS32
    1U,	// FRSQRTS64
    1289U,	// FRSQRTSv2f32
    265U,	// FRSQRTSv2f64
    521U,	// FRSQRTSv4f32
    0U,	// FSQRTDr
    0U,	// FSQRTSr
    0U,	// FSQRTv2f32
    0U,	// FSQRTv2f64
    0U,	// FSQRTv4f32
    1U,	// FSUBDrr
    1U,	// FSUBSrr
    1289U,	// FSUBv2f32
    265U,	// FSUBv2f64
    521U,	// FSUBv4f32
    0U,	// HINT
    0U,	// HLT
    0U,	// HVC
    0U,	// INSvi16gpr
    83U,	// INSvi16lane
    0U,	// INSvi32gpr
    83U,	// INSvi32lane
    0U,	// INSvi64gpr
    83U,	// INSvi64lane
    0U,	// INSvi8gpr
    83U,	// INSvi8lane
    0U,	// ISB
    0U,	// LD1Fourv16b
    0U,	// LD1Fourv16b_POST
    0U,	// LD1Fourv1d
    0U,	// LD1Fourv1d_POST
    0U,	// LD1Fourv2d
    0U,	// LD1Fourv2d_POST
    0U,	// LD1Fourv2s
    0U,	// LD1Fourv2s_POST
    0U,	// LD1Fourv4h
    0U,	// LD1Fourv4h_POST
    0U,	// LD1Fourv4s
    0U,	// LD1Fourv4s_POST
    0U,	// LD1Fourv8b
    0U,	// LD1Fourv8b_POST
    0U,	// LD1Fourv8h
    0U,	// LD1Fourv8h_POST
    0U,	// LD1Onev16b
    0U,	// LD1Onev16b_POST
    0U,	// LD1Onev1d
    0U,	// LD1Onev1d_POST
    0U,	// LD1Onev2d
    0U,	// LD1Onev2d_POST
    0U,	// LD1Onev2s
    0U,	// LD1Onev2s_POST
    0U,	// LD1Onev4h
    0U,	// LD1Onev4h_POST
    0U,	// LD1Onev4s
    0U,	// LD1Onev4s_POST
    0U,	// LD1Onev8b
    0U,	// LD1Onev8b_POST
    0U,	// LD1Onev8h
    0U,	// LD1Onev8h_POST
    0U,	// LD1Rv16b
    0U,	// LD1Rv16b_POST
    0U,	// LD1Rv1d
    0U,	// LD1Rv1d_POST
    0U,	// LD1Rv2d
    0U,	// LD1Rv2d_POST
    0U,	// LD1Rv2s
    0U,	// LD1Rv2s_POST
    0U,	// LD1Rv4h
    0U,	// LD1Rv4h_POST
    0U,	// LD1Rv4s
    0U,	// LD1Rv4s_POST
    0U,	// LD1Rv8b
    0U,	// LD1Rv8b_POST
    0U,	// LD1Rv8h
    0U,	// LD1Rv8h_POST
    0U,	// LD1Threev16b
    0U,	// LD1Threev16b_POST
    0U,	// LD1Threev1d
    0U,	// LD1Threev1d_POST
    0U,	// LD1Threev2d
    0U,	// LD1Threev2d_POST
    0U,	// LD1Threev2s
    0U,	// LD1Threev2s_POST
    0U,	// LD1Threev4h
    0U,	// LD1Threev4h_POST
    0U,	// LD1Threev4s
    0U,	// LD1Threev4s_POST
    0U,	// LD1Threev8b
    0U,	// LD1Threev8b_POST
    0U,	// LD1Threev8h
    0U,	// LD1Threev8h_POST
    0U,	// LD1Twov16b
    0U,	// LD1Twov16b_POST
    0U,	// LD1Twov1d
    0U,	// LD1Twov1d_POST
    0U,	// LD1Twov2d
    0U,	// LD1Twov2d_POST
    0U,	// LD1Twov2s
    0U,	// LD1Twov2s_POST
    0U,	// LD1Twov4h
    0U,	// LD1Twov4h_POST
    0U,	// LD1Twov4s
    0U,	// LD1Twov4s_POST
    0U,	// LD1Twov8b
    0U,	// LD1Twov8b_POST
    0U,	// LD1Twov8h
    0U,	// LD1Twov8h_POST
    0U,	// LD1i16
    0U,	// LD1i16_POST
    0U,	// LD1i32
    0U,	// LD1i32_POST
    0U,	// LD1i64
    0U,	// LD1i64_POST
    0U,	// LD1i8
    0U,	// LD1i8_POST
    0U,	// LD2Rv16b
    0U,	// LD2Rv16b_POST
    0U,	// LD2Rv1d
    0U,	// LD2Rv1d_POST
    0U,	// LD2Rv2d
    0U,	// LD2Rv2d_POST
    0U,	// LD2Rv2s
    0U,	// LD2Rv2s_POST
    0U,	// LD2Rv4h
    0U,	// LD2Rv4h_POST
    0U,	// LD2Rv4s
    0U,	// LD2Rv4s_POST
    0U,	// LD2Rv8b
    0U,	// LD2Rv8b_POST
    0U,	// LD2Rv8h
    0U,	// LD2Rv8h_POST
    0U,	// LD2Twov16b
    0U,	// LD2Twov16b_POST
    0U,	// LD2Twov2d
    0U,	// LD2Twov2d_POST
    0U,	// LD2Twov2s
    0U,	// LD2Twov2s_POST
    0U,	// LD2Twov4h
    0U,	// LD2Twov4h_POST
    0U,	// LD2Twov4s
    0U,	// LD2Twov4s_POST
    0U,	// LD2Twov8b
    0U,	// LD2Twov8b_POST
    0U,	// LD2Twov8h
    0U,	// LD2Twov8h_POST
    0U,	// LD2i16
    0U,	// LD2i16_POST
    0U,	// LD2i32
    0U,	// LD2i32_POST
    0U,	// LD2i64
    0U,	// LD2i64_POST
    0U,	// LD2i8
    0U,	// LD2i8_POST
    0U,	// LD3Rv16b
    0U,	// LD3Rv16b_POST
    0U,	// LD3Rv1d
    0U,	// LD3Rv1d_POST
    0U,	// LD3Rv2d
    0U,	// LD3Rv2d_POST
    0U,	// LD3Rv2s
    0U,	// LD3Rv2s_POST
    0U,	// LD3Rv4h
    0U,	// LD3Rv4h_POST
    0U,	// LD3Rv4s
    0U,	// LD3Rv4s_POST
    0U,	// LD3Rv8b
    0U,	// LD3Rv8b_POST
    0U,	// LD3Rv8h
    0U,	// LD3Rv8h_POST
    0U,	// LD3Threev16b
    0U,	// LD3Threev16b_POST
    0U,	// LD3Threev2d
    0U,	// LD3Threev2d_POST
    0U,	// LD3Threev2s
    0U,	// LD3Threev2s_POST
    0U,	// LD3Threev4h
    0U,	// LD3Threev4h_POST
    0U,	// LD3Threev4s
    0U,	// LD3Threev4s_POST
    0U,	// LD3Threev8b
    0U,	// LD3Threev8b_POST
    0U,	// LD3Threev8h
    0U,	// LD3Threev8h_POST
    0U,	// LD3i16
    0U,	// LD3i16_POST
    0U,	// LD3i32
    0U,	// LD3i32_POST
    0U,	// LD3i64
    0U,	// LD3i64_POST
    0U,	// LD3i8
    0U,	// LD3i8_POST
    0U,	// LD4Fourv16b
    0U,	// LD4Fourv16b_POST
    0U,	// LD4Fourv2d
    0U,	// LD4Fourv2d_POST
    0U,	// LD4Fourv2s
    0U,	// LD4Fourv2s_POST
    0U,	// LD4Fourv4h
    0U,	// LD4Fourv4h_POST
    0U,	// LD4Fourv4s
    0U,	// LD4Fourv4s_POST
    0U,	// LD4Fourv8b
    0U,	// LD4Fourv8b_POST
    0U,	// LD4Fourv8h
    0U,	// LD4Fourv8h_POST
    0U,	// LD4Rv16b
    0U,	// LD4Rv16b_POST
    0U,	// LD4Rv1d
    0U,	// LD4Rv1d_POST
    0U,	// LD4Rv2d
    0U,	// LD4Rv2d_POST
    0U,	// LD4Rv2s
    0U,	// LD4Rv2s_POST
    0U,	// LD4Rv4h
    0U,	// LD4Rv4h_POST
    0U,	// LD4Rv4s
    0U,	// LD4Rv4s_POST
    0U,	// LD4Rv8b
    0U,	// LD4Rv8b_POST
    0U,	// LD4Rv8h
    0U,	// LD4Rv8h_POST
    0U,	// LD4i16
    0U,	// LD4i16_POST
    0U,	// LD4i32
    0U,	// LD4i32_POST
    0U,	// LD4i64
    0U,	// LD4i64_POST
    0U,	// LD4i8
    0U,	// LD4i8_POST
    4U,	// LDARB
    4U,	// LDARH
    4U,	// LDARW
    4U,	// LDARX
    3588U,	// LDAXPW
    3588U,	// LDAXPX
    4U,	// LDAXRB
    4U,	// LDAXRH
    4U,	// LDAXRW
    4U,	// LDAXRX
    43268U,	// LDNPDi
    51460U,	// LDNPQi
    59652U,	// LDNPSi
    59652U,	// LDNPWi
    43268U,	// LDNPXi
    43268U,	// LDPDi
    69444U,	// LDPDpost
    330052U,	// LDPDpre
    51460U,	// LDPQi
    77636U,	// LDPQpost
    338244U,	// LDPQpre
    59652U,	// LDPSWi
    85828U,	// LDPSWpost
    346436U,	// LDPSWpre
    59652U,	// LDPSi
    85828U,	// LDPSpost
    346436U,	// LDPSpre
    59652U,	// LDPWi
    85828U,	// LDPWpost
    346436U,	// LDPWpre
    43268U,	// LDPXi
    69444U,	// LDPXpost
    330052U,	// LDPXpre
    4U,	// LDRBBpost
    4161U,	// LDRBBpre
    92417U,	// LDRBBroW
    100609U,	// LDRBBroX
    89U,	// LDRBBui
    4U,	// LDRBpost
    4161U,	// LDRBpre
    92417U,	// LDRBroW
    100609U,	// LDRBroX
    89U,	// LDRBui
    0U,	// LDRDl
    4U,	// LDRDpost
    4161U,	// LDRDpre
    108801U,	// LDRDroW
    116993U,	// LDRDroX
    97U,	// LDRDui
    4U,	// LDRHHpost
    4161U,	// LDRHHpre
    125185U,	// LDRHHroW
    133377U,	// LDRHHroX
    105U,	// LDRHHui
    4U,	// LDRHpost
    4161U,	// LDRHpre
    125185U,	// LDRHroW
    133377U,	// LDRHroX
    105U,	// LDRHui
    0U,	// LDRQl
    4U,	// LDRQpost
    4161U,	// LDRQpre
    141569U,	// LDRQroW
    149761U,	// LDRQroX
    113U,	// LDRQui
    4U,	// LDRSBWpost
    4161U,	// LDRSBWpre
    92417U,	// LDRSBWroW
    100609U,	// LDRSBWroX
    89U,	// LDRSBWui
    4U,	// LDRSBXpost
    4161U,	// LDRSBXpre
    92417U,	// LDRSBXroW
    100609U,	// LDRSBXroX
    89U,	// LDRSBXui
    4U,	// LDRSHWpost
    4161U,	// LDRSHWpre
    125185U,	// LDRSHWroW
    133377U,	// LDRSHWroX
    105U,	// LDRSHWui
    4U,	// LDRSHXpost
    4161U,	// LDRSHXpre
    125185U,	// LDRSHXroW
    133377U,	// LDRSHXroX
    105U,	// LDRSHXui
    0U,	// LDRSWl
    4U,	// LDRSWpost
    4161U,	// LDRSWpre
    157953U,	// LDRSWroW
    166145U,	// LDRSWroX
    121U,	// LDRSWui
    0U,	// LDRSl
    4U,	// LDRSpost
    4161U,	// LDRSpre
    157953U,	// LDRSroW
    166145U,	// LDRSroX
    121U,	// LDRSui
    0U,	// LDRWl
    4U,	// LDRWpost
    4161U,	// LDRWpre
    157953U,	// LDRWroW
    166145U,	// LDRWroX
    121U,	// LDRWui
    0U,	// LDRXl
    4U,	// LDRXpost
    4161U,	// LDRXpre
    108801U,	// LDRXroW
    116993U,	// LDRXroX
    97U,	// LDRXui
    3585U,	// LDTRBi
    3585U,	// LDTRHi
    3585U,	// LDTRSBWi
    3585U,	// LDTRSBXi
    3585U,	// LDTRSHWi
    3585U,	// LDTRSHXi
    3585U,	// LDTRSWi
    3585U,	// LDTRWi
    3585U,	// LDTRXi
    3585U,	// LDURBBi
    3585U,	// LDURBi
    3585U,	// LDURDi
    3585U,	// LDURHHi
    3585U,	// LDURHi
    3585U,	// LDURQi
    3585U,	// LDURSBWi
    3585U,	// LDURSBXi
    3585U,	// LDURSHWi
    3585U,	// LDURSHXi
    3585U,	// LDURSWi
    3585U,	// LDURSi
    3585U,	// LDURWi
    3585U,	// LDURXi
    3588U,	// LDXPW
    3588U,	// LDXPX
    4U,	// LDXRB
    4U,	// LDXRH
    4U,	// LDXRW
    4U,	// LDXRX
    0U,	// LOADgot
    1U,	// LSLVWr
    1U,	// LSLVXr
    1U,	// LSRVWr
    1U,	// LSRVXr
    18689U,	// MADDWrrr
    18689U,	// MADDXrrr
    1041U,	// MLAv16i8
    1297U,	// MLAv2i32
    27665U,	// MLAv2i32_indexed
    1553U,	// MLAv4i16
    28945U,	// MLAv4i16_indexed
    529U,	// MLAv4i32
    27665U,	// MLAv4i32_indexed
    785U,	// MLAv8i16
    28945U,	// MLAv8i16_indexed
    1809U,	// MLAv8i8
    1041U,	// MLSv16i8
    1297U,	// MLSv2i32
    27665U,	// MLSv2i32_indexed
    1553U,	// MLSv4i16
    28945U,	// MLSv4i16_indexed
    529U,	// MLSv4i32
    27665U,	// MLSv4i32_indexed
    785U,	// MLSv8i16
    28945U,	// MLSv8i16_indexed
    1809U,	// MLSv8i8
    0U,	// MOVID
    0U,	// MOVIv16b_ns
    0U,	// MOVIv2d_ns
    4U,	// MOVIv2i32
    4U,	// MOVIv2s_msl
    4U,	// MOVIv4i16
    4U,	// MOVIv4i32
    4U,	// MOVIv4s_msl
    0U,	// MOVIv8b_ns
    4U,	// MOVIv8i16
    0U,	// MOVKWi
    0U,	// MOVKXi
    4U,	// MOVNWi
    4U,	// MOVNXi
    4U,	// MOVZWi
    4U,	// MOVZXi
    0U,	// MOVaddr
    0U,	// MOVaddrBA
    0U,	// MOVaddrCP
    0U,	// MOVaddrEXT
    0U,	// MOVaddrJT
    0U,	// MOVaddrTLS
    0U,	// MOVi32imm
    0U,	// MOVi64imm
    0U,	// MRS
    0U,	// MSR
    0U,	// MSRpstate
    18689U,	// MSUBWrrr
    18689U,	// MSUBXrrr
    1033U,	// MULv16i8
    1289U,	// MULv2i32
    35849U,	// MULv2i32_indexed
    1545U,	// MULv4i16
    37129U,	// MULv4i16_indexed
    521U,	// MULv4i32
    35849U,	// MULv4i32_indexed
    777U,	// MULv8i16
    37129U,	// MULv8i16_indexed
    1801U,	// MULv8i8
    4U,	// MVNIv2i32
    4U,	// MVNIv2s_msl
    4U,	// MVNIv4i16
    4U,	// MVNIv4i32
    4U,	// MVNIv4s_msl
    4U,	// MVNIv8i16
    0U,	// NEGv16i8
    0U,	// NEGv1i64
    0U,	// NEGv2i32
    0U,	// NEGv2i64
    0U,	// NEGv4i16
    0U,	// NEGv4i32
    0U,	// NEGv8i16
    0U,	// NEGv8i8
    0U,	// NOTv16i8
    0U,	// NOTv8i8
    0U,	// ORNWrr
    33U,	// ORNWrs
    0U,	// ORNXrr
    33U,	// ORNXrs
    1033U,	// ORNv16i8
    1801U,	// ORNv8i8
    49U,	// ORRWri
    0U,	// ORRWrr
    33U,	// ORRWrs
    57U,	// ORRXri
    0U,	// ORRXrr
    33U,	// ORRXrs
    1033U,	// ORRv16i8
    0U,	// ORRv2i32
    0U,	// ORRv4i16
    0U,	// ORRv4i32
    0U,	// ORRv8i16
    1801U,	// ORRv8i8
    1033U,	// PMULLv16i8
    0U,	// PMULLv1i64
    0U,	// PMULLv2i64
    1801U,	// PMULLv8i8
    1033U,	// PMULv16i8
    1801U,	// PMULv8i8
    0U,	// PRFMl
    108801U,	// PRFMroW
    116993U,	// PRFMroX
    97U,	// PRFMui
    3585U,	// PRFUMi
    265U,	// RADDHNv2i64_v2i32
    273U,	// RADDHNv2i64_v4i32
    521U,	// RADDHNv4i32_v4i16
    529U,	// RADDHNv4i32_v8i16
    785U,	// RADDHNv8i16_v16i8
    777U,	// RADDHNv8i16_v8i8
    0U,	// RBITWr
    0U,	// RBITXr
    0U,	// RBITv16i8
    0U,	// RBITv8i8
    0U,	// RET
    0U,	// RET_ReallyLR
    0U,	// REV16Wr
    0U,	// REV16Xr
    0U,	// REV16v16i8
    0U,	// REV16v8i8
    0U,	// REV32Xr
    0U,	// REV32v16i8
    0U,	// REV32v4i16
    0U,	// REV32v8i16
    0U,	// REV32v8i8
    0U,	// REV64v16i8
    0U,	// REV64v2i32
    0U,	// REV64v4i16
    0U,	// REV64v4i32
    0U,	// REV64v8i16
    0U,	// REV64v8i8
    0U,	// REVWr
    0U,	// REVXr
    1U,	// RORVWr
    1U,	// RORVXr
    65U,	// RSHRNv16i8_shift
    1U,	// RSHRNv2i32_shift
    1U,	// RSHRNv4i16_shift
    65U,	// RSHRNv4i32_shift
    65U,	// RSHRNv8i16_shift
    1U,	// RSHRNv8i8_shift
    265U,	// RSUBHNv2i64_v2i32
    273U,	// RSUBHNv2i64_v4i32
    521U,	// RSUBHNv4i32_v4i16
    529U,	// RSUBHNv4i32_v8i16
    785U,	// RSUBHNv8i16_v16i8
    777U,	// RSUBHNv8i16_v8i8
    1041U,	// SABALv16i8_v8i16
    1297U,	// SABALv2i32_v2i64
    1553U,	// SABALv4i16_v4i32
    529U,	// SABALv4i32_v2i64
    785U,	// SABALv8i16_v4i32
    1809U,	// SABALv8i8_v8i16
    1041U,	// SABAv16i8
    1297U,	// SABAv2i32
    1553U,	// SABAv4i16
    529U,	// SABAv4i32
    785U,	// SABAv8i16
    1809U,	// SABAv8i8
    1033U,	// SABDLv16i8_v8i16
    1289U,	// SABDLv2i32_v2i64
    1545U,	// SABDLv4i16_v4i32
    521U,	// SABDLv4i32_v2i64
    777U,	// SABDLv8i16_v4i32
    1801U,	// SABDLv8i8_v8i16
    1033U,	// SABDv16i8
    1289U,	// SABDv2i32
    1545U,	// SABDv4i16
    521U,	// SABDv4i32
    777U,	// SABDv8i16
    1801U,	// SABDv8i8
    0U,	// SADALPv16i8_v8i16
    0U,	// SADALPv2i32_v1i64
    0U,	// SADALPv4i16_v2i32
    0U,	// SADALPv4i32_v2i64
    0U,	// SADALPv8i16_v4i32
    0U,	// SADALPv8i8_v4i16
    0U,	// SADDLPv16i8_v8i16
    0U,	// SADDLPv2i32_v1i64
    0U,	// SADDLPv4i16_v2i32
    0U,	// SADDLPv4i32_v2i64
    0U,	// SADDLPv8i16_v4i32
    0U,	// SADDLPv8i8_v4i16
    0U,	// SADDLVv16i8v
    0U,	// SADDLVv4i16v
    0U,	// SADDLVv4i32v
    0U,	// SADDLVv8i16v
    0U,	// SADDLVv8i8v
    1033U,	// SADDLv16i8_v8i16
    1289U,	// SADDLv2i32_v2i64
    1545U,	// SADDLv4i16_v4i32
    521U,	// SADDLv4i32_v2i64
    777U,	// SADDLv8i16_v4i32
    1801U,	// SADDLv8i8_v8i16
    1033U,	// SADDWv16i8_v8i16
    1289U,	// SADDWv2i32_v2i64
    1545U,	// SADDWv4i16_v4i32
    521U,	// SADDWv4i32_v2i64
    777U,	// SADDWv8i16_v4i32
    1801U,	// SADDWv8i8_v8i16
    1U,	// SBCSWr
    1U,	// SBCSXr
    1U,	// SBCWr
    1U,	// SBCXr
    18689U,	// SBFMWri
    18689U,	// SBFMXri
    1U,	// SCVTFSWDri
    1U,	// SCVTFSWSri
    1U,	// SCVTFSXDri
    1U,	// SCVTFSXSri
    0U,	// SCVTFUWDri
    0U,	// SCVTFUWSri
    0U,	// SCVTFUXDri
    0U,	// SCVTFUXSri
    1U,	// SCVTFd
    1U,	// SCVTFs
    0U,	// SCVTFv1i32
    0U,	// SCVTFv1i64
    0U,	// SCVTFv2f32
    0U,	// SCVTFv2f64
    1U,	// SCVTFv2i32_shift
    1U,	// SCVTFv2i64_shift
    0U,	// SCVTFv4f32
    1U,	// SCVTFv4i32_shift
    1U,	// SDIVWr
    1U,	// SDIVXr
    1U,	// SDIV_IntWr
    1U,	// SDIV_IntXr
    529U,	// SHA1Crrr
    0U,	// SHA1Hrr
    529U,	// SHA1Mrrr
    529U,	// SHA1Prrr
    529U,	// SHA1SU0rrr
    0U,	// SHA1SU1rr
    529U,	// SHA256H2rrr
    529U,	// SHA256Hrrr
    0U,	// SHA256SU0rr
    529U,	// SHA256SU1rrr
    1033U,	// SHADDv16i8
    1289U,	// SHADDv2i32
    1545U,	// SHADDv4i16
    521U,	// SHADDv4i32
    777U,	// SHADDv8i16
    1801U,	// SHADDv8i8
    4U,	// SHLLv16i8
    4U,	// SHLLv2i32
    4U,	// SHLLv4i16
    4U,	// SHLLv4i32
    5U,	// SHLLv8i16
    5U,	// SHLLv8i8
    1U,	// SHLd
    1U,	// SHLv16i8_shift
    1U,	// SHLv2i32_shift
    1U,	// SHLv2i64_shift
    1U,	// SHLv4i16_shift
    1U,	// SHLv4i32_shift
    1U,	// SHLv8i16_shift
    1U,	// SHLv8i8_shift
    65U,	// SHRNv16i8_shift
    1U,	// SHRNv2i32_shift
    1U,	// SHRNv4i16_shift
    65U,	// SHRNv4i32_shift
    65U,	// SHRNv8i16_shift
    1U,	// SHRNv8i8_shift
    1033U,	// SHSUBv16i8
    1289U,	// SHSUBv2i32
    1545U,	// SHSUBv4i16
    521U,	// SHSUBv4i32
    777U,	// SHSUBv8i16
    1801U,	// SHSUBv8i8
    65U,	// SLId
    65U,	// SLIv16i8_shift
    65U,	// SLIv2i32_shift
    65U,	// SLIv2i64_shift
    65U,	// SLIv4i16_shift
    65U,	// SLIv4i32_shift
    65U,	// SLIv8i16_shift
    65U,	// SLIv8i8_shift
    18689U,	// SMADDLrrr
    1033U,	// SMAXPv16i8
    1289U,	// SMAXPv2i32
    1545U,	// SMAXPv4i16
    521U,	// SMAXPv4i32
    777U,	// SMAXPv8i16
    1801U,	// SMAXPv8i8
    0U,	// SMAXVv16i8v
    0U,	// SMAXVv4i16v
    0U,	// SMAXVv4i32v
    0U,	// SMAXVv8i16v
    0U,	// SMAXVv8i8v
    1033U,	// SMAXv16i8
    1289U,	// SMAXv2i32
    1545U,	// SMAXv4i16
    521U,	// SMAXv4i32
    777U,	// SMAXv8i16
    1801U,	// SMAXv8i8
    0U,	// SMC
    1033U,	// SMINPv16i8
    1289U,	// SMINPv2i32
    1545U,	// SMINPv4i16
    521U,	// SMINPv4i32
    777U,	// SMINPv8i16
    1801U,	// SMINPv8i8
    0U,	// SMINVv16i8v
    0U,	// SMINVv4i16v
    0U,	// SMINVv4i32v
    0U,	// SMINVv8i16v
    0U,	// SMINVv8i8v
    1033U,	// SMINv16i8
    1289U,	// SMINv2i32
    1545U,	// SMINv4i16
    521U,	// SMINv4i32
    777U,	// SMINv8i16
    1801U,	// SMINv8i8
    1041U,	// SMLALv16i8_v8i16
    27665U,	// SMLALv2i32_indexed
    1297U,	// SMLALv2i32_v2i64
    28945U,	// SMLALv4i16_indexed
    1553U,	// SMLALv4i16_v4i32
    27665U,	// SMLALv4i32_indexed
    529U,	// SMLALv4i32_v2i64
    28945U,	// SMLALv8i16_indexed
    785U,	// SMLALv8i16_v4i32
    1809U,	// SMLALv8i8_v8i16
    1041U,	// SMLSLv16i8_v8i16
    27665U,	// SMLSLv2i32_indexed
    1297U,	// SMLSLv2i32_v2i64
    28945U,	// SMLSLv4i16_indexed
    1553U,	// SMLSLv4i16_v4i32
    27665U,	// SMLSLv4i32_indexed
    529U,	// SMLSLv4i32_v2i64
    28945U,	// SMLSLv8i16_indexed
    785U,	// SMLSLv8i16_v4i32
    1809U,	// SMLSLv8i8_v8i16
    75U,	// SMOVvi16to32
    75U,	// SMOVvi16to64
    75U,	// SMOVvi32to64
    75U,	// SMOVvi8to32
    75U,	// SMOVvi8to64
    18689U,	// SMSUBLrrr
    1U,	// SMULHrr
    1033U,	// SMULLv16i8_v8i16
    35849U,	// SMULLv2i32_indexed
    1289U,	// SMULLv2i32_v2i64
    37129U,	// SMULLv4i16_indexed
    1545U,	// SMULLv4i16_v4i32
    35849U,	// SMULLv4i32_indexed
    521U,	// SMULLv4i32_v2i64
    37129U,	// SMULLv8i16_indexed
    777U,	// SMULLv8i16_v4i32
    1801U,	// SMULLv8i8_v8i16
    0U,	// SQABSv16i8
    0U,	// SQABSv1i16
    0U,	// SQABSv1i32
    0U,	// SQABSv1i64
    0U,	// SQABSv1i8
    0U,	// SQABSv2i32
    0U,	// SQABSv2i64
    0U,	// SQABSv4i16
    0U,	// SQABSv4i32
    0U,	// SQABSv8i16
    0U,	// SQABSv8i8
    1033U,	// SQADDv16i8
    1U,	// SQADDv1i16
    1U,	// SQADDv1i32
    1U,	// SQADDv1i64
    1U,	// SQADDv1i8
    1289U,	// SQADDv2i32
    265U,	// SQADDv2i64
    1545U,	// SQADDv4i16
    521U,	// SQADDv4i32
    777U,	// SQADDv8i16
    1801U,	// SQADDv8i8
    65U,	// SQDMLALi16
    65U,	// SQDMLALi32
    28945U,	// SQDMLALv1i32_indexed
    27665U,	// SQDMLALv1i64_indexed
    27665U,	// SQDMLALv2i32_indexed
    1297U,	// SQDMLALv2i32_v2i64
    28945U,	// SQDMLALv4i16_indexed
    1553U,	// SQDMLALv4i16_v4i32
    27665U,	// SQDMLALv4i32_indexed
    529U,	// SQDMLALv4i32_v2i64
    28945U,	// SQDMLALv8i16_indexed
    785U,	// SQDMLALv8i16_v4i32
    65U,	// SQDMLSLi16
    65U,	// SQDMLSLi32
    28945U,	// SQDMLSLv1i32_indexed
    27665U,	// SQDMLSLv1i64_indexed
    27665U,	// SQDMLSLv2i32_indexed
    1297U,	// SQDMLSLv2i32_v2i64
    28945U,	// SQDMLSLv4i16_indexed
    1553U,	// SQDMLSLv4i16_v4i32
    27665U,	// SQDMLSLv4i32_indexed
    529U,	// SQDMLSLv4i32_v2i64
    28945U,	// SQDMLSLv8i16_indexed
    785U,	// SQDMLSLv8i16_v4i32
    1U,	// SQDMULHv1i16
    37129U,	// SQDMULHv1i16_indexed
    1U,	// SQDMULHv1i32
    35849U,	// SQDMULHv1i32_indexed
    1289U,	// SQDMULHv2i32
    35849U,	// SQDMULHv2i32_indexed
    1545U,	// SQDMULHv4i16
    37129U,	// SQDMULHv4i16_indexed
    521U,	// SQDMULHv4i32
    35849U,	// SQDMULHv4i32_indexed
    777U,	// SQDMULHv8i16
    37129U,	// SQDMULHv8i16_indexed
    1U,	// SQDMULLi16
    1U,	// SQDMULLi32
    37129U,	// SQDMULLv1i32_indexed
    35849U,	// SQDMULLv1i64_indexed
    35849U,	// SQDMULLv2i32_indexed
    1289U,	// SQDMULLv2i32_v2i64
    37129U,	// SQDMULLv4i16_indexed
    1545U,	// SQDMULLv4i16_v4i32
    35849U,	// SQDMULLv4i32_indexed
    521U,	// SQDMULLv4i32_v2i64
    37129U,	// SQDMULLv8i16_indexed
    777U,	// SQDMULLv8i16_v4i32
    0U,	// SQNEGv16i8
    0U,	// SQNEGv1i16
    0U,	// SQNEGv1i32
    0U,	// SQNEGv1i64
    0U,	// SQNEGv1i8
    0U,	// SQNEGv2i32
    0U,	// SQNEGv2i64
    0U,	// SQNEGv4i16
    0U,	// SQNEGv4i32
    0U,	// SQNEGv8i16
    0U,	// SQNEGv8i8
    1U,	// SQRDMULHv1i16
    37129U,	// SQRDMULHv1i16_indexed
    1U,	// SQRDMULHv1i32
    35849U,	// SQRDMULHv1i32_indexed
    1289U,	// SQRDMULHv2i32
    35849U,	// SQRDMULHv2i32_indexed
    1545U,	// SQRDMULHv4i16
    37129U,	// SQRDMULHv4i16_indexed
    521U,	// SQRDMULHv4i32
    35849U,	// SQRDMULHv4i32_indexed
    777U,	// SQRDMULHv8i16
    37129U,	// SQRDMULHv8i16_indexed
    1033U,	// SQRSHLv16i8
    1U,	// SQRSHLv1i16
    1U,	// SQRSHLv1i32
    1U,	// SQRSHLv1i64
    1U,	// SQRSHLv1i8
    1289U,	// SQRSHLv2i32
    265U,	// SQRSHLv2i64
    1545U,	// SQRSHLv4i16
    521U,	// SQRSHLv4i32
    777U,	// SQRSHLv8i16
    1801U,	// SQRSHLv8i8
    1U,	// SQRSHRNb
    1U,	// SQRSHRNh
    1U,	// SQRSHRNs
    65U,	// SQRSHRNv16i8_shift
    1U,	// SQRSHRNv2i32_shift
    1U,	// SQRSHRNv4i16_shift
    65U,	// SQRSHRNv4i32_shift
    65U,	// SQRSHRNv8i16_shift
    1U,	// SQRSHRNv8i8_shift
    1U,	// SQRSHRUNb
    1U,	// SQRSHRUNh
    1U,	// SQRSHRUNs
    65U,	// SQRSHRUNv16i8_shift
    1U,	// SQRSHRUNv2i32_shift
    1U,	// SQRSHRUNv4i16_shift
    65U,	// SQRSHRUNv4i32_shift
    65U,	// SQRSHRUNv8i16_shift
    1U,	// SQRSHRUNv8i8_shift
    1U,	// SQSHLUb
    1U,	// SQSHLUd
    1U,	// SQSHLUh
    1U,	// SQSHLUs
    1U,	// SQSHLUv16i8_shift
    1U,	// SQSHLUv2i32_shift
    1U,	// SQSHLUv2i64_shift
    1U,	// SQSHLUv4i16_shift
    1U,	// SQSHLUv4i32_shift
    1U,	// SQSHLUv8i16_shift
    1U,	// SQSHLUv8i8_shift
    1U,	// SQSHLb
    1U,	// SQSHLd
    1U,	// SQSHLh
    1U,	// SQSHLs
    1033U,	// SQSHLv16i8
    1U,	// SQSHLv16i8_shift
    1U,	// SQSHLv1i16
    1U,	// SQSHLv1i32
    1U,	// SQSHLv1i64
    1U,	// SQSHLv1i8
    1289U,	// SQSHLv2i32
    1U,	// SQSHLv2i32_shift
    265U,	// SQSHLv2i64
    1U,	// SQSHLv2i64_shift
    1545U,	// SQSHLv4i16
    1U,	// SQSHLv4i16_shift
    521U,	// SQSHLv4i32
    1U,	// SQSHLv4i32_shift
    777U,	// SQSHLv8i16
    1U,	// SQSHLv8i16_shift
    1801U,	// SQSHLv8i8
    1U,	// SQSHLv8i8_shift
    1U,	// SQSHRNb
    1U,	// SQSHRNh
    1U,	// SQSHRNs
    65U,	// SQSHRNv16i8_shift
    1U,	// SQSHRNv2i32_shift
    1U,	// SQSHRNv4i16_shift
    65U,	// SQSHRNv4i32_shift
    65U,	// SQSHRNv8i16_shift
    1U,	// SQSHRNv8i8_shift
    1U,	// SQSHRUNb
    1U,	// SQSHRUNh
    1U,	// SQSHRUNs
    65U,	// SQSHRUNv16i8_shift
    1U,	// SQSHRUNv2i32_shift
    1U,	// SQSHRUNv4i16_shift
    65U,	// SQSHRUNv4i32_shift
    65U,	// SQSHRUNv8i16_shift
    1U,	// SQSHRUNv8i8_shift
    1033U,	// SQSUBv16i8
    1U,	// SQSUBv1i16
    1U,	// SQSUBv1i32
    1U,	// SQSUBv1i64
    1U,	// SQSUBv1i8
    1289U,	// SQSUBv2i32
    265U,	// SQSUBv2i64
    1545U,	// SQSUBv4i16
    521U,	// SQSUBv4i32
    777U,	// SQSUBv8i16
    1801U,	// SQSUBv8i8
    0U,	// SQXTNv16i8
    0U,	// SQXTNv1i16
    0U,	// SQXTNv1i32
    0U,	// SQXTNv1i8
    0U,	// SQXTNv2i32
    0U,	// SQXTNv4i16
    0U,	// SQXTNv4i32
    0U,	// SQXTNv8i16
    0U,	// SQXTNv8i8
    0U,	// SQXTUNv16i8
    0U,	// SQXTUNv1i16
    0U,	// SQXTUNv1i32
    0U,	// SQXTUNv1i8
    0U,	// SQXTUNv2i32
    0U,	// SQXTUNv4i16
    0U,	// SQXTUNv4i32
    0U,	// SQXTUNv8i16
    0U,	// SQXTUNv8i8
    1033U,	// SRHADDv16i8
    1289U,	// SRHADDv2i32
    1545U,	// SRHADDv4i16
    521U,	// SRHADDv4i32
    777U,	// SRHADDv8i16
    1801U,	// SRHADDv8i8
    65U,	// SRId
    65U,	// SRIv16i8_shift
    65U,	// SRIv2i32_shift
    65U,	// SRIv2i64_shift
    65U,	// SRIv4i16_shift
    65U,	// SRIv4i32_shift
    65U,	// SRIv8i16_shift
    65U,	// SRIv8i8_shift
    1033U,	// SRSHLv16i8
    1U,	// SRSHLv1i64
    1289U,	// SRSHLv2i32
    265U,	// SRSHLv2i64
    1545U,	// SRSHLv4i16
    521U,	// SRSHLv4i32
    777U,	// SRSHLv8i16
    1801U,	// SRSHLv8i8
    1U,	// SRSHRd
    1U,	// SRSHRv16i8_shift
    1U,	// SRSHRv2i32_shift
    1U,	// SRSHRv2i64_shift
    1U,	// SRSHRv4i16_shift
    1U,	// SRSHRv4i32_shift
    1U,	// SRSHRv8i16_shift
    1U,	// SRSHRv8i8_shift
    65U,	// SRSRAd
    65U,	// SRSRAv16i8_shift
    65U,	// SRSRAv2i32_shift
    65U,	// SRSRAv2i64_shift
    65U,	// SRSRAv4i16_shift
    65U,	// SRSRAv4i32_shift
    65U,	// SRSRAv8i16_shift
    65U,	// SRSRAv8i8_shift
    1U,	// SSHLLv16i8_shift
    1U,	// SSHLLv2i32_shift
    1U,	// SSHLLv4i16_shift
    1U,	// SSHLLv4i32_shift
    1U,	// SSHLLv8i16_shift
    1U,	// SSHLLv8i8_shift
    1033U,	// SSHLv16i8
    1U,	// SSHLv1i64
    1289U,	// SSHLv2i32
    265U,	// SSHLv2i64
    1545U,	// SSHLv4i16
    521U,	// SSHLv4i32
    777U,	// SSHLv8i16
    1801U,	// SSHLv8i8
    1U,	// SSHRd
    1U,	// SSHRv16i8_shift
    1U,	// SSHRv2i32_shift
    1U,	// SSHRv2i64_shift
    1U,	// SSHRv4i16_shift
    1U,	// SSHRv4i32_shift
    1U,	// SSHRv8i16_shift
    1U,	// SSHRv8i8_shift
    65U,	// SSRAd
    65U,	// SSRAv16i8_shift
    65U,	// SSRAv2i32_shift
    65U,	// SSRAv2i64_shift
    65U,	// SSRAv4i16_shift
    65U,	// SSRAv4i32_shift
    65U,	// SSRAv8i16_shift
    65U,	// SSRAv8i8_shift
    1033U,	// SSUBLv16i8_v8i16
    1289U,	// SSUBLv2i32_v2i64
    1545U,	// SSUBLv4i16_v4i32
    521U,	// SSUBLv4i32_v2i64
    777U,	// SSUBLv8i16_v4i32
    1801U,	// SSUBLv8i8_v8i16
    1033U,	// SSUBWv16i8_v8i16
    1289U,	// SSUBWv2i32_v2i64
    1545U,	// SSUBWv4i16_v4i32
    521U,	// SSUBWv4i32_v2i64
    777U,	// SSUBWv8i16_v4i32
    1801U,	// SSUBWv8i8_v8i16
    0U,	// ST1Fourv16b
    0U,	// ST1Fourv16b_POST
    0U,	// ST1Fourv1d
    0U,	// ST1Fourv1d_POST
    0U,	// ST1Fourv2d
    0U,	// ST1Fourv2d_POST
    0U,	// ST1Fourv2s
    0U,	// ST1Fourv2s_POST
    0U,	// ST1Fourv4h
    0U,	// ST1Fourv4h_POST
    0U,	// ST1Fourv4s
    0U,	// ST1Fourv4s_POST
    0U,	// ST1Fourv8b
    0U,	// ST1Fourv8b_POST
    0U,	// ST1Fourv8h
    0U,	// ST1Fourv8h_POST
    0U,	// ST1Onev16b
    0U,	// ST1Onev16b_POST
    0U,	// ST1Onev1d
    0U,	// ST1Onev1d_POST
    0U,	// ST1Onev2d
    0U,	// ST1Onev2d_POST
    0U,	// ST1Onev2s
    0U,	// ST1Onev2s_POST
    0U,	// ST1Onev4h
    0U,	// ST1Onev4h_POST
    0U,	// ST1Onev4s
    0U,	// ST1Onev4s_POST
    0U,	// ST1Onev8b
    0U,	// ST1Onev8b_POST
    0U,	// ST1Onev8h
    0U,	// ST1Onev8h_POST
    0U,	// ST1Threev16b
    0U,	// ST1Threev16b_POST
    0U,	// ST1Threev1d
    0U,	// ST1Threev1d_POST
    0U,	// ST1Threev2d
    0U,	// ST1Threev2d_POST
    0U,	// ST1Threev2s
    0U,	// ST1Threev2s_POST
    0U,	// ST1Threev4h
    0U,	// ST1Threev4h_POST
    0U,	// ST1Threev4s
    0U,	// ST1Threev4s_POST
    0U,	// ST1Threev8b
    0U,	// ST1Threev8b_POST
    0U,	// ST1Threev8h
    0U,	// ST1Threev8h_POST
    0U,	// ST1Twov16b
    0U,	// ST1Twov16b_POST
    0U,	// ST1Twov1d
    0U,	// ST1Twov1d_POST
    0U,	// ST1Twov2d
    0U,	// ST1Twov2d_POST
    0U,	// ST1Twov2s
    0U,	// ST1Twov2s_POST
    0U,	// ST1Twov4h
    0U,	// ST1Twov4h_POST
    0U,	// ST1Twov4s
    0U,	// ST1Twov4s_POST
    0U,	// ST1Twov8b
    0U,	// ST1Twov8b_POST
    0U,	// ST1Twov8h
    0U,	// ST1Twov8h_POST
    0U,	// ST1i16
    0U,	// ST1i16_POST
    0U,	// ST1i32
    0U,	// ST1i32_POST
    0U,	// ST1i64
    0U,	// ST1i64_POST
    0U,	// ST1i8
    0U,	// ST1i8_POST
    0U,	// ST2Twov16b
    0U,	// ST2Twov16b_POST
    0U,	// ST2Twov2d
    0U,	// ST2Twov2d_POST
    0U,	// ST2Twov2s
    0U,	// ST2Twov2s_POST
    0U,	// ST2Twov4h
    0U,	// ST2Twov4h_POST
    0U,	// ST2Twov4s
    0U,	// ST2Twov4s_POST
    0U,	// ST2Twov8b
    0U,	// ST2Twov8b_POST
    0U,	// ST2Twov8h
    0U,	// ST2Twov8h_POST
    0U,	// ST2i16
    0U,	// ST2i16_POST
    0U,	// ST2i32
    0U,	// ST2i32_POST
    0U,	// ST2i64
    0U,	// ST2i64_POST
    0U,	// ST2i8
    0U,	// ST2i8_POST
    0U,	// ST3Threev16b
    0U,	// ST3Threev16b_POST
    0U,	// ST3Threev2d
    0U,	// ST3Threev2d_POST
    0U,	// ST3Threev2s
    0U,	// ST3Threev2s_POST
    0U,	// ST3Threev4h
    0U,	// ST3Threev4h_POST
    0U,	// ST3Threev4s
    0U,	// ST3Threev4s_POST
    0U,	// ST3Threev8b
    0U,	// ST3Threev8b_POST
    0U,	// ST3Threev8h
    0U,	// ST3Threev8h_POST
    0U,	// ST3i16
    0U,	// ST3i16_POST
    0U,	// ST3i32
    0U,	// ST3i32_POST
    0U,	// ST3i64
    0U,	// ST3i64_POST
    0U,	// ST3i8
    0U,	// ST3i8_POST
    0U,	// ST4Fourv16b
    0U,	// ST4Fourv16b_POST
    0U,	// ST4Fourv2d
    0U,	// ST4Fourv2d_POST
    0U,	// ST4Fourv2s
    0U,	// ST4Fourv2s_POST
    0U,	// ST4Fourv4h
    0U,	// ST4Fourv4h_POST
    0U,	// ST4Fourv4s
    0U,	// ST4Fourv4s_POST
    0U,	// ST4Fourv8b
    0U,	// ST4Fourv8b_POST
    0U,	// ST4Fourv8h
    0U,	// ST4Fourv8h_POST
    0U,	// ST4i16
    0U,	// ST4i16_POST
    0U,	// ST4i32
    0U,	// ST4i32_POST
    0U,	// ST4i64
    0U,	// ST4i64_POST
    0U,	// ST4i8
    0U,	// ST4i8_POST
    4U,	// STLRB
    4U,	// STLRH
    4U,	// STLRW
    4U,	// STLRX
    4609U,	// STLXPW
    4609U,	// STLXPX
    3588U,	// STLXRB
    3588U,	// STLXRH
    3588U,	// STLXRW
    3588U,	// STLXRX
    43268U,	// STNPDi
    51460U,	// STNPQi
    59652U,	// STNPSi
    59652U,	// STNPWi
    43268U,	// STNPXi
    43268U,	// STPDi
    69444U,	// STPDpost
    330052U,	// STPDpre
    51460U,	// STPQi
    77636U,	// STPQpost
    338244U,	// STPQpre
    59652U,	// STPSi
    85828U,	// STPSpost
    346436U,	// STPSpre
    59652U,	// STPWi
    85828U,	// STPWpost
    346436U,	// STPWpre
    43268U,	// STPXi
    69444U,	// STPXpost
    330052U,	// STPXpre
    4U,	// STRBBpost
    4161U,	// STRBBpre
    92417U,	// STRBBroW
    100609U,	// STRBBroX
    89U,	// STRBBui
    4U,	// STRBpost
    4161U,	// STRBpre
    92417U,	// STRBroW
    100609U,	// STRBroX
    89U,	// STRBui
    4U,	// STRDpost
    4161U,	// STRDpre
    108801U,	// STRDroW
    116993U,	// STRDroX
    97U,	// STRDui
    4U,	// STRHHpost
    4161U,	// STRHHpre
    125185U,	// STRHHroW
    133377U,	// STRHHroX
    105U,	// STRHHui
    4U,	// STRHpost
    4161U,	// STRHpre
    125185U,	// STRHroW
    133377U,	// STRHroX
    105U,	// STRHui
    4U,	// STRQpost
    4161U,	// STRQpre
    141569U,	// STRQroW
    149761U,	// STRQroX
    113U,	// STRQui
    4U,	// STRSpost
    4161U,	// STRSpre
    157953U,	// STRSroW
    166145U,	// STRSroX
    121U,	// STRSui
    4U,	// STRWpost
    4161U,	// STRWpre
    157953U,	// STRWroW
    166145U,	// STRWroX
    121U,	// STRWui
    4U,	// STRXpost
    4161U,	// STRXpre
    108801U,	// STRXroW
    116993U,	// STRXroX
    97U,	// STRXui
    3585U,	// STTRBi
    3585U,	// STTRHi
    3585U,	// STTRWi
    3585U,	// STTRXi
    3585U,	// STURBBi
    3585U,	// STURBi
    3585U,	// STURDi
    3585U,	// STURHHi
    3585U,	// STURHi
    3585U,	// STURQi
    3585U,	// STURSi
    3585U,	// STURWi
    3585U,	// STURXi
    4609U,	// STXPW
    4609U,	// STXPX
    3588U,	// STXRB
    3588U,	// STXRH
    3588U,	// STXRW
    3588U,	// STXRX
    265U,	// SUBHNv2i64_v2i32
    273U,	// SUBHNv2i64_v4i32
    521U,	// SUBHNv4i32_v4i16
    529U,	// SUBHNv4i32_v8i16
    785U,	// SUBHNv8i16_v16i8
    777U,	// SUBHNv8i16_v8i8
    25U,	// SUBSWri
    0U,	// SUBSWrr
    33U,	// SUBSWrs
    41U,	// SUBSWrx
    25U,	// SUBSXri
    0U,	// SUBSXrr
    33U,	// SUBSXrs
    41U,	// SUBSXrx
    2049U,	// SUBSXrx64
    25U,	// SUBWri
    0U,	// SUBWrr
    33U,	// SUBWrs
    41U,	// SUBWrx
    25U,	// SUBXri
    0U,	// SUBXrr
    33U,	// SUBXrs
    41U,	// SUBXrx
    2049U,	// SUBXrx64
    1033U,	// SUBv16i8
    1U,	// SUBv1i64
    1289U,	// SUBv2i32
    265U,	// SUBv2i64
    1545U,	// SUBv4i16
    521U,	// SUBv4i32
    777U,	// SUBv8i16
    1801U,	// SUBv8i8
    0U,	// SUQADDv16i8
    0U,	// SUQADDv1i16
    0U,	// SUQADDv1i32
    0U,	// SUQADDv1i64
    0U,	// SUQADDv1i8
    0U,	// SUQADDv2i32
    0U,	// SUQADDv2i64
    0U,	// SUQADDv4i16
    0U,	// SUQADDv4i32
    0U,	// SUQADDv8i16
    0U,	// SUQADDv8i8
    0U,	// SVC
    129U,	// SYSLxt
    0U,	// SYSxt
    0U,	// TBLv16i8Four
    0U,	// TBLv16i8One
    0U,	// TBLv16i8Three
    0U,	// TBLv16i8Two
    0U,	// TBLv8i8Four
    0U,	// TBLv8i8One
    0U,	// TBLv8i8Three
    0U,	// TBLv8i8Two
    137U,	// TBNZW
    137U,	// TBNZX
    0U,	// TBXv16i8Four
    0U,	// TBXv16i8One
    0U,	// TBXv16i8Three
    0U,	// TBXv16i8Two
    0U,	// TBXv8i8Four
    0U,	// TBXv8i8One
    0U,	// TBXv8i8Three
    0U,	// TBXv8i8Two
    137U,	// TBZW
    137U,	// TBZX
    0U,	// TCRETURNdi
    0U,	// TCRETURNri
    0U,	// TLSDESCCALL
    0U,	// TLSDESC_BLR
    1033U,	// TRN1v16i8
    1289U,	// TRN1v2i32
    265U,	// TRN1v2i64
    1545U,	// TRN1v4i16
    521U,	// TRN1v4i32
    777U,	// TRN1v8i16
    1801U,	// TRN1v8i8
    1033U,	// TRN2v16i8
    1289U,	// TRN2v2i32
    265U,	// TRN2v2i64
    1545U,	// TRN2v4i16
    521U,	// TRN2v4i32
    777U,	// TRN2v8i16
    1801U,	// TRN2v8i8
    1041U,	// UABALv16i8_v8i16
    1297U,	// UABALv2i32_v2i64
    1553U,	// UABALv4i16_v4i32
    529U,	// UABALv4i32_v2i64
    785U,	// UABALv8i16_v4i32
    1809U,	// UABALv8i8_v8i16
    1041U,	// UABAv16i8
    1297U,	// UABAv2i32
    1553U,	// UABAv4i16
    529U,	// UABAv4i32
    785U,	// UABAv8i16
    1809U,	// UABAv8i8
    1033U,	// UABDLv16i8_v8i16
    1289U,	// UABDLv2i32_v2i64
    1545U,	// UABDLv4i16_v4i32
    521U,	// UABDLv4i32_v2i64
    777U,	// UABDLv8i16_v4i32
    1801U,	// UABDLv8i8_v8i16
    1033U,	// UABDv16i8
    1289U,	// UABDv2i32
    1545U,	// UABDv4i16
    521U,	// UABDv4i32
    777U,	// UABDv8i16
    1801U,	// UABDv8i8
    0U,	// UADALPv16i8_v8i16
    0U,	// UADALPv2i32_v1i64
    0U,	// UADALPv4i16_v2i32
    0U,	// UADALPv4i32_v2i64
    0U,	// UADALPv8i16_v4i32
    0U,	// UADALPv8i8_v4i16
    0U,	// UADDLPv16i8_v8i16
    0U,	// UADDLPv2i32_v1i64
    0U,	// UADDLPv4i16_v2i32
    0U,	// UADDLPv4i32_v2i64
    0U,	// UADDLPv8i16_v4i32
    0U,	// UADDLPv8i8_v4i16
    0U,	// UADDLVv16i8v
    0U,	// UADDLVv4i16v
    0U,	// UADDLVv4i32v
    0U,	// UADDLVv8i16v
    0U,	// UADDLVv8i8v
    1033U,	// UADDLv16i8_v8i16
    1289U,	// UADDLv2i32_v2i64
    1545U,	// UADDLv4i16_v4i32
    521U,	// UADDLv4i32_v2i64
    777U,	// UADDLv8i16_v4i32
    1801U,	// UADDLv8i8_v8i16
    1033U,	// UADDWv16i8_v8i16
    1289U,	// UADDWv2i32_v2i64
    1545U,	// UADDWv4i16_v4i32
    521U,	// UADDWv4i32_v2i64
    777U,	// UADDWv8i16_v4i32
    1801U,	// UADDWv8i8_v8i16
    18689U,	// UBFMWri
    18689U,	// UBFMXri
    1U,	// UCVTFSWDri
    1U,	// UCVTFSWSri
    1U,	// UCVTFSXDri
    1U,	// UCVTFSXSri
    0U,	// UCVTFUWDri
    0U,	// UCVTFUWSri
    0U,	// UCVTFUXDri
    0U,	// UCVTFUXSri
    1U,	// UCVTFd
    1U,	// UCVTFs
    0U,	// UCVTFv1i32
    0U,	// UCVTFv1i64
    0U,	// UCVTFv2f32
    0U,	// UCVTFv2f64
    1U,	// UCVTFv2i32_shift
    1U,	// UCVTFv2i64_shift
    0U,	// UCVTFv4f32
    1U,	// UCVTFv4i32_shift
    1U,	// UDIVWr
    1U,	// UDIVXr
    1U,	// UDIV_IntWr
    1U,	// UDIV_IntXr
    1033U,	// UHADDv16i8
    1289U,	// UHADDv2i32
    1545U,	// UHADDv4i16
    521U,	// UHADDv4i32
    777U,	// UHADDv8i16
    1801U,	// UHADDv8i8
    1033U,	// UHSUBv16i8
    1289U,	// UHSUBv2i32
    1545U,	// UHSUBv4i16
    521U,	// UHSUBv4i32
    777U,	// UHSUBv8i16
    1801U,	// UHSUBv8i8
    18689U,	// UMADDLrrr
    1033U,	// UMAXPv16i8
    1289U,	// UMAXPv2i32
    1545U,	// UMAXPv4i16
    521U,	// UMAXPv4i32
    777U,	// UMAXPv8i16
    1801U,	// UMAXPv8i8
    0U,	// UMAXVv16i8v
    0U,	// UMAXVv4i16v
    0U,	// UMAXVv4i32v
    0U,	// UMAXVv8i16v
    0U,	// UMAXVv8i8v
    1033U,	// UMAXv16i8
    1289U,	// UMAXv2i32
    1545U,	// UMAXv4i16
    521U,	// UMAXv4i32
    777U,	// UMAXv8i16
    1801U,	// UMAXv8i8
    1033U,	// UMINPv16i8
    1289U,	// UMINPv2i32
    1545U,	// UMINPv4i16
    521U,	// UMINPv4i32
    777U,	// UMINPv8i16
    1801U,	// UMINPv8i8
    0U,	// UMINVv16i8v
    0U,	// UMINVv4i16v
    0U,	// UMINVv4i32v
    0U,	// UMINVv8i16v
    0U,	// UMINVv8i8v
    1033U,	// UMINv16i8
    1289U,	// UMINv2i32
    1545U,	// UMINv4i16
    521U,	// UMINv4i32
    777U,	// UMINv8i16
    1801U,	// UMINv8i8
    1041U,	// UMLALv16i8_v8i16
    27665U,	// UMLALv2i32_indexed
    1297U,	// UMLALv2i32_v2i64
    28945U,	// UMLALv4i16_indexed
    1553U,	// UMLALv4i16_v4i32
    27665U,	// UMLALv4i32_indexed
    529U,	// UMLALv4i32_v2i64
    28945U,	// UMLALv8i16_indexed
    785U,	// UMLALv8i16_v4i32
    1809U,	// UMLALv8i8_v8i16
    1041U,	// UMLSLv16i8_v8i16
    27665U,	// UMLSLv2i32_indexed
    1297U,	// UMLSLv2i32_v2i64
    28945U,	// UMLSLv4i16_indexed
    1553U,	// UMLSLv4i16_v4i32
    27665U,	// UMLSLv4i32_indexed
    529U,	// UMLSLv4i32_v2i64
    28945U,	// UMLSLv8i16_indexed
    785U,	// UMLSLv8i16_v4i32
    1809U,	// UMLSLv8i8_v8i16
    75U,	// UMOVvi16
    75U,	// UMOVvi32
    75U,	// UMOVvi64
    75U,	// UMOVvi8
    18689U,	// UMSUBLrrr
    1U,	// UMULHrr
    1033U,	// UMULLv16i8_v8i16
    35849U,	// UMULLv2i32_indexed
    1289U,	// UMULLv2i32_v2i64
    37129U,	// UMULLv4i16_indexed
    1545U,	// UMULLv4i16_v4i32
    35849U,	// UMULLv4i32_indexed
    521U,	// UMULLv4i32_v2i64
    37129U,	// UMULLv8i16_indexed
    777U,	// UMULLv8i16_v4i32
    1801U,	// UMULLv8i8_v8i16
    1033U,	// UQADDv16i8
    1U,	// UQADDv1i16
    1U,	// UQADDv1i32
    1U,	// UQADDv1i64
    1U,	// UQADDv1i8
    1289U,	// UQADDv2i32
    265U,	// UQADDv2i64
    1545U,	// UQADDv4i16
    521U,	// UQADDv4i32
    777U,	// UQADDv8i16
    1801U,	// UQADDv8i8
    1033U,	// UQRSHLv16i8
    1U,	// UQRSHLv1i16
    1U,	// UQRSHLv1i32
    1U,	// UQRSHLv1i64
    1U,	// UQRSHLv1i8
    1289U,	// UQRSHLv2i32
    265U,	// UQRSHLv2i64
    1545U,	// UQRSHLv4i16
    521U,	// UQRSHLv4i32
    777U,	// UQRSHLv8i16
    1801U,	// UQRSHLv8i8
    1U,	// UQRSHRNb
    1U,	// UQRSHRNh
    1U,	// UQRSHRNs
    65U,	// UQRSHRNv16i8_shift
    1U,	// UQRSHRNv2i32_shift
    1U,	// UQRSHRNv4i16_shift
    65U,	// UQRSHRNv4i32_shift
    65U,	// UQRSHRNv8i16_shift
    1U,	// UQRSHRNv8i8_shift
    1U,	// UQSHLb
    1U,	// UQSHLd
    1U,	// UQSHLh
    1U,	// UQSHLs
    1033U,	// UQSHLv16i8
    1U,	// UQSHLv16i8_shift
    1U,	// UQSHLv1i16
    1U,	// UQSHLv1i32
    1U,	// UQSHLv1i64
    1U,	// UQSHLv1i8
    1289U,	// UQSHLv2i32
    1U,	// UQSHLv2i32_shift
    265U,	// UQSHLv2i64
    1U,	// UQSHLv2i64_shift
    1545U,	// UQSHLv4i16
    1U,	// UQSHLv4i16_shift
    521U,	// UQSHLv4i32
    1U,	// UQSHLv4i32_shift
    777U,	// UQSHLv8i16
    1U,	// UQSHLv8i16_shift
    1801U,	// UQSHLv8i8
    1U,	// UQSHLv8i8_shift
    1U,	// UQSHRNb
    1U,	// UQSHRNh
    1U,	// UQSHRNs
    65U,	// UQSHRNv16i8_shift
    1U,	// UQSHRNv2i32_shift
    1U,	// UQSHRNv4i16_shift
    65U,	// UQSHRNv4i32_shift
    65U,	// UQSHRNv8i16_shift
    1U,	// UQSHRNv8i8_shift
    1033U,	// UQSUBv16i8
    1U,	// UQSUBv1i16
    1U,	// UQSUBv1i32
    1U,	// UQSUBv1i64
    1U,	// UQSUBv1i8
    1289U,	// UQSUBv2i32
    265U,	// UQSUBv2i64
    1545U,	// UQSUBv4i16
    521U,	// UQSUBv4i32
    777U,	// UQSUBv8i16
    1801U,	// UQSUBv8i8
    0U,	// UQXTNv16i8
    0U,	// UQXTNv1i16
    0U,	// UQXTNv1i32
    0U,	// UQXTNv1i8
    0U,	// UQXTNv2i32
    0U,	// UQXTNv4i16
    0U,	// UQXTNv4i32
    0U,	// UQXTNv8i16
    0U,	// UQXTNv8i8
    0U,	// URECPEv2i32
    0U,	// URECPEv4i32
    1033U,	// URHADDv16i8
    1289U,	// URHADDv2i32
    1545U,	// URHADDv4i16
    521U,	// URHADDv4i32
    777U,	// URHADDv8i16
    1801U,	// URHADDv8i8
    1033U,	// URSHLv16i8
    1U,	// URSHLv1i64
    1289U,	// URSHLv2i32
    265U,	// URSHLv2i64
    1545U,	// URSHLv4i16
    521U,	// URSHLv4i32
    777U,	// URSHLv8i16
    1801U,	// URSHLv8i8
    1U,	// URSHRd
    1U,	// URSHRv16i8_shift
    1U,	// URSHRv2i32_shift
    1U,	// URSHRv2i64_shift
    1U,	// URSHRv4i16_shift
    1U,	// URSHRv4i32_shift
    1U,	// URSHRv8i16_shift
    1U,	// URSHRv8i8_shift
    0U,	// URSQRTEv2i32
    0U,	// URSQRTEv4i32
    65U,	// URSRAd
    65U,	// URSRAv16i8_shift
    65U,	// URSRAv2i32_shift
    65U,	// URSRAv2i64_shift
    65U,	// URSRAv4i16_shift
    65U,	// URSRAv4i32_shift
    65U,	// URSRAv8i16_shift
    65U,	// URSRAv8i8_shift
    1U,	// USHLLv16i8_shift
    1U,	// USHLLv2i32_shift
    1U,	// USHLLv4i16_shift
    1U,	// USHLLv4i32_shift
    1U,	// USHLLv8i16_shift
    1U,	// USHLLv8i8_shift
    1033U,	// USHLv16i8
    1U,	// USHLv1i64
    1289U,	// USHLv2i32
    265U,	// USHLv2i64
    1545U,	// USHLv4i16
    521U,	// USHLv4i32
    777U,	// USHLv8i16
    1801U,	// USHLv8i8
    1U,	// USHRd
    1U,	// USHRv16i8_shift
    1U,	// USHRv2i32_shift
    1U,	// USHRv2i64_shift
    1U,	// USHRv4i16_shift
    1U,	// USHRv4i32_shift
    1U,	// USHRv8i16_shift
    1U,	// USHRv8i8_shift
    0U,	// USQADDv16i8
    0U,	// USQADDv1i16
    0U,	// USQADDv1i32
    0U,	// USQADDv1i64
    0U,	// USQADDv1i8
    0U,	// USQADDv2i32
    0U,	// USQADDv2i64
    0U,	// USQADDv4i16
    0U,	// USQADDv4i32
    0U,	// USQADDv8i16
    0U,	// USQADDv8i8
    65U,	// USRAd
    65U,	// USRAv16i8_shift
    65U,	// USRAv2i32_shift
    65U,	// USRAv2i64_shift
    65U,	// USRAv4i16_shift
    65U,	// USRAv4i32_shift
    65U,	// USRAv8i16_shift
    65U,	// USRAv8i8_shift
    1033U,	// USUBLv16i8_v8i16
    1289U,	// USUBLv2i32_v2i64
    1545U,	// USUBLv4i16_v4i32
    521U,	// USUBLv4i32_v2i64
    777U,	// USUBLv8i16_v4i32
    1801U,	// USUBLv8i8_v8i16
    1033U,	// USUBWv16i8_v8i16
    1289U,	// USUBWv2i32_v2i64
    1545U,	// USUBWv4i16_v4i32
    521U,	// USUBWv4i32_v2i64
    777U,	// USUBWv8i16_v4i32
    1801U,	// USUBWv8i8_v8i16
    1033U,	// UZP1v16i8
    1289U,	// UZP1v2i32
    265U,	// UZP1v2i64
    1545U,	// UZP1v4i16
    521U,	// UZP1v4i32
    777U,	// UZP1v8i16
    1801U,	// UZP1v8i8
    1033U,	// UZP2v16i8
    1289U,	// UZP2v2i32
    265U,	// UZP2v2i64
    1545U,	// UZP2v4i16
    521U,	// UZP2v4i32
    777U,	// UZP2v8i16
    1801U,	// UZP2v8i8
    0U,	// XTNv16i8
    0U,	// XTNv2i32
    0U,	// XTNv4i16
    0U,	// XTNv4i32
    0U,	// XTNv8i16
    0U,	// XTNv8i8
    1033U,	// ZIP1v16i8
    1289U,	// ZIP1v2i32
    265U,	// ZIP1v2i64
    1545U,	// ZIP1v4i16
    521U,	// ZIP1v4i32
    777U,	// ZIP1v8i16
    1801U,	// ZIP1v8i8
    1033U,	// ZIP2v16i8
    1289U,	// ZIP2v2i32
    265U,	// ZIP2v2i64
    1545U,	// ZIP2v4i16
    521U,	// ZIP2v4i32
    777U,	// ZIP2v8i16
    1801U,	// ZIP2v8i8
    0U
  };

#ifndef CAPSTONE_DIET
  static const char AsmStrs[] = {
  /* 0 */ 's', 'h', 'a', '1', 's', 'u', '0', 9, 0,
  /* 9 */ 's', 'h', 'a', '2', '5', '6', 's', 'u', '0', 9, 0,
  /* 20 */ 'l', 'd', '1', 9, 0,
  /* 25 */ 't', 'r', 'n', '1', 9, 0,
  /* 31 */ 'z', 'i', 'p', '1', 9, 0,
  /* 37 */ 'u', 'z', 'p', '1', 9, 0,
  /* 43 */ 'd', 'c', 'p', 's', '1', 9, 0,
  /* 50 */ 's', 't', '1', 9, 0,
  /* 55 */ 's', 'h', 'a', '1', 's', 'u', '1', 9, 0,
  /* 64 */ 's', 'h', 'a', '2', '5', '6', 's', 'u', '1', 9, 0,
  /* 75 */ 'r', 'e', 'v', '3', '2', 9, 0,
  /* 82 */ 'l', 'd', '2', 9, 0,
  /* 87 */ 's', 'h', 'a', '2', '5', '6', 'h', '2', 9, 0,
  /* 97 */ 's', 'a', 'b', 'a', 'l', '2', 9, 0,
  /* 105 */ 'u', 'a', 'b', 'a', 'l', '2', 9, 0,
  /* 113 */ 's', 'q', 'd', 'm', 'l', 'a', 'l', '2', 9, 0,
  /* 123 */ 's', 'm', 'l', 'a', 'l', '2', 9, 0,
  /* 131 */ 'u', 'm', 'l', 'a', 'l', '2', 9, 0,
  /* 139 */ 's', 's', 'u', 'b', 'l', '2', 9, 0,
  /* 147 */ 'u', 's', 'u', 'b', 'l', '2', 9, 0,
  /* 155 */ 's', 'a', 'b', 'd', 'l', '2', 9, 0,
  /* 163 */ 'u', 'a', 'b', 'd', 'l', '2', 9, 0,
  /* 171 */ 's', 'a', 'd', 'd', 'l', '2', 9, 0,
  /* 179 */ 'u', 'a', 'd', 'd', 'l', '2', 9, 0,
  /* 187 */ 's', 's', 'h', 'l', 'l', '2', 9, 0,
  /* 195 */ 'u', 's', 'h', 'l', 'l', '2', 9, 0,
  /* 203 */ 's', 'q', 'd', 'm', 'u', 'l', 'l', '2', 9, 0,
  /* 213 */ 'p', 'm', 'u', 'l', 'l', '2', 9, 0,
  /* 221 */ 's', 'm', 'u', 'l', 'l', '2', 9, 0,
  /* 229 */ 'u', 'm', 'u', 'l', 'l', '2', 9, 0,
  /* 237 */ 's', 'q', 'd', 'm', 'l', 's', 'l', '2', 9, 0,
  /* 247 */ 's', 'm', 'l', 's', 'l', '2', 9, 0,
  /* 255 */ 'u', 'm', 'l', 's', 'l', '2', 9, 0,
  /* 263 */ 'f', 'c', 'v', 't', 'l', '2', 9, 0,
  /* 271 */ 'r', 's', 'u', 'b', 'h', 'n', '2', 9, 0,
  /* 280 */ 'r', 'a', 'd', 'd', 'h', 'n', '2', 9, 0,
  /* 289 */ 's', 'q', 's', 'h', 'r', 'n', '2', 9, 0,
  /* 298 */ 'u', 'q', 's', 'h', 'r', 'n', '2', 9, 0,
  /* 307 */ 's', 'q', 'r', 's', 'h', 'r', 'n', '2', 9, 0,
  /* 317 */ 'u', 'q', 'r', 's', 'h', 'r', 'n', '2', 9, 0,
  /* 327 */ 't', 'r', 'n', '2', 9, 0,
  /* 333 */ 'f', 'c', 'v', 't', 'n', '2', 9, 0,
  /* 341 */ 's', 'q', 'x', 't', 'n', '2', 9, 0,
  /* 349 */ 'u', 'q', 'x', 't', 'n', '2', 9, 0,
  /* 357 */ 's', 'q', 's', 'h', 'r', 'u', 'n', '2', 9, 0,
  /* 367 */ 's', 'q', 'r', 's', 'h', 'r', 'u', 'n', '2', 9, 0,
  /* 378 */ 's', 'q', 'x', 't', 'u', 'n', '2', 9, 0,
  /* 387 */ 'f', 'c', 'v', 't', 'x', 'n', '2', 9, 0,
  /* 396 */ 'z', 'i', 'p', '2', 9, 0,
  /* 402 */ 'u', 'z', 'p', '2', 9, 0,
  /* 408 */ 'd', 'c', 'p', 's', '2', 9, 0,
  /* 415 */ 's', 't', '2', 9, 0,
  /* 420 */ 's', 's', 'u', 'b', 'w', '2', 9, 0,
  /* 428 */ 'u', 's', 'u', 'b', 'w', '2', 9, 0,
  /* 436 */ 's', 'a', 'd', 'd', 'w', '2', 9, 0,
  /* 444 */ 'u', 'a', 'd', 'd', 'w', '2', 9, 0,
  /* 452 */ 'l', 'd', '3', 9, 0,
  /* 457 */ 'd', 'c', 'p', 's', '3', 9, 0,
  /* 464 */ 's', 't', '3', 9, 0,
  /* 469 */ 'r', 'e', 'v', '6', '4', 9, 0,
  /* 476 */ 'l', 'd', '4', 9, 0,
  /* 481 */ 's', 't', '4', 9, 0,
  /* 486 */ 'r', 'e', 'v', '1', '6', 9, 0,
  /* 493 */ 's', 'a', 'b', 'a', 9, 0,
  /* 499 */ 'u', 'a', 'b', 'a', 9, 0,
  /* 505 */ 'f', 'm', 'l', 'a', 9, 0,
  /* 511 */ 's', 'r', 's', 'r', 'a', 9, 0,
  /* 518 */ 'u', 'r', 's', 'r', 'a', 9, 0,
  /* 525 */ 's', 's', 'r', 'a', 9, 0,
  /* 531 */ 'u', 's', 'r', 'a', 9, 0,
  /* 537 */ 'f', 'r', 'i', 'n', 't', 'a', 9, 0,
  /* 545 */ 'c', 'r', 'c', '3', '2', 'b', 9, 0,
  /* 553 */ 'c', 'r', 'c', '3', '2', 'c', 'b', 9, 0,
  /* 562 */ 'd', 'm', 'b', 9, 0,
  /* 567 */ 'l', 'd', 'a', 'r', 'b', 9, 0,
  /* 574 */ 'l', 'd', 'r', 'b', 9, 0,
  /* 580 */ 's', 't', 'l', 'r', 'b', 9, 0,
  /* 587 */ 'l', 'd', 't', 'r', 'b', 9, 0,
  /* 594 */ 's', 't', 'r', 'b', 9, 0,
  /* 600 */ 's', 't', 't', 'r', 'b', 9, 0,
  /* 607 */ 'l', 'd', 'u', 'r', 'b', 9, 0,
  /* 614 */ 's', 't', 'u', 'r', 'b', 9, 0,
  /* 621 */ 'l', 'd', 'a', 'x', 'r', 'b', 9, 0,
  /* 629 */ 'l', 'd', 'x', 'r', 'b', 9, 0,
  /* 636 */ 's', 't', 'l', 'x', 'r', 'b', 9, 0,
  /* 644 */ 's', 't', 'x', 'r', 'b', 9, 0,
  /* 651 */ 'd', 's', 'b', 9, 0,
  /* 656 */ 'i', 's', 'b', 9, 0,
  /* 661 */ 'l', 'd', 'r', 's', 'b', 9, 0,
  /* 668 */ 'l', 'd', 't', 'r', 's', 'b', 9, 0,
  /* 676 */ 'l', 'd', 'u', 'r', 's', 'b', 9, 0,
  /* 684 */ 'f', 's', 'u', 'b', 9, 0,
  /* 690 */ 's', 'h', 's', 'u', 'b', 9, 0,
  /* 697 */ 'u', 'h', 's', 'u', 'b', 9, 0,
  /* 704 */ 'f', 'm', 's', 'u', 'b', 9, 0,
  /* 711 */ 'f', 'n', 'm', 's', 'u', 'b', 9, 0,
  /* 719 */ 's', 'q', 's', 'u', 'b', 9, 0,
  /* 726 */ 'u', 'q', 's', 'u', 'b', 9, 0,
  /* 733 */ 's', 'h', 'a', '1', 'c', 9, 0,
  /* 740 */ 's', 'b', 'c', 9, 0,
  /* 745 */ 'a', 'd', 'c', 9, 0,
  /* 750 */ 'b', 'i', 'c', 9, 0,
  /* 755 */ 'a', 'e', 's', 'i', 'm', 'c', 9, 0,
  /* 763 */ 'a', 'e', 's', 'm', 'c', 9, 0,
  /* 770 */ 'c', 's', 'i', 'n', 'c', 9, 0,
  /* 777 */ 'h', 'v', 'c', 9, 0,
  /* 782 */ 's', 'v', 'c', 9, 0,
  /* 787 */ 'f', 'a', 'b', 'd', 9, 0,
  /* 793 */ 's', 'a', 'b', 'd', 9, 0,
  /* 799 */ 'u', 'a', 'b', 'd', 9, 0,
  /* 805 */ 'f', 'a', 'd', 'd', 9, 0,
  /* 811 */ 's', 'r', 'h', 'a', 'd', 'd', 9, 0,
  /* 819 */ 'u', 'r', 'h', 'a', 'd', 'd', 9, 0,
  /* 827 */ 's', 'h', 'a', 'd', 'd', 9, 0,
  /* 834 */ 'u', 'h', 'a', 'd', 'd', 9, 0,
  /* 841 */ 'f', 'm', 'a', 'd', 'd', 9, 0,
  /* 848 */ 'f', 'n', 'm', 'a', 'd', 'd', 9, 0,
  /* 856 */ 'u', 's', 'q', 'a', 'd', 'd', 9, 0,
  /* 864 */ 's', 'u', 'q', 'a', 'd', 'd', 9, 0,
  /* 872 */ 'a', 'n', 'd', 9, 0,
  /* 877 */ 'a', 'e', 's', 'd', 9, 0,
  /* 883 */ 'f', 'a', 'c', 'g', 'e', 9, 0,
  /* 890 */ 'f', 'c', 'm', 'g', 'e', 9, 0,
  /* 897 */ 'f', 'c', 'm', 'l', 'e', 9, 0,
  /* 904 */ 'f', 'r', 'e', 'c', 'p', 'e', 9, 0,
  /* 912 */ 'u', 'r', 'e', 'c', 'p', 'e', 9, 0,
  /* 920 */ 'f', 'c', 'c', 'm', 'p', 'e', 9, 0,
  /* 928 */ 'f', 'c', 'm', 'p', 'e', 9, 0,
  /* 935 */ 'a', 'e', 's', 'e', 9, 0,
  /* 941 */ 'f', 'r', 's', 'q', 'r', 't', 'e', 9, 0,
  /* 950 */ 'u', 'r', 's', 'q', 'r', 't', 'e', 9, 0,
  /* 959 */ 'b', 'i', 'f', 9, 0,
  /* 964 */ 's', 'c', 'v', 't', 'f', 9, 0,
  /* 971 */ 'u', 'c', 'v', 't', 'f', 9, 0,
  /* 978 */ 'f', 'n', 'e', 'g', 9, 0,
  /* 984 */ 's', 'q', 'n', 'e', 'g', 9, 0,
  /* 991 */ 'c', 's', 'n', 'e', 'g', 9, 0,
  /* 998 */ 's', 'h', 'a', '1', 'h', 9, 0,
  /* 1005 */ 'c', 'r', 'c', '3', '2', 'h', 9, 0,
  /* 1013 */ 's', 'h', 'a', '2', '5', '6', 'h', 9, 0,
  /* 1022 */ 'c', 'r', 'c', '3', '2', 'c', 'h', 9, 0,
  /* 1031 */ 's', 'q', 'd', 'm', 'u', 'l', 'h', 9, 0,
  /* 1040 */ 's', 'q', 'r', 'd', 'm', 'u', 'l', 'h', 9, 0,
  /* 1050 */ 's', 'm', 'u', 'l', 'h', 9, 0,
  /* 1057 */ 'u', 'm', 'u', 'l', 'h', 9, 0,
  /* 1064 */ 'l', 'd', 'a', 'r', 'h', 9, 0,
  /* 1071 */ 'l', 'd', 'r', 'h', 9, 0,
  /* 1077 */ 's', 't', 'l', 'r', 'h', 9, 0,
  /* 1084 */ 'l', 'd', 't', 'r', 'h', 9, 0,
  /* 1091 */ 's', 't', 'r', 'h', 9, 0,
  /* 1097 */ 's', 't', 't', 'r', 'h', 9, 0,
  /* 1104 */ 'l', 'd', 'u', 'r', 'h', 9, 0,
  /* 1111 */ 's', 't', 'u', 'r', 'h', 9, 0,
  /* 1118 */ 'l', 'd', 'a', 'x', 'r', 'h', 9, 0,
  /* 1126 */ 'l', 'd', 'x', 'r', 'h', 9, 0,
  /* 1133 */ 's', 't', 'l', 'x', 'r', 'h', 9, 0,
  /* 1141 */ 's', 't', 'x', 'r', 'h', 9, 0,
  /* 1148 */ 'l', 'd', 'r', 's', 'h', 9, 0,
  /* 1155 */ 'l', 'd', 't', 'r', 's', 'h', 9, 0,
  /* 1163 */ 'l', 'd', 'u', 'r', 's', 'h', 9, 0,
  /* 1171 */ 'c', 'm', 'h', 'i', 9, 0,
  /* 1177 */ 's', 'l', 'i', 9, 0,
  /* 1182 */ 'm', 'v', 'n', 'i', 9, 0,
  /* 1188 */ 's', 'r', 'i', 9, 0,
  /* 1193 */ 'f', 'r', 'i', 'n', 't', 'i', 9, 0,
  /* 1201 */ 'm', 'o', 'v', 'i', 9, 0,
  /* 1207 */ 'b', 'r', 'k', 9, 0,
  /* 1212 */ 'm', 'o', 'v', 'k', 9, 0,
  /* 1218 */ 's', 'a', 'b', 'a', 'l', 9, 0,
  /* 1225 */ 'u', 'a', 'b', 'a', 'l', 9, 0,
  /* 1232 */ 's', 'q', 'd', 'm', 'l', 'a', 'l', 9, 0,
  /* 1241 */ 's', 'm', 'l', 'a', 'l', 9, 0,
  /* 1248 */ 'u', 'm', 'l', 'a', 'l', 9, 0,
  /* 1255 */ 't', 'b', 'l', 9, 0,
  /* 1260 */ 's', 'm', 's', 'u', 'b', 'l', 9, 0,
  /* 1268 */ 'u', 'm', 's', 'u', 'b', 'l', 9, 0,
  /* 1276 */ 's', 's', 'u', 'b', 'l', 9, 0,
  /* 1283 */ 'u', 's', 'u', 'b', 'l', 9, 0,
  /* 1290 */ 's', 'a', 'b', 'd', 'l', 9, 0,
  /* 1297 */ 'u', 'a', 'b', 'd', 'l', 9, 0,
  /* 1304 */ 's', 'm', 'a', 'd', 'd', 'l', 9, 0,
  /* 1312 */ 'u', 'm', 'a', 'd', 'd', 'l', 9, 0,
  /* 1320 */ 's', 'a', 'd', 'd', 'l', 9, 0,
  /* 1327 */ 'u', 'a', 'd', 'd', 'l', 9, 0,
  /* 1334 */ 'f', 'c', 's', 'e', 'l', 9, 0,
  /* 1341 */ 's', 'q', 's', 'h', 'l', 9, 0,
  /* 1348 */ 'u', 'q', 's', 'h', 'l', 9, 0,
  /* 1355 */ 's', 'q', 'r', 's', 'h', 'l', 9, 0,
  /* 1363 */ 'u', 'q', 'r', 's', 'h', 'l', 9, 0,
  /* 1371 */ 's', 'r', 's', 'h', 'l', 9, 0,
  /* 1378 */ 'u', 'r', 's', 'h', 'l', 9, 0,
  /* 1385 */ 's', 's', 'h', 'l', 9, 0,
  /* 1391 */ 'u', 's', 'h', 'l', 9, 0,
  /* 1397 */ 's', 's', 'h', 'l', 'l', 9, 0,
  /* 1404 */ 'u', 's', 'h', 'l', 'l', 9, 0,
  /* 1411 */ 's', 'q', 'd', 'm', 'u', 'l', 'l', 9, 0,
  /* 1420 */ 'p', 'm', 'u', 'l', 'l', 9, 0,
  /* 1427 */ 's', 'm', 'u', 'l', 'l', 9, 0,
  /* 1434 */ 'u', 'm', 'u', 'l', 'l', 9, 0,
  /* 1441 */ 'b', 's', 'l', 9, 0,
  /* 1446 */ 's', 'q', 'd', 'm', 'l', 's', 'l', 9, 0,
  /* 1455 */ 's', 'm', 'l', 's', 'l', 9, 0,
  /* 1462 */ 'u', 'm', 'l', 's', 'l', 9, 0,
  /* 1469 */ 's', 'y', 's', 'l', 9, 0,
  /* 1475 */ 'f', 'c', 'v', 't', 'l', 9, 0,
  /* 1482 */ 'f', 'm', 'u', 'l', 9, 0,
  /* 1488 */ 'f', 'n', 'm', 'u', 'l', 9, 0,
  /* 1495 */ 'p', 'm', 'u', 'l', 9, 0,
  /* 1501 */ 's', 'h', 'a', '1', 'm', 9, 0,
  /* 1508 */ 's', 'b', 'f', 'm', 9, 0,
  /* 1514 */ 'u', 'b', 'f', 'm', 9, 0,
  /* 1520 */ 'p', 'r', 'f', 'm', 9, 0,
  /* 1526 */ 'f', 'm', 'i', 'n', 'n', 'm', 9, 0,
  /* 1534 */ 'f', 'm', 'a', 'x', 'n', 'm', 9, 0,
  /* 1542 */ 'f', 'r', 'i', 'n', 't', 'm', 9, 0,
  /* 1550 */ 'p', 'r', 'f', 'u', 'm', 9, 0,
  /* 1557 */ 'r', 's', 'u', 'b', 'h', 'n', 9, 0,
  /* 1565 */ 'r', 'a', 'd', 'd', 'h', 'n', 9, 0,
  /* 1573 */ 'f', 'm', 'i', 'n', 9, 0,
  /* 1579 */ 's', 'm', 'i', 'n', 9, 0,
  /* 1585 */ 'u', 'm', 'i', 'n', 9, 0,
  /* 1591 */ 'c', 'c', 'm', 'n', 9, 0,
  /* 1597 */ 'e', 'o', 'n', 9, 0,
  /* 1602 */ 's', 'q', 's', 'h', 'r', 'n', 9, 0,
  /* 1610 */ 'u', 'q', 's', 'h', 'r', 'n', 9, 0,
  /* 1618 */ 's', 'q', 'r', 's', 'h', 'r', 'n', 9, 0,
  /* 1627 */ 'u', 'q', 'r', 's', 'h', 'r', 'n', 9, 0,
  /* 1636 */ 'o', 'r', 'n', 9, 0,
  /* 1641 */ 'f', 'r', 'i', 'n', 't', 'n', 9, 0,
  /* 1649 */ 'f', 'c', 'v', 't', 'n', 9, 0,
  /* 1656 */ 's', 'q', 'x', 't', 'n', 9, 0,
  /* 1663 */ 'u', 'q', 'x', 't', 'n', 9, 0,
  /* 1670 */ 's', 'q', 's', 'h', 'r', 'u', 'n', 9, 0,
  /* 1679 */ 's', 'q', 'r', 's', 'h', 'r', 'u', 'n', 9, 0,
  /* 1689 */ 's', 'q', 'x', 't', 'u', 'n', 9, 0,
  /* 1697 */ 'm', 'o', 'v', 'n', 9, 0,
  /* 1703 */ 'f', 'c', 'v', 't', 'x', 'n', 9, 0,
  /* 1711 */ 's', 'h', 'a', '1', 'p', 9, 0,
  /* 1718 */ 'f', 'a', 'd', 'd', 'p', 9, 0,
  /* 1725 */ 'l', 'd', 'p', 9, 0,
  /* 1730 */ 's', 'a', 'd', 'a', 'l', 'p', 9, 0,
  /* 1738 */ 'u', 'a', 'd', 'a', 'l', 'p', 9, 0,
  /* 1746 */ 's', 'a', 'd', 'd', 'l', 'p', 9, 0,
  /* 1754 */ 'u', 'a', 'd', 'd', 'l', 'p', 9, 0,
  /* 1762 */ 'f', 'c', 'c', 'm', 'p', 9, 0,
  /* 1769 */ 'f', 'c', 'm', 'p', 9, 0,
  /* 1775 */ 'f', 'm', 'i', 'n', 'n', 'm', 'p', 9, 0,
  /* 1784 */ 'f', 'm', 'a', 'x', 'n', 'm', 'p', 9, 0,
  /* 1793 */ 'l', 'd', 'n', 'p', 9, 0,
  /* 1799 */ 'f', 'm', 'i', 'n', 'p', 9, 0,
  /* 1806 */ 's', 'm', 'i', 'n', 'p', 9, 0,
  /* 1813 */ 'u', 'm', 'i', 'n', 'p', 9, 0,
  /* 1820 */ 's', 't', 'n', 'p', 9, 0,
  /* 1826 */ 'a', 'd', 'r', 'p', 9, 0,
  /* 1832 */ 'f', 'r', 'i', 'n', 't', 'p', 9, 0,
  /* 1840 */ 's', 't', 'p', 9, 0,
  /* 1845 */ 'd', 'u', 'p', 9, 0,
  /* 1850 */ 'l', 'd', 'a', 'x', 'p', 9, 0,
  /* 1857 */ 'f', 'm', 'a', 'x', 'p', 9, 0,
  /* 1864 */ 's', 'm', 'a', 'x', 'p', 9, 0,
  /* 1871 */ 'u', 'm', 'a', 'x', 'p', 9, 0,
  /* 1878 */ 'l', 'd', 'x', 'p', 9, 0,
  /* 1884 */ 's', 't', 'l', 'x', 'p', 9, 0,
  /* 1891 */ 's', 't', 'x', 'p', 9, 0,
  /* 1897 */ 'f', 'c', 'm', 'e', 'q', 9, 0,
  /* 1904 */ 'l', 'd', '1', 'r', 9, 0,
  /* 1910 */ 'l', 'd', '2', 'r', 9, 0,
  /* 1916 */ 'l', 'd', '3', 'r', 9, 0,
  /* 1922 */ 'l', 'd', '4', 'r', 9, 0,
  /* 1928 */ 'l', 'd', 'a', 'r', 9, 0,
  /* 1934 */ 'b', 'r', 9, 0,
  /* 1938 */ 'a', 'd', 'r', 9, 0,
  /* 1943 */ 'l', 'd', 'r', 9, 0,
  /* 1948 */ 's', 'r', 's', 'h', 'r', 9, 0,
  /* 1955 */ 'u', 'r', 's', 'h', 'r', 9, 0,
  /* 1962 */ 's', 's', 'h', 'r', 9, 0,
  /* 1968 */ 'u', 's', 'h', 'r', 9, 0,
  /* 1974 */ 'b', 'l', 'r', 9, 0,
  /* 1979 */ 's', 't', 'l', 'r', 9, 0,
  /* 1985 */ 'e', 'o', 'r', 9, 0,
  /* 1990 */ 'r', 'o', 'r', 9, 0,
  /* 1995 */ 'o', 'r', 'r', 9, 0,
  /* 2000 */ 'a', 's', 'r', 9, 0,
  /* 2005 */ 'l', 's', 'r', 9, 0,
  /* 2010 */ 'm', 's', 'r', 9, 0,
  /* 2015 */ 'l', 'd', 't', 'r', 9, 0,
  /* 2021 */ 's', 't', 'r', 9, 0,
  /* 2026 */ 's', 't', 't', 'r', 9, 0,
  /* 2032 */ 'e', 'x', 't', 'r', 9, 0,
  /* 2038 */ 'l', 'd', 'u', 'r', 9, 0,
  /* 2044 */ 's', 't', 'u', 'r', 9, 0,
  /* 2050 */ 'l', 'd', 'a', 'x', 'r', 9, 0,
  /* 2057 */ 'l', 'd', 'x', 'r', 9, 0,
  /* 2063 */ 's', 't', 'l', 'x', 'r', 9, 0,
  /* 2070 */ 's', 't', 'x', 'r', 9, 0,
  /* 2076 */ 'f', 'c', 'v', 't', 'a', 's', 9, 0,
  /* 2084 */ 'f', 'a', 'b', 's', 9, 0,
  /* 2090 */ 's', 'q', 'a', 'b', 's', 9, 0,
  /* 2097 */ 's', 'u', 'b', 's', 9, 0,
  /* 2103 */ 's', 'b', 'c', 's', 9, 0,
  /* 2109 */ 'a', 'd', 'c', 's', 9, 0,
  /* 2115 */ 'b', 'i', 'c', 's', 9, 0,
  /* 2121 */ 'a', 'd', 'd', 's', 9, 0,
  /* 2127 */ 'a', 'n', 'd', 's', 9, 0,
  /* 2133 */ 'c', 'm', 'h', 's', 9, 0,
  /* 2139 */ 'c', 'l', 's', 9, 0,
  /* 2144 */ 'f', 'm', 'l', 's', 9, 0,
  /* 2150 */ 'f', 'c', 'v', 't', 'm', 's', 9, 0,
  /* 2158 */ 'i', 'n', 's', 9, 0,
  /* 2163 */ 'f', 'c', 'v', 't', 'n', 's', 9, 0,
  /* 2171 */ 'f', 'r', 'e', 'c', 'p', 's', 9, 0,
  /* 2179 */ 'f', 'c', 'v', 't', 'p', 's', 9, 0,
  /* 2187 */ 'm', 'r', 's', 9, 0,
  /* 2192 */ 'f', 'r', 's', 'q', 'r', 't', 's', 9, 0,
  /* 2201 */ 's', 'y', 's', 9, 0,
  /* 2206 */ 'f', 'c', 'v', 't', 'z', 's', 9, 0,
  /* 2214 */ 'r', 'e', 't', 9, 0,
  /* 2219 */ 'f', 'a', 'c', 'g', 't', 9, 0,
  /* 2226 */ 'f', 'c', 'm', 'g', 't', 9, 0,
  /* 2233 */ 'r', 'b', 'i', 't', 9, 0,
  /* 2239 */ 'h', 'l', 't', 9, 0,
  /* 2244 */ 'f', 'c', 'm', 'l', 't', 9, 0,
  /* 2251 */ 'c', 'n', 't', 9, 0,
  /* 2256 */ 'n', 'o', 't', 9, 0,
  /* 2261 */ 'f', 's', 'q', 'r', 't', 9, 0,
  /* 2268 */ 'c', 'm', 't', 's', 't', 9, 0,
  /* 2275 */ 'f', 'c', 'v', 't', 9, 0,
  /* 2281 */ 'e', 'x', 't', 9, 0,
  /* 2286 */ 'f', 'c', 'v', 't', 'a', 'u', 9, 0,
  /* 2294 */ 's', 'q', 's', 'h', 'l', 'u', 9, 0,
  /* 2302 */ 'f', 'c', 'v', 't', 'm', 'u', 9, 0,
  /* 2310 */ 'f', 'c', 'v', 't', 'n', 'u', 9, 0,
  /* 2318 */ 'f', 'c', 'v', 't', 'p', 'u', 9, 0,
  /* 2326 */ 'f', 'c', 'v', 't', 'z', 'u', 9, 0,
  /* 2334 */ 'a', 'd', 'd', 'v', 9, 0,
  /* 2340 */ 'r', 'e', 'v', 9, 0,
  /* 2345 */ 'f', 'd', 'i', 'v', 9, 0,
  /* 2351 */ 's', 'd', 'i', 'v', 9, 0,
  /* 2357 */ 'u', 'd', 'i', 'v', 9, 0,
  /* 2363 */ 's', 'a', 'd', 'd', 'l', 'v', 9, 0,
  /* 2371 */ 'u', 'a', 'd', 'd', 'l', 'v', 9, 0,
  /* 2379 */ 'f', 'm', 'i', 'n', 'n', 'm', 'v', 9, 0,
  /* 2388 */ 'f', 'm', 'a', 'x', 'n', 'm', 'v', 9, 0,
  /* 2397 */ 'f', 'm', 'i', 'n', 'v', 9, 0,
  /* 2404 */ 's', 'm', 'i', 'n', 'v', 9, 0,
  /* 2411 */ 'u', 'm', 'i', 'n', 'v', 9, 0,
  /* 2418 */ 'c', 's', 'i', 'n', 'v', 9, 0,
  /* 2425 */ 'f', 'm', 'o', 'v', 9, 0,
  /* 2431 */ 's', 'm', 'o', 'v', 9, 0,
  /* 2437 */ 'u', 'm', 'o', 'v', 9, 0,
  /* 2443 */ 'f', 'm', 'a', 'x', 'v', 9, 0,
  /* 2450 */ 's', 'm', 'a', 'x', 'v', 9, 0,
  /* 2457 */ 'u', 'm', 'a', 'x', 'v', 9, 0,
  /* 2464 */ 'c', 'r', 'c', '3', '2', 'w', 9, 0,
  /* 2472 */ 's', 's', 'u', 'b', 'w', 9, 0,
  /* 2479 */ 'u', 's', 'u', 'b', 'w', 9, 0,
  /* 2486 */ 'c', 'r', 'c', '3', '2', 'c', 'w', 9, 0,
  /* 2495 */ 's', 'a', 'd', 'd', 'w', 9, 0,
  /* 2502 */ 'u', 'a', 'd', 'd', 'w', 9, 0,
  /* 2509 */ 'l', 'd', 'p', 's', 'w', 9, 0,
  /* 2516 */ 'l', 'd', 'r', 's', 'w', 9, 0,
  /* 2523 */ 'l', 'd', 't', 'r', 's', 'w', 9, 0,
  /* 2531 */ 'l', 'd', 'u', 'r', 's', 'w', 9, 0,
  /* 2539 */ 'c', 'r', 'c', '3', '2', 'x', 9, 0,
  /* 2547 */ 'f', 'm', 'a', 'x', 9, 0,
  /* 2553 */ 's', 'm', 'a', 'x', 9, 0,
  /* 2559 */ 'u', 'm', 'a', 'x', 9, 0,
  /* 2565 */ 't', 'b', 'x', 9, 0,
  /* 2570 */ 'c', 'r', 'c', '3', '2', 'c', 'x', 9, 0,
  /* 2579 */ 'c', 'l', 'r', 'e', 'x', 9, 0,
  /* 2586 */ 'f', 'm', 'u', 'l', 'x', 9, 0,
  /* 2593 */ 'f', 'r', 'e', 'c', 'p', 'x', 9, 0,
  /* 2601 */ 'f', 'r', 'i', 'n', 't', 'x', 9, 0,
  /* 2609 */ 'c', 'b', 'z', 9, 0,
  /* 2614 */ 't', 'b', 'z', 9, 0,
  /* 2619 */ 'c', 'l', 'z', 9, 0,
  /* 2624 */ 'c', 'b', 'n', 'z', 9, 0,
  /* 2630 */ 't', 'b', 'n', 'z', 9, 0,
  /* 2636 */ 'f', 'r', 'i', 'n', 't', 'z', 9, 0,
  /* 2644 */ 'm', 'o', 'v', 'z', 9, 0,
  /* 2650 */ '.', 't', 'l', 's', 'd', 'e', 's', 'c', 'c', 'a', 'l', 'l', 32, 0,
  /* 2664 */ 'h', 'i', 'n', 't', 32, 0,
  /* 2670 */ 'b', '.', 0,
  /* 2673 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
  /* 2686 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
  /* 2693 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
  /* 2703 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
  /* 2718 */ 'd', 'r', 'p', 's', 0,
  /* 2723 */ 'e', 'r', 'e', 't', 0,
  };
#endif

  // Emit the opcode for the instruction.
  uint64_t Bits1 = OpInfo[MCInst_getOpcode(MI)];
  uint64_t Bits2 = OpInfo2[MCInst_getOpcode(MI)];
  uint64_t Bits = (Bits2 << 32) | Bits1;
  // assert(Bits != 0 && "Cannot print this instruction.");
#ifndef CAPSTONE_DIET
  SStream_concat0(O, AsmStrs+(Bits & 4095)-1);
#endif


  // Fragment 0 encoded into 6 bits for 40 unique commands.
  //printf("Frag-0: %"PRIu64"\n", (Bits >> 12) & 63);
  switch ((Bits >> 12) & 63) {
  default:   // unreachable.
  case 0:
    // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, DRPS, ERET
    return;
    break;
  case 1:
    // ABSv16i8, ABSv2i32, ABSv2i64, ABSv4i16, ABSv4i32, ABSv8i16, ABSv8i8, A...
    printVRegOperand(MI, 0, O); 
    break;
  case 2:
    // ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDPv2i64p, ADDSWri, ADDSWrs, ...
    printOperand(MI, 0, O); 
    break;
  case 3:
    // ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, AESDrr, AESErr, ...
    printVRegOperand(MI, 1, O); 
    break;
  case 4:
    // B, BL
    printAlignedLabel(MI, 0, O); 
    return;
    break;
  case 5:
    // BRK, DCPS1, DCPS2, DCPS3, HINT, HLT, HVC, SMC, SVC
    printHexImm(MI, 0, O); 
    return;
    break;
  case 6:
    // Bcc
    printCondCode(MI, 0, O); 
    SStream_concat0(O, "\t"); 
    printAlignedLabel(MI, 1, O); 
    return;
    break;
  case 7:
    // DMB, DSB, ISB
    printBarrierOption(MI, 0, O); 
    return;
    break;
  case 8:
    // FMLAv1i32_indexed, FMLAv1i64_indexed, FMLSv1i32_indexed, FMLSv1i64_ind...
    printOperand(MI, 1, O); 
    break;
  case 9:
    // LD1Fourv16b, LD1Onev16b, LD1Rv16b, LD1Threev16b, LD1Twov16b, LD2Rv16b,...
    printTypedVectorList(MI, 0, O, 16, 'b', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 10:
    // LD1Fourv16b_POST, LD1Onev16b_POST, LD1Rv16b_POST, LD1Threev16b_POST, L...
    printTypedVectorList(MI, 1, O, 16, 'b', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 11:
    // LD1Fourv1d, LD1Onev1d, LD1Rv1d, LD1Threev1d, LD1Twov1d, LD2Rv1d, LD3Rv...
    printTypedVectorList(MI, 0, O, 1, 'd', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 12:
    // LD1Fourv1d_POST, LD1Onev1d_POST, LD1Rv1d_POST, LD1Threev1d_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 1, 'd', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 13:
    // LD1Fourv2d, LD1Onev2d, LD1Rv2d, LD1Threev2d, LD1Twov2d, LD2Rv2d, LD2Tw...
    printTypedVectorList(MI, 0, O, 2, 'd', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 14:
    // LD1Fourv2d_POST, LD1Onev2d_POST, LD1Rv2d_POST, LD1Threev2d_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 2, 'd', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 15:
    // LD1Fourv2s, LD1Onev2s, LD1Rv2s, LD1Threev2s, LD1Twov2s, LD2Rv2s, LD2Tw...
    printTypedVectorList(MI, 0, O, 2, 's', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 16:
    // LD1Fourv2s_POST, LD1Onev2s_POST, LD1Rv2s_POST, LD1Threev2s_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 2, 's', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 17:
    // LD1Fourv4h, LD1Onev4h, LD1Rv4h, LD1Threev4h, LD1Twov4h, LD2Rv4h, LD2Tw...
    printTypedVectorList(MI, 0, O, 4, 'h', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 18:
    // LD1Fourv4h_POST, LD1Onev4h_POST, LD1Rv4h_POST, LD1Threev4h_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 4, 'h', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 19:
    // LD1Fourv4s, LD1Onev4s, LD1Rv4s, LD1Threev4s, LD1Twov4s, LD2Rv4s, LD2Tw...
    printTypedVectorList(MI, 0, O, 4, 's', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 20:
    // LD1Fourv4s_POST, LD1Onev4s_POST, LD1Rv4s_POST, LD1Threev4s_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 4, 's', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 21:
    // LD1Fourv8b, LD1Onev8b, LD1Rv8b, LD1Threev8b, LD1Twov8b, LD2Rv8b, LD2Tw...
    printTypedVectorList(MI, 0, O, 8, 'b', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 22:
    // LD1Fourv8b_POST, LD1Onev8b_POST, LD1Rv8b_POST, LD1Threev8b_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 8, 'b', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 23:
    // LD1Fourv8h, LD1Onev8h, LD1Rv8h, LD1Threev8h, LD1Twov8h, LD2Rv8h, LD2Tw...
    printTypedVectorList(MI, 0, O, 8, 'h', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 1, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 24:
    // LD1Fourv8h_POST, LD1Onev8h_POST, LD1Rv8h_POST, LD1Threev8h_POST, LD1Tw...
    printTypedVectorList(MI, 1, O, 8, 'h', MRI); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 25:
    // LD1i16, LD2i16, LD3i16, LD4i16, ST1i16_POST, ST2i16_POST, ST3i16_POST,...
    printTypedVectorList(MI, 1, O, 0, 'h', MRI); 
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 3, O); 
    break;
  case 26:
    // LD1i16_POST, LD2i16_POST, LD3i16_POST, LD4i16_POST
    printTypedVectorList(MI, 2, O, 0, 'h', MRI); 
    printVectorIndex(MI, 3, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 4, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 27:
    // LD1i32, LD2i32, LD3i32, LD4i32, ST1i32_POST, ST2i32_POST, ST3i32_POST,...
    printTypedVectorList(MI, 1, O, 0, 's', MRI); 
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 3, O); 
    break;
  case 28:
    // LD1i32_POST, LD2i32_POST, LD3i32_POST, LD4i32_POST
    printTypedVectorList(MI, 2, O, 0, 's', MRI); 
    printVectorIndex(MI, 3, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 4, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 29:
    // LD1i64, LD2i64, LD3i64, LD4i64, ST1i64_POST, ST2i64_POST, ST3i64_POST,...
    printTypedVectorList(MI, 1, O, 0, 'd', MRI); 
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 3, O); 
    break;
  case 30:
    // LD1i64_POST, LD2i64_POST, LD3i64_POST, LD4i64_POST
    printTypedVectorList(MI, 2, O, 0, 'd', MRI); 
    printVectorIndex(MI, 3, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 4, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 31:
    // LD1i8, LD2i8, LD3i8, LD4i8, ST1i8_POST, ST2i8_POST, ST3i8_POST, ST4i8_...
    printTypedVectorList(MI, 1, O, 0, 'b', MRI); 
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 3, O); 
    break;
  case 32:
    // LD1i8_POST, LD2i8_POST, LD3i8_POST, LD4i8_POST
    printTypedVectorList(MI, 2, O, 0, 'b', MRI); 
    printVectorIndex(MI, 3, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 4, O); 
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 33:
    // MSR
    printMSRSystemRegister(MI, 0, O); 
    SStream_concat0(O, ", "); 
    printOperand(MI, 1, O); 
    return;
    break;
  case 34:
    // MSRpstate
    printSystemPStateField(MI, 0, O); 
    SStream_concat0(O, ", "); 
    printOperand(MI, 1, O); 
    return;
    break;
  case 35:
    // PRFMl, PRFMroW, PRFMroX, PRFMui, PRFUMi
    printPrefetchOp(MI, 0, O); 
    break;
  case 36:
    // ST1i16, ST2i16, ST3i16, ST4i16
    printTypedVectorList(MI, 0, O, 0, 'h', MRI); 
    printVectorIndex(MI, 1, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 37:
    // ST1i32, ST2i32, ST3i32, ST4i32
    printTypedVectorList(MI, 0, O, 0, 's', MRI); 
    printVectorIndex(MI, 1, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 38:
    // ST1i64, ST2i64, ST3i64, ST4i64
    printTypedVectorList(MI, 0, O, 0, 'd', MRI); 
    printVectorIndex(MI, 1, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 39:
    // ST1i8, ST2i8, ST3i8, ST4i8
    printTypedVectorList(MI, 0, O, 0, 'b', MRI); 
    printVectorIndex(MI, 1, O); 
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 2, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  }


  // Fragment 1 encoded into 6 bits for 41 unique commands.
  //printf("Frag-1: %"PRIu64"\n", (Bits >> 18) & 63);
  switch ((Bits >> 18) & 63) {
  default:   // unreachable.
  case 0:
    // ABSv16i8, ADDHNv8i16_v16i8, ADDPv16i8, ADDv16i8, AESDrr, AESErr, AESIM...
    SStream_concat0(O, ".16b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
    break;
  case 1:
    // ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDPv2i64p, ADDSWri, ADDSWrs, ...
    SStream_concat0(O, ", "); 
    break;
  case 2:
    // ABSv2i32, ADDHNv2i64_v2i32, ADDPv2i32, ADDv2i32, BICv2i32, CLSv2i32, C...
    SStream_concat0(O, ".2s, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
    break;
  case 3:
    // ABSv2i64, ADDPv2i64, ADDv2i64, CMEQv2i64, CMEQv2i64rz, CMGEv2i64, CMGE...
    SStream_concat0(O, ".2d, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    break;
  case 4:
    // ABSv4i16, ADDHNv4i32_v4i16, ADDPv4i16, ADDv4i16, BICv4i16, CLSv4i16, C...
    SStream_concat0(O, ".4h, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
    break;
  case 5:
    // ABSv4i32, ADDHNv2i64_v4i32, ADDPv4i32, ADDv4i32, BICv4i32, CLSv4i32, C...
    SStream_concat0(O, ".4s, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
    break;
  case 6:
    // ABSv8i16, ADDHNv4i32_v8i16, ADDPv8i16, ADDv8i16, BICv8i16, CLSv8i16, C...
    SStream_concat0(O, ".8h, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
    break;
  case 7:
    // ABSv8i8, ADDHNv8i16_v8i8, ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8...
    SStream_concat0(O, ".8b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
    break;
  case 8:
    // BLR, BR, CLREX, RET, TLSDESCCALL
    return;
    break;
  case 9:
    // FCMPDri, FCMPEDri, FCMPESri, FCMPSri
    SStream_concat0(O, ", #0.0");
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 10:
    // FMOVXDHighr, INSvi64gpr, INSvi64lane
    SStream_concat0(O, ".d");
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", "); 
    break;
  case 11:
    // INSvi16gpr, INSvi16lane
    SStream_concat0(O, ".h");
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", "); 
    break;
  case 12:
    // INSvi32gpr, INSvi32lane
    SStream_concat0(O, ".s");
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", "); 
    break;
  case 13:
    // INSvi8gpr, INSvi8lane
    SStream_concat0(O, ".b");
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_B);
    printVectorIndex(MI, 2, O); 
    SStream_concat0(O, ", "); 
    break;
  case 14:
    // LD1Fourv16b_POST, LD1Fourv2d_POST, LD1Fourv4s_POST, LD1Fourv8h_POST, L...
    printPostIncOperand2(MI, 3, O, 64); 
    return;
    break;
  case 15:
    // LD1Fourv1d_POST, LD1Fourv2s_POST, LD1Fourv4h_POST, LD1Fourv8b_POST, LD...
    printPostIncOperand2(MI, 3, O, 32); 
    return;
    break;
  case 16:
    // LD1Onev16b_POST, LD1Onev2d_POST, LD1Onev4s_POST, LD1Onev8h_POST, LD1Tw...
    printPostIncOperand2(MI, 3, O, 16); 
    return;
    break;
  case 17:
    // LD1Onev1d_POST, LD1Onev2s_POST, LD1Onev4h_POST, LD1Onev8b_POST, LD1Rv1...
    printPostIncOperand2(MI, 3, O, 8); 
    return;
    break;
  case 18:
    // LD1Rv16b_POST, LD1Rv8b_POST
    printPostIncOperand2(MI, 3, O, 1); 
    return;
    break;
  case 19:
    // LD1Rv2s_POST, LD1Rv4s_POST, LD2Rv4h_POST, LD2Rv8h_POST, LD4Rv16b_POST,...
    printPostIncOperand2(MI, 3, O, 4); 
    return;
    break;
  case 20:
    // LD1Rv4h_POST, LD1Rv8h_POST, LD2Rv16b_POST, LD2Rv8b_POST
    printPostIncOperand2(MI, 3, O, 2); 
    return;
    break;
  case 21:
    // LD1Threev16b_POST, LD1Threev2d_POST, LD1Threev4s_POST, LD1Threev8h_POS...
    printPostIncOperand2(MI, 3, O, 48); 
    return;
    break;
  case 22:
    // LD1Threev1d_POST, LD1Threev2s_POST, LD1Threev4h_POST, LD1Threev8b_POST...
    printPostIncOperand2(MI, 3, O, 24); 
    return;
    break;
  case 23:
    // LD1i16, LD1i32, LD1i64, LD1i8, LD2i16, LD2i32, LD2i64, LD2i8, LD3i16, ...
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 24:
    // LD1i16_POST, LD2i8_POST
    printPostIncOperand2(MI, 5, O, 2); 
    return;
    break;
  case 25:
    // LD1i32_POST, LD2i16_POST, LD4i8_POST
    printPostIncOperand2(MI, 5, O, 4); 
    return;
    break;
  case 26:
    // LD1i64_POST, LD2i32_POST, LD4i16_POST
    printPostIncOperand2(MI, 5, O, 8); 
    return;
    break;
  case 27:
    // LD1i8_POST
    printPostIncOperand2(MI, 5, O, 1); 
    return;
    break;
  case 28:
    // LD2i64_POST, LD4i32_POST
    printPostIncOperand2(MI, 5, O, 16); 
    return;
    break;
  case 29:
    // LD3Rv16b_POST, LD3Rv8b_POST
    printPostIncOperand2(MI, 3, O, 3); 
    return;
    break;
  case 30:
    // LD3Rv2s_POST, LD3Rv4s_POST
    printPostIncOperand2(MI, 3, O, 12); 
    return;
    break;
  case 31:
    // LD3Rv4h_POST, LD3Rv8h_POST
    printPostIncOperand2(MI, 3, O, 6); 
    return;
    break;
  case 32:
    // LD3i16_POST
    printPostIncOperand2(MI, 5, O, 6); 
    return;
    break;
  case 33:
    // LD3i32_POST
    printPostIncOperand2(MI, 5, O, 12); 
    return;
    break;
  case 34:
    // LD3i64_POST
    printPostIncOperand2(MI, 5, O, 24); 
    return;
    break;
  case 35:
    // LD3i8_POST
    printPostIncOperand2(MI, 5, O, 3); 
    return;
    break;
  case 36:
    // LD4i64_POST
    printPostIncOperand2(MI, 5, O, 32); 
    return;
    break;
  case 37:
    // LDARB, LDARH, LDARW, LDARX, LDAXRB, LDAXRH, LDAXRW, LDAXRX, LDRBBpost,...
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    break;
  case 38:
    // PMULLv1i64, PMULLv2i64
    SStream_concat0(O, ".1q, ");
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1Q);
    printVRegOperand(MI, 1, O); 
    break;
  case 39:
    // SADALPv2i32_v1i64, SADDLPv2i32_v1i64, UADALPv2i32_v1i64, UADDLPv2i32_v...
    SStream_concat0(O, ".1d, ");
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
    break;
  case 40:
    // ST1i16_POST, ST1i32_POST, ST1i64_POST, ST1i8_POST, ST2i16_POST, ST2i32...
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  }


  // Fragment 2 encoded into 5 bits for 28 unique commands.
  //printf("Frag-2: %"PRIu64"\n", (Bits >> 24) & 31);
  switch ((Bits >> 24) & 31) {
  default:   // unreachable.
  case 0:
    // ABSv16i8, ABSv2i32, ABSv2i64, ABSv4i16, ABSv4i32, ABSv8i16, ABSv8i8, A...
    printVRegOperand(MI, 1, O); 
    break;
  case 1:
    // ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSWri, ADDSWrs, ADDSWrx, ADD...
    printOperand(MI, 1, O); 
    break;
  case 2:
    // ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, AESDrr, AESErr, ...
    printVRegOperand(MI, 2, O); 
    break;
  case 3:
    // ADRP
    printAdrpLabel(MI, 1, O); 
    return;
    break;
  case 4:
    // BFMWri, BFMXri, FMLAv1i32_indexed, FMLAv1i64_indexed, FMLSv1i32_indexe...
    printOperand(MI, 2, O); 
    break;
  case 5:
    // BICv2i32, BICv4i16, BICv4i32, BICv8i16, MOVKWi, MOVKXi, ORRv2i32, ORRv...
    printHexImm(MI, 2, O); 
    printShifter(MI, 3, O); 
    return;
    break;
  case 6:
    // CBNZW, CBNZX, CBZW, CBZX, LDRDl, LDRQl, LDRSWl, LDRSl, LDRWl, LDRXl, P...
    printAlignedLabel(MI, 1, O); 
    return;
    break;
  case 7:
    // FMOVDi, FMOVSi, FMOVv2f32_ns, FMOVv2f64_ns, FMOVv4f32_ns
    printFPImmOperand(MI, 1, O); 
    return;
    break;
  case 8:
    // INSvi16gpr, INSvi32gpr, INSvi64gpr, INSvi8gpr
    printOperand(MI, 3, O); 
    return;
    break;
  case 9:
    // INSvi16lane, INSvi32lane, INSvi64lane, INSvi8lane
    printVRegOperand(MI, 3, O); 
    break;
  case 10:
    // MOVID, MOVIv2d_ns
    printSIMDType10Operand(MI, 1, O); 
    return;
    break;
  case 11:
    // MOVIv16b_ns, MOVIv2i32, MOVIv2s_msl, MOVIv4i16, MOVIv4i32, MOVIv4s_msl...
    printHexImm(MI, 1, O); 
    break;
  case 12:
    // MRS
    printMRSSystemRegister(MI, 1, O); 
    return;
    break;
  case 13:
    // PMULLv1i64
    SStream_concat0(O, ".1d, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
    printVRegOperand(MI, 2, O); 
    SStream_concat0(O, ".1d"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
    return;
    break;
  case 14:
    // PMULLv2i64
    SStream_concat0(O, ".2d, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    printVRegOperand(MI, 2, O); 
    SStream_concat0(O, ".2d"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    return;
    break;
  case 15:
    // ST1i16_POST, ST2i8_POST
    printPostIncOperand2(MI, 4, O, 2); 
    return;
    break;
  case 16:
    // ST1i32_POST, ST2i16_POST, ST4i8_POST
    printPostIncOperand2(MI, 4, O, 4); 
    return;
    break;
  case 17:
    // ST1i64_POST, ST2i32_POST, ST4i16_POST
    printPostIncOperand2(MI, 4, O, 8); 
    return;
    break;
  case 18:
    // ST1i8_POST
    printPostIncOperand2(MI, 4, O, 1); 
    return;
    break;
  case 19:
    // ST2i64_POST, ST4i32_POST
    printPostIncOperand2(MI, 4, O, 16); 
    return;
    break;
  case 20:
    // ST3i16_POST
    printPostIncOperand2(MI, 4, O, 6); 
    return;
    break;
  case 21:
    // ST3i32_POST
    printPostIncOperand2(MI, 4, O, 12); 
    return;
    break;
  case 22:
    // ST3i64_POST
    printPostIncOperand2(MI, 4, O, 24); 
    return;
    break;
  case 23:
    // ST3i8_POST
    printPostIncOperand2(MI, 4, O, 3); 
    return;
    break;
  case 24:
    // ST4i64_POST
    printPostIncOperand2(MI, 4, O, 32); 
    return;
    break;
  case 25:
    // SYSxt
    printSysCROperand(MI, 1, O); 
    SStream_concat0(O, ", "); 
    printSysCROperand(MI, 2, O); 
    SStream_concat0(O, ", "); 
    printOperand(MI, 3, O); 
    SStream_concat0(O, ", "); 
    printOperand(MI, 4, O); 
    return;
    break;
  case 26:
    // TBLv16i8Four, TBLv16i8One, TBLv16i8Three, TBLv16i8Two, TBLv8i8Four, TB...
    printTypedVectorList(MI, 1, O, 16, 'b', MRI); 
    SStream_concat0(O, ", "); 
    printVRegOperand(MI, 2, O); 
    break;
  case 27:
    // TBXv16i8Four, TBXv16i8One, TBXv16i8Three, TBXv16i8Two, TBXv8i8Four, TB...
    printTypedVectorList(MI, 2, O, 16, 'b', MRI); 
    SStream_concat0(O, ", "); 
    printVRegOperand(MI, 3, O); 
    break;
  }


  // Fragment 3 encoded into 6 bits for 42 unique commands.
  //printf("Frag-3: %"PRIu64"\n", (Bits >> 29) & 63);
  switch ((Bits >> 29) & 63) {
  default:   // unreachable.
  case 0:
    // ABSv16i8, ADDVv16i8v, AESDrr, AESErr, AESIMCrr, AESMCrr, CLSv16i8, CLZ...
    SStream_concat0(O, ".16b"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
    return;
    break;
  case 1:
    // ABSv1i64, ADR, CLSWr, CLSXr, CLZWr, CLZXr, DUPv16i8gpr, DUPv2i32gpr, D...
    return;
    break;
  case 2:
    // ABSv2i32, CLSv2i32, CLZv2i32, FABSv2f32, FADDPv2i32p, FCVTASv2f32, FCV...
    SStream_concat0(O, ".2s"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
    return;
    break;
  case 3:
    // ABSv2i64, ADDPv2i64p, FABSv2f64, FADDPv2i64p, FCVTASv2f64, FCVTAUv2f64...
    SStream_concat0(O, ".2d"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    return;
    break;
  case 4:
    // ABSv4i16, ADDVv4i16v, CLSv4i16, CLZv4i16, FCVTLv4i16, NEGv4i16, REV32v...
    SStream_concat0(O, ".4h"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
    return;
    break;
  case 5:
    // ABSv4i32, ADDVv4i32v, CLSv4i32, CLZv4i32, FABSv4f32, FCVTASv4f32, FCVT...
    SStream_concat0(O, ".4s"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
    return;
    break;
  case 6:
    // ABSv8i16, ADDVv8i16v, CLSv8i16, CLZv8i16, FCVTLv8i16, NEGv8i16, REV32v...
    SStream_concat0(O, ".8h"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
    return;
    break;
  case 7:
    // ABSv8i8, ADDVv8i8v, CLSv8i8, CLZv8i8, CNTv8i8, NEGv8i8, NOTv8i8, RBITv...
    SStream_concat0(O, ".8b"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
    return;
    break;
  case 8:
    // ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSWri, ADDSWrs, ADDSWrx, ADDSXri, ADDS...
    SStream_concat0(O, ", "); 
    break;
  case 9:
    // ADDHNv2i64_v2i32, ADDHNv2i64_v4i32, ADDPv2i64, ADDv2i64, CMEQv2i64, CM...
    SStream_concat0(O, ".2d, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    break;
  case 10:
    // ADDHNv4i32_v4i16, ADDHNv4i32_v8i16, ADDPv4i32, ADDv4i32, CMEQv4i32, CM...
    SStream_concat0(O, ".4s, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
    break;
  case 11:
    // ADDHNv8i16_v16i8, ADDHNv8i16_v8i8, ADDPv8i16, ADDv8i16, CMEQv8i16, CMG...
    SStream_concat0(O, ".8h, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
    break;
  case 12:
    // ADDPv16i8, ADDv16i8, ANDv16i8, BICv16i8, BIFv16i8, BITv16i8, BSLv16i8,...
    SStream_concat0(O, ".16b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
    break;
  case 13:
    // ADDPv2i32, ADDv2i32, CMEQv2i32, CMGEv2i32, CMGTv2i32, CMHIv2i32, CMHSv...
    SStream_concat0(O, ".2s, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
    break;
  case 14:
    // ADDPv4i16, ADDv4i16, CMEQv4i16, CMGEv4i16, CMGTv4i16, CMHIv4i16, CMHSv...
    SStream_concat0(O, ".4h, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
    break;
  case 15:
    // ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8, BITv8i8, BSLv8i8, CMEQv8...
    SStream_concat0(O, ".8b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
    break;
  case 16:
    // CMEQv16i8rz, CMGEv16i8rz, CMGTv16i8rz, CMLEv16i8rz, CMLTv16i8rz
    SStream_concat0(O, ".16b, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 17:
    // CMEQv1i64rz, CMGEv1i64rz, CMGTv1i64rz, CMLEv1i64rz, CMLTv1i64rz
    SStream_concat0(O, ", #0"); 
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 18:
    // CMEQv2i32rz, CMGEv2i32rz, CMGTv2i32rz, CMLEv2i32rz, CMLTv2i32rz
    SStream_concat0(O, ".2s, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 19:
    // CMEQv2i64rz, CMGEv2i64rz, CMGTv2i64rz, CMLEv2i64rz, CMLTv2i64rz
    SStream_concat0(O, ".2d, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 20:
    // CMEQv4i16rz, CMGEv4i16rz, CMGTv4i16rz, CMLEv4i16rz, CMLTv4i16rz
    SStream_concat0(O, ".4h, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 21:
    // CMEQv4i32rz, CMGEv4i32rz, CMGTv4i32rz, CMLEv4i32rz, CMLTv4i32rz
    SStream_concat0(O, ".4s, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 22:
    // CMEQv8i16rz, CMGEv8i16rz, CMGTv8i16rz, CMLEv8i16rz, CMLTv8i16rz
    SStream_concat0(O, ".8h, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 23:
    // CMEQv8i8rz, CMGEv8i8rz, CMGTv8i8rz, CMLEv8i8rz, CMLTv8i8rz
    SStream_concat0(O, ".8b, #0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
	arm64_op_addImm(MI, 0);
    return;
    break;
  case 24:
    // CPYi16, DUPv4i16lane, DUPv8i16lane, INSvi16lane, SMOVvi16to32, SMOVvi1...
    SStream_concat0(O, ".h"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
    break;
  case 25:
    // CPYi32, DUPv2i32lane, DUPv4i32lane, INSvi32lane, SMOVvi32to64, UMOVvi3...
    SStream_concat0(O, ".s"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
    break;
  case 26:
    // CPYi64, DUPv2i64lane, FMOVDXHighr, INSvi64lane, UMOVvi64
    SStream_concat0(O, ".d"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
    break;
  case 27:
    // CPYi8, DUPv16i8lane, DUPv8i8lane, INSvi8lane, SMOVvi8to32, SMOVvi8to64...
    SStream_concat0(O, ".b"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_B);
    break;
  case 28:
    // FCMEQv1i32rz, FCMEQv1i64rz, FCMGEv1i32rz, FCMGEv1i64rz, FCMGTv1i32rz, ...
    SStream_concat0(O, ", #0.0"); 
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 29:
    // FCMEQv2i32rz, FCMGEv2i32rz, FCMGTv2i32rz, FCMLEv2i32rz, FCMLTv2i32rz
    SStream_concat0(O, ".2s, #0.0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 30:
    // FCMEQv2i64rz, FCMGEv2i64rz, FCMGTv2i64rz, FCMLEv2i64rz, FCMLTv2i64rz
    SStream_concat0(O, ".2d, #0.0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 31:
    // FCMEQv4i32rz, FCMGEv4i32rz, FCMGTv4i32rz, FCMLEv4i32rz, FCMLTv4i32rz
    SStream_concat0(O, ".4s, #0.0"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
	arm64_op_addFP(MI, 0.0);
    return;
    break;
  case 32:
    // LDARB, LDARH, LDARW, LDARX, LDAXRB, LDAXRH, LDAXRW, LDAXRX, LDXRB, LDX...
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 33:
    // LDAXPW, LDAXPX, LDNPDi, LDNPQi, LDNPSi, LDNPWi, LDNPXi, LDPDi, LDPDpos...
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    break;
  case 34:
    // LDRBBpost, LDRBpost, LDRDpost, LDRHHpost, LDRHpost, LDRQpost, LDRSBWpo...
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    printOperand(MI, 3, O); 
    return;
    break;
  case 35:
    // MOVIv2i32, MOVIv2s_msl, MOVIv4i16, MOVIv4i32, MOVIv4s_msl, MOVIv8i16, ...
    printShifter(MI, 2, O); 
    return;
    break;
  case 36:
    // SHLLv16i8
    SStream_concat0(O, ".16b, #8"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
	arm64_op_addImm(MI, 8);
    return;
    break;
  case 37:
    // SHLLv2i32
    SStream_concat0(O, ".2s, #32"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
	arm64_op_addImm(MI, 32);
    return;
    break;
  case 38:
    // SHLLv4i16
    SStream_concat0(O, ".4h, #16"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
	arm64_op_addImm(MI, 16);
    return;
    break;
  case 39:
    // SHLLv4i32
    SStream_concat0(O, ".4s, #32"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
	arm64_op_addImm(MI, 32);
    return;
    break;
  case 40:
    // SHLLv8i16
    SStream_concat0(O, ".8h, #16"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
	arm64_op_addImm(MI, 16);
    return;
    break;
  case 41:
    // SHLLv8i8
    SStream_concat0(O, ".8b, #8"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
	arm64_op_addImm(MI, 8);
    return;
    break;
  }


  // Fragment 4 encoded into 5 bits for 18 unique commands.
  //printf("Frag-4: %"PRIu64"\n", (Bits >> 35) & 31);
  switch ((Bits >> 35) & 31) {
  default:   // unreachable.
  case 0:
    // ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSXrx64, ADDXrx64, ADDv1i64, ASRVWr, A...
    printOperand(MI, 2, O); 
    break;
  case 1:
    // ADDHNv2i64_v2i32, ADDHNv4i32_v4i16, ADDHNv8i16_v8i8, ADDPv16i8, ADDPv2...
    printVRegOperand(MI, 2, O); 
    break;
  case 2:
    // ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, BITv16i8, BITv8i...
    printVRegOperand(MI, 3, O); 
    break;
  case 3:
    // ADDSWri, ADDSXri, ADDWri, ADDXri, SUBSWri, SUBSXri, SUBWri, SUBXri
    printAddSubImm(MI, 2, O); 
    return;
    break;
  case 4:
    // ADDSWrs, ADDSXrs, ADDWrs, ADDXrs, ANDSWrs, ANDSXrs, ANDWrs, ANDXrs, BI...
    printShiftedRegister(MI, 2, O); 
    return;
    break;
  case 5:
    // ADDSWrx, ADDSXrx, ADDWrx, ADDXrx, SUBSWrx, SUBSXrx, SUBWrx, SUBXrx
    printExtendedRegister(MI, 2, O); 
    return;
    break;
  case 6:
    // ANDSWri, ANDWri, EORWri, ORRWri
    printLogicalImm32(MI, 2, O); 
    return;
    break;
  case 7:
    // ANDSXri, ANDXri, EORXri, ORRXri
    printLogicalImm64(MI, 2, O); 
    return;
    break;
  case 8:
    // BFMWri, BFMXri, LDPDpost, LDPDpre, LDPQpost, LDPQpre, LDPSWpost, LDPSW...
    printOperand(MI, 3, O); 
    break;
  case 9:
    // CPYi16, CPYi32, CPYi64, CPYi8, DUPv16i8lane, DUPv2i32lane, DUPv2i64lan...
    printVectorIndex(MI, 2, O); 
    return;
    break;
  case 10:
    // INSvi16lane, INSvi32lane, INSvi64lane, INSvi8lane
    printVectorIndex(MI, 4, O); 
    return;
    break;
  case 11:
    // LDRBBui, LDRBui, LDRSBWui, LDRSBXui, STRBBui, STRBui
    printUImm12Offset2(MI, 2, O, 1); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 12:
    // LDRDui, LDRXui, PRFMui, STRDui, STRXui
    printUImm12Offset2(MI, 2, O, 8); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 13:
    // LDRHHui, LDRHui, LDRSHWui, LDRSHXui, STRHHui, STRHui
    printUImm12Offset2(MI, 2, O, 2); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 14:
    // LDRQui, STRQui
    printUImm12Offset2(MI, 2, O, 16); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 15:
    // LDRSWui, LDRSui, LDRWui, STRSui, STRWui
    printUImm12Offset2(MI, 2, O, 4); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 16:
    // SYSLxt
    printSysCROperand(MI, 2, O); 
    SStream_concat0(O, ", "); 
    printSysCROperand(MI, 3, O); 
    SStream_concat0(O, ", "); 
    printOperand(MI, 4, O); 
    return;
    break;
  case 17:
    // TBNZW, TBNZX, TBZW, TBZX
    printAlignedLabel(MI, 2, O); 
    return;
    break;
  }


  // Fragment 5 encoded into 5 bits for 19 unique commands.
  //printf("Frag-5: %"PRIu64"\n", (Bits >> 40) & 31);
  switch ((Bits >> 40) & 31) {
  default:   // unreachable.
  case 0:
    // ADCSWr, ADCSXr, ADCWr, ADCXr, ADDv1i64, ASRVWr, ASRVXr, CMEQv1i64, CMG...
    return;
    break;
  case 1:
    // ADDHNv2i64_v2i32, ADDHNv2i64_v4i32, ADDPv2i64, ADDv2i64, CMEQv2i64, CM...
    SStream_concat0(O, ".2d"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
    return;
    break;
  case 2:
    // ADDHNv4i32_v4i16, ADDHNv4i32_v8i16, ADDPv4i32, ADDv4i32, CMEQv4i32, CM...
    SStream_concat0(O, ".4s"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
    return;
    break;
  case 3:
    // ADDHNv8i16_v16i8, ADDHNv8i16_v8i8, ADDPv8i16, ADDv8i16, CMEQv8i16, CMG...
    SStream_concat0(O, ".8h"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
    return;
    break;
  case 4:
    // ADDPv16i8, ADDv16i8, ANDv16i8, BICv16i8, BIFv16i8, BITv16i8, BSLv16i8,...
    SStream_concat0(O, ".16b"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
    return;
    break;
  case 5:
    // ADDPv2i32, ADDv2i32, CMEQv2i32, CMGEv2i32, CMGTv2i32, CMHIv2i32, CMHSv...
    SStream_concat0(O, ".2s"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
    return;
    break;
  case 6:
    // ADDPv4i16, ADDv4i16, CMEQv4i16, CMGEv4i16, CMGTv4i16, CMHIv4i16, CMHSv...
    SStream_concat0(O, ".4h"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
    return;
    break;
  case 7:
    // ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8, BITv8i8, BSLv8i8, CMEQv8...
    SStream_concat0(O, ".8b"); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
    return;
    break;
  case 8:
    // ADDSXrx64, ADDXrx64, SUBSXrx64, SUBXrx64
    printArithExtend(MI, 3, O); 
    return;
    break;
  case 9:
    // BFMWri, BFMXri, CCMNWi, CCMNWr, CCMNXi, CCMNXr, CCMPWi, CCMPWr, CCMPXi...
    SStream_concat0(O, ", "); 
    break;
  case 10:
    // EXTv16i8
    SStream_concat0(O, ".16b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
    printOperand(MI, 3, O); 
    return;
    break;
  case 11:
    // EXTv8i8
    SStream_concat0(O, ".8b, "); 
	arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
    printOperand(MI, 3, O); 
    return;
    break;
  case 12:
    // FMLAv1i32_indexed, FMLAv2i32_indexed, FMLAv4i32_indexed, FMLSv1i32_ind...
    SStream_concat0(O, ".s"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
    break;
  case 13:
    // FMLAv1i64_indexed, FMLAv2i64_indexed, FMLSv1i64_indexed, FMLSv2i64_ind...
    SStream_concat0(O, ".d"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
    break;
  case 14:
    // LDAXPW, LDAXPX, LDTRBi, LDTRHi, LDTRSBWi, LDTRSBXi, LDTRSHWi, LDTRSHXi...
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 15:
    // LDPDpost, LDPQpost, LDPSWpost, LDPSpost, LDPWpost, LDPXpost, STPDpost,...
    SStream_concat0(O, "], "); 
    set_mem_access(MI, false);
    break;
  case 16:
    // LDRBBpre, LDRBpre, LDRDpre, LDRHHpre, LDRHpre, LDRQpre, LDRSBWpre, LDR...
    SStream_concat0(O, "]!"); 
    set_mem_access(MI, false);
    return;
    break;
  case 17:
    // MLAv4i16_indexed, MLAv8i16_indexed, MLSv4i16_indexed, MLSv8i16_indexed...
    SStream_concat0(O, ".h"); 
	arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
    break;
  case 18:
    // STLXPW, STLXPX, STXPW, STXPX
    SStream_concat0(O, ", ["); 
    set_mem_access(MI, true);
    printOperand(MI, 3, O); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  }


  // Fragment 6 encoded into 5 bits for 21 unique commands.
  //printf("Frag-6: %"PRIu64"\n", (Bits >> 45) & 31);
  switch ((Bits >> 45) & 31) {
  default:   // unreachable.
  case 0:
    // BFMWri, BFMXri
    printOperand(MI, 4, O); 
    return;
    break;
  case 1:
    // CCMNWi, CCMNWr, CCMNXi, CCMNXr, CCMPWi, CCMPWr, CCMPXi, CCMPXr, CSELWr...
    printCondCode(MI, 3, O); 
    return;
    break;
  case 2:
    // EXTRWrri, EXTRXrri, FMADDDrrr, FMADDSrrr, FMSUBDrrr, FMSUBSrrr, FNMADD...
    printOperand(MI, 3, O); 
    return;
    break;
  case 3:
    // FMLAv1i32_indexed, FMLAv1i64_indexed, FMLAv2i32_indexed, FMLAv2i64_ind...
    printVectorIndex(MI, 4, O); 
    return;
    break;
  case 4:
    // FMULXv1i32_indexed, FMULXv1i64_indexed, FMULXv2i32_indexed, FMULXv2i64...
    printVectorIndex(MI, 3, O); 
    return;
    break;
  case 5:
    // LDNPDi, LDNPXi, LDPDi, LDPXi, STNPDi, STNPXi, STPDi, STPXi
    printImmScale(MI, 3, O, 8); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 6:
    // LDNPQi, LDPQi, STNPQi, STPQi
    printImmScale(MI, 3, O, 16); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 7:
    // LDNPSi, LDNPWi, LDPSWi, LDPSi, LDPWi, STNPSi, STNPWi, STPSi, STPWi
    printImmScale(MI, 3, O, 4); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 8:
    // LDPDpost, LDPDpre, LDPXpost, LDPXpre, STPDpost, STPDpre, STPXpost, STP...
    printImmScale(MI, 4, O, 8); 
    break;
  case 9:
    // LDPQpost, LDPQpre, STPQpost, STPQpre
    printImmScale(MI, 4, O, 16); 
    break;
  case 10:
    // LDPSWpost, LDPSWpre, LDPSpost, LDPSpre, LDPWpost, LDPWpre, STPSpost, S...
    printImmScale(MI, 4, O, 4); 
    break;
  case 11:
    // LDRBBroW, LDRBroW, LDRSBWroW, LDRSBXroW, STRBBroW, STRBroW
    printMemExtend(MI, 3, O, 'w', 8); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 12:
    // LDRBBroX, LDRBroX, LDRSBWroX, LDRSBXroX, STRBBroX, STRBroX
    printMemExtend(MI, 3, O, 'x', 8); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 13:
    // LDRDroW, LDRXroW, PRFMroW, STRDroW, STRXroW
    printMemExtend(MI, 3, O, 'w', 64); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 14:
    // LDRDroX, LDRXroX, PRFMroX, STRDroX, STRXroX
    printMemExtend(MI, 3, O, 'x', 64); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 15:
    // LDRHHroW, LDRHroW, LDRSHWroW, LDRSHXroW, STRHHroW, STRHroW
    printMemExtend(MI, 3, O, 'w', 16); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 16:
    // LDRHHroX, LDRHroX, LDRSHWroX, LDRSHXroX, STRHHroX, STRHroX
    printMemExtend(MI, 3, O, 'x', 16); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 17:
    // LDRQroW, STRQroW
    printMemExtend(MI, 3, O, 'w', 128); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 18:
    // LDRQroX, STRQroX
    printMemExtend(MI, 3, O, 'x', 128); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 19:
    // LDRSWroW, LDRSroW, LDRWroW, STRSroW, STRWroW
    printMemExtend(MI, 3, O, 'w', 32); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  case 20:
    // LDRSWroX, LDRSroX, LDRWroX, STRSroX, STRWroX
    printMemExtend(MI, 3, O, 'x', 32); 
    SStream_concat0(O, "]"); 
    set_mem_access(MI, false);
    return;
    break;
  }


  // Fragment 7 encoded into 1 bits for 2 unique commands.
  //printf("Frag-7: %"PRIu64"\n", (Bits >> 50) & 1);
  if ((Bits >> 50) & 1) {
    // LDPDpre, LDPQpre, LDPSWpre, LDPSpre, LDPWpre, LDPXpre, STPDpre, STPQpr...
    SStream_concat0(O, "]!"); 
    set_mem_access(MI, false);
    return;
  } else {
    // LDPDpost, LDPQpost, LDPSWpost, LDPSpost, LDPWpost, LDPXpost, STPDpost,...
    return;
  }
}


/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description.  This returns the assembler name
/// for the specified register.
static const char *getRegisterName(unsigned RegNo, int AltIdx)
{
  // assert(RegNo && RegNo < 420 && "Invalid register number!");

#ifndef CAPSTONE_DIET
  static const char AsmStrsNoRegAltName[] = {
  /* 0 */ 'D', '7', '_', 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', 0,
  /* 13 */ 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', 0,
  /* 26 */ 'b', '1', '0', 0,
  /* 30 */ 'd', '1', '0', 0,
  /* 34 */ 'h', '1', '0', 0,
  /* 38 */ 'q', '1', '0', 0,
  /* 42 */ 's', '1', '0', 0,
  /* 46 */ 'w', '1', '0', 0,
  /* 50 */ 'x', '1', '0', 0,
  /* 54 */ 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', 0,
  /* 70 */ 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', 0,
  /* 86 */ 'b', '2', '0', 0,
  /* 90 */ 'd', '2', '0', 0,
  /* 94 */ 'h', '2', '0', 0,
  /* 98 */ 'q', '2', '0', 0,
  /* 102 */ 's', '2', '0', 0,
  /* 106 */ 'w', '2', '0', 0,
  /* 110 */ 'x', '2', '0', 0,
  /* 114 */ 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', 0,
  /* 130 */ 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', 0,
  /* 146 */ 'b', '3', '0', 0,
  /* 150 */ 'd', '3', '0', 0,
  /* 154 */ 'h', '3', '0', 0,
  /* 158 */ 'q', '3', '0', 0,
  /* 162 */ 's', '3', '0', 0,
  /* 166 */ 'w', '3', '0', 0,
  /* 170 */ 'x', '3', '0', 0,
  /* 174 */ 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', 0,
  /* 189 */ 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', 0,
  /* 204 */ 'b', '0', 0,
  /* 207 */ 'd', '0', 0,
  /* 210 */ 'h', '0', 0,
  /* 213 */ 'q', '0', 0,
  /* 216 */ 's', '0', 0,
  /* 219 */ 'w', '0', 0,
  /* 222 */ 'x', '0', 0,
  /* 225 */ 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', 0,
  /* 239 */ 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', 0,
  /* 253 */ 'b', '1', '1', 0,
  /* 257 */ 'd', '1', '1', 0,
  /* 261 */ 'h', '1', '1', 0,
  /* 265 */ 'q', '1', '1', 0,
  /* 269 */ 's', '1', '1', 0,
  /* 273 */ 'w', '1', '1', 0,
  /* 277 */ 'x', '1', '1', 0,
  /* 281 */ 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', 0,
  /* 297 */ 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', 0,
  /* 313 */ 'b', '2', '1', 0,
  /* 317 */ 'd', '2', '1', 0,
  /* 321 */ 'h', '2', '1', 0,
  /* 325 */ 'q', '2', '1', 0,
  /* 329 */ 's', '2', '1', 0,
  /* 333 */ 'w', '2', '1', 0,
  /* 337 */ 'x', '2', '1', 0,
  /* 341 */ 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', 0,
  /* 357 */ 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', 0,
  /* 373 */ 'b', '3', '1', 0,
  /* 377 */ 'd', '3', '1', 0,
  /* 381 */ 'h', '3', '1', 0,
  /* 385 */ 'q', '3', '1', 0,
  /* 389 */ 's', '3', '1', 0,
  /* 393 */ 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', 0,
  /* 407 */ 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', 0,
  /* 421 */ 'b', '1', 0,
  /* 424 */ 'd', '1', 0,
  /* 427 */ 'h', '1', 0,
  /* 430 */ 'q', '1', 0,
  /* 433 */ 's', '1', 0,
  /* 436 */ 'w', '1', 0,
  /* 439 */ 'x', '1', 0,
  /* 442 */ 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', 0,
  /* 457 */ 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', 0,
  /* 472 */ 'b', '1', '2', 0,
  /* 476 */ 'd', '1', '2', 0,
  /* 480 */ 'h', '1', '2', 0,
  /* 484 */ 'q', '1', '2', 0,
  /* 488 */ 's', '1', '2', 0,
  /* 492 */ 'w', '1', '2', 0,
  /* 496 */ 'x', '1', '2', 0,
  /* 500 */ 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', 0,
  /* 516 */ 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', 0,
  /* 532 */ 'b', '2', '2', 0,
  /* 536 */ 'd', '2', '2', 0,
  /* 540 */ 'h', '2', '2', 0,
  /* 544 */ 'q', '2', '2', 0,
  /* 548 */ 's', '2', '2', 0,
  /* 552 */ 'w', '2', '2', 0,
  /* 556 */ 'x', '2', '2', 0,
  /* 560 */ 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', '_', 'D', '2', 0,
  /* 573 */ 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', 0,
  /* 586 */ 'b', '2', 0,
  /* 589 */ 'd', '2', 0,
  /* 592 */ 'h', '2', 0,
  /* 595 */ 'q', '2', 0,
  /* 598 */ 's', '2', 0,
  /* 601 */ 'w', '2', 0,
  /* 604 */ 'x', '2', 0,
  /* 607 */ 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', 0,
  /* 623 */ 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', 0,
  /* 639 */ 'b', '1', '3', 0,
  /* 643 */ 'd', '1', '3', 0,
  /* 647 */ 'h', '1', '3', 0,
  /* 651 */ 'q', '1', '3', 0,
  /* 655 */ 's', '1', '3', 0,
  /* 659 */ 'w', '1', '3', 0,
  /* 663 */ 'x', '1', '3', 0,
  /* 667 */ 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', 0,
  /* 683 */ 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', 0,
  /* 699 */ 'b', '2', '3', 0,
  /* 703 */ 'd', '2', '3', 0,
  /* 707 */ 'h', '2', '3', 0,
  /* 711 */ 'q', '2', '3', 0,
  /* 715 */ 's', '2', '3', 0,
  /* 719 */ 'w', '2', '3', 0,
  /* 723 */ 'x', '2', '3', 0,
  /* 727 */ 'D', '0', '_', 'D', '1', '_', 'D', '2', '_', 'D', '3', 0,
  /* 739 */ 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', 0,
  /* 751 */ 'b', '3', 0,
  /* 754 */ 'd', '3', 0,
  /* 757 */ 'h', '3', 0,
  /* 760 */ 'q', '3', 0,
  /* 763 */ 's', '3', 0,
  /* 766 */ 'w', '3', 0,
  /* 769 */ 'x', '3', 0,
  /* 772 */ 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', 0,
  /* 788 */ 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', 0,
  /* 804 */ 'b', '1', '4', 0,
  /* 808 */ 'd', '1', '4', 0,
  /* 812 */ 'h', '1', '4', 0,
  /* 816 */ 'q', '1', '4', 0,
  /* 820 */ 's', '1', '4', 0,
  /* 824 */ 'w', '1', '4', 0,
  /* 828 */ 'x', '1', '4', 0,
  /* 832 */ 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', 0,
  /* 848 */ 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', 0,
  /* 864 */ 'b', '2', '4', 0,
  /* 868 */ 'd', '2', '4', 0,
  /* 872 */ 'h', '2', '4', 0,
  /* 876 */ 'q', '2', '4', 0,
  /* 880 */ 's', '2', '4', 0,
  /* 884 */ 'w', '2', '4', 0,
  /* 888 */ 'x', '2', '4', 0,
  /* 892 */ 'D', '1', '_', 'D', '2', '_', 'D', '3', '_', 'D', '4', 0,
  /* 904 */ 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', 0,
  /* 916 */ 'b', '4', 0,
  /* 919 */ 'd', '4', 0,
  /* 922 */ 'h', '4', 0,
  /* 925 */ 'q', '4', 0,
  /* 928 */ 's', '4', 0,
  /* 931 */ 'w', '4', 0,
  /* 934 */ 'x', '4', 0,
  /* 937 */ 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', 0,
  /* 953 */ 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', 0,
  /* 969 */ 'b', '1', '5', 0,
  /* 973 */ 'd', '1', '5', 0,
  /* 977 */ 'h', '1', '5', 0,
  /* 981 */ 'q', '1', '5', 0,
  /* 985 */ 's', '1', '5', 0,
  /* 989 */ 'w', '1', '5', 0,
  /* 993 */ 'x', '1', '5', 0,
  /* 997 */ 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', 0,
  /* 1013 */ 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', 0,
  /* 1029 */ 'b', '2', '5', 0,
  /* 1033 */ 'd', '2', '5', 0,
  /* 1037 */ 'h', '2', '5', 0,
  /* 1041 */ 'q', '2', '5', 0,
  /* 1045 */ 's', '2', '5', 0,
  /* 1049 */ 'w', '2', '5', 0,
  /* 1053 */ 'x', '2', '5', 0,
  /* 1057 */ 'D', '2', '_', 'D', '3', '_', 'D', '4', '_', 'D', '5', 0,
  /* 1069 */ 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', 0,
  /* 1081 */ 'b', '5', 0,
  /* 1084 */ 'd', '5', 0,
  /* 1087 */ 'h', '5', 0,
  /* 1090 */ 'q', '5', 0,
  /* 1093 */ 's', '5', 0,
  /* 1096 */ 'w', '5', 0,
  /* 1099 */ 'x', '5', 0,
  /* 1102 */ 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', 0,
  /* 1118 */ 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', 0,
  /* 1134 */ 'b', '1', '6', 0,
  /* 1138 */ 'd', '1', '6', 0,
  /* 1142 */ 'h', '1', '6', 0,
  /* 1146 */ 'q', '1', '6', 0,
  /* 1150 */ 's', '1', '6', 0,
  /* 1154 */ 'w', '1', '6', 0,
  /* 1158 */ 'x', '1', '6', 0,
  /* 1162 */ 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', 0,
  /* 1178 */ 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', 0,
  /* 1194 */ 'b', '2', '6', 0,
  /* 1198 */ 'd', '2', '6', 0,
  /* 1202 */ 'h', '2', '6', 0,
  /* 1206 */ 'q', '2', '6', 0,
  /* 1210 */ 's', '2', '6', 0,
  /* 1214 */ 'w', '2', '6', 0,
  /* 1218 */ 'x', '2', '6', 0,
  /* 1222 */ 'D', '3', '_', 'D', '4', '_', 'D', '5', '_', 'D', '6', 0,
  /* 1234 */ 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', 0,
  /* 1246 */ 'b', '6', 0,
  /* 1249 */ 'd', '6', 0,
  /* 1252 */ 'h', '6', 0,
  /* 1255 */ 'q', '6', 0,
  /* 1258 */ 's', '6', 0,
  /* 1261 */ 'w', '6', 0,
  /* 1264 */ 'x', '6', 0,
  /* 1267 */ 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', 0,
  /* 1283 */ 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', 0,
  /* 1299 */ 'b', '1', '7', 0,
  /* 1303 */ 'd', '1', '7', 0,
  /* 1307 */ 'h', '1', '7', 0,
  /* 1311 */ 'q', '1', '7', 0,
  /* 1315 */ 's', '1', '7', 0,
  /* 1319 */ 'w', '1', '7', 0,
  /* 1323 */ 'x', '1', '7', 0,
  /* 1327 */ 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', 0,
  /* 1343 */ 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', 0,
  /* 1359 */ 'b', '2', '7', 0,
  /* 1363 */ 'd', '2', '7', 0,
  /* 1367 */ 'h', '2', '7', 0,
  /* 1371 */ 'q', '2', '7', 0,
  /* 1375 */ 's', '2', '7', 0,
  /* 1379 */ 'w', '2', '7', 0,
  /* 1383 */ 'x', '2', '7', 0,
  /* 1387 */ 'D', '4', '_', 'D', '5', '_', 'D', '6', '_', 'D', '7', 0,
  /* 1399 */ 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', 0,
  /* 1411 */ 'b', '7', 0,
  /* 1414 */ 'd', '7', 0,
  /* 1417 */ 'h', '7', 0,
  /* 1420 */ 'q', '7', 0,
  /* 1423 */ 's', '7', 0,
  /* 1426 */ 'w', '7', 0,
  /* 1429 */ 'x', '7', 0,
  /* 1432 */ 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', 0,
  /* 1448 */ 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', 0,
  /* 1464 */ 'b', '1', '8', 0,
  /* 1468 */ 'd', '1', '8', 0,
  /* 1472 */ 'h', '1', '8', 0,
  /* 1476 */ 'q', '1', '8', 0,
  /* 1480 */ 's', '1', '8', 0,
  /* 1484 */ 'w', '1', '8', 0,
  /* 1488 */ 'x', '1', '8', 0,
  /* 1492 */ 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', 0,
  /* 1508 */ 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', 0,
  /* 1524 */ 'b', '2', '8', 0,
  /* 1528 */ 'd', '2', '8', 0,
  /* 1532 */ 'h', '2', '8', 0,
  /* 1536 */ 'q', '2', '8', 0,
  /* 1540 */ 's', '2', '8', 0,
  /* 1544 */ 'w', '2', '8', 0,
  /* 1548 */ 'x', '2', '8', 0,
  /* 1552 */ 'D', '5', '_', 'D', '6', '_', 'D', '7', '_', 'D', '8', 0,
  /* 1564 */ 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', 0,
  /* 1576 */ 'b', '8', 0,
  /* 1579 */ 'd', '8', 0,
  /* 1582 */ 'h', '8', 0,
  /* 1585 */ 'q', '8', 0,
  /* 1588 */ 's', '8', 0,
  /* 1591 */ 'w', '8', 0,
  /* 1594 */ 'x', '8', 0,
  /* 1597 */ 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', 0,
  /* 1613 */ 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', 0,
  /* 1629 */ 'b', '1', '9', 0,
  /* 1633 */ 'd', '1', '9', 0,
  /* 1637 */ 'h', '1', '9', 0,
  /* 1641 */ 'q', '1', '9', 0,
  /* 1645 */ 's', '1', '9', 0,
  /* 1649 */ 'w', '1', '9', 0,
  /* 1653 */ 'x', '1', '9', 0,
  /* 1657 */ 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', 0,
  /* 1673 */ 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', 0,
  /* 1689 */ 'b', '2', '9', 0,
  /* 1693 */ 'd', '2', '9', 0,
  /* 1697 */ 'h', '2', '9', 0,
  /* 1701 */ 'q', '2', '9', 0,
  /* 1705 */ 's', '2', '9', 0,
  /* 1709 */ 'w', '2', '9', 0,
  /* 1713 */ 'x', '2', '9', 0,
  /* 1717 */ 'D', '6', '_', 'D', '7', '_', 'D', '8', '_', 'D', '9', 0,
  /* 1729 */ 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', 0,
  /* 1741 */ 'b', '9', 0,
  /* 1744 */ 'd', '9', 0,
  /* 1747 */ 'h', '9', 0,
  /* 1750 */ 'q', '9', 0,
  /* 1753 */ 's', '9', 0,
  /* 1756 */ 'w', '9', 0,
  /* 1759 */ 'x', '9', 0,
  /* 1762 */ 'w', 's', 'p', 0,
  /* 1766 */ 'w', 'z', 'r', 0,
  /* 1770 */ 'x', 'z', 'r', 0,
  /* 1774 */ 'n', 'z', 'c', 'v', 0,
  };

  static const uint16_t RegAsmOffsetNoRegAltName[] = {
    1713, 170, 1774, 1763, 1762, 1766, 1770, 204, 421, 586, 751, 916, 1081, 1246, 
    1411, 1576, 1741, 26, 253, 472, 639, 804, 969, 1134, 1299, 1464, 1629, 86, 
    313, 532, 699, 864, 1029, 1194, 1359, 1524, 1689, 146, 373, 207, 424, 589, 
    754, 919, 1084, 1249, 1414, 1579, 1744, 30, 257, 476, 643, 808, 973, 1138, 
    1303, 1468, 1633, 90, 317, 536, 703, 868, 1033, 1198, 1363, 1528, 1693, 150, 
    377, 210, 427, 592, 757, 922, 1087, 1252, 1417, 1582, 1747, 34, 261, 480, 
    647, 812, 977, 1142, 1307, 1472, 1637, 94, 321, 540, 707, 872, 1037, 1202, 
    1367, 1532, 1697, 154, 381, 213, 430, 595, 760, 925, 1090, 1255, 1420, 1585, 
    1750, 38, 265, 484, 651, 816, 981, 1146, 1311, 1476, 1641, 98, 325, 544, 
    711, 876, 1041, 1206, 1371, 1536, 1701, 158, 385, 216, 433, 598, 763, 928, 
    1093, 1258, 1423, 1588, 1753, 42, 269, 488, 655, 820, 985, 1150, 1315, 1480, 
    1645, 102, 329, 548, 715, 880, 1045, 1210, 1375, 1540, 1705, 162, 389, 219, 
    436, 601, 766, 931, 1096, 1261, 1426, 1591, 1756, 46, 273, 492, 659, 824, 
    989, 1154, 1319, 1484, 1649, 106, 333, 552, 719, 884, 1049, 1214, 1379, 1544, 
    1709, 166, 222, 439, 604, 769, 934, 1099, 1264, 1429, 1594, 1759, 50, 277, 
    496, 663, 828, 993, 1158, 1323, 1488, 1653, 110, 337, 556, 723, 888, 1053, 
    1218, 1383, 1548, 401, 567, 733, 898, 1063, 1228, 1393, 1558, 1723, 6, 231, 
    449, 615, 780, 945, 1110, 1275, 1440, 1605, 62, 289, 508, 675, 840, 1005, 
    1170, 1335, 1500, 1665, 122, 349, 182, 727, 892, 1057, 1222, 1387, 1552, 1717, 
    0, 225, 442, 607, 772, 937, 1102, 1267, 1432, 1597, 54, 281, 500, 667, 
    832, 997, 1162, 1327, 1492, 1657, 114, 341, 174, 393, 560, 564, 730, 895, 
    1060, 1225, 1390, 1555, 1720, 3, 228, 445, 611, 776, 941, 1106, 1271, 1436, 
    1601, 58, 285, 504, 671, 836, 1001, 1166, 1331, 1496, 1661, 118, 345, 178, 
    397, 415, 580, 745, 910, 1075, 1240, 1405, 1570, 1735, 19, 245, 464, 631, 
    796, 961, 1126, 1291, 1456, 1621, 78, 305, 524, 691, 856, 1021, 1186, 1351, 
    1516, 1681, 138, 365, 197, 739, 904, 1069, 1234, 1399, 1564, 1729, 13, 239, 
    457, 623, 788, 953, 1118, 1283, 1448, 1613, 70, 297, 516, 683, 848, 1013, 
    1178, 1343, 1508, 1673, 130, 357, 189, 407, 573, 577, 742, 907, 1072, 1237, 
    1402, 1567, 1732, 16, 242, 460, 627, 792, 957, 1122, 1287, 1452, 1617, 74, 
    301, 520, 687, 852, 1017, 1182, 1347, 1512, 1677, 134, 361, 193, 411, 
  };

  static const char AsmStrsvreg[] = {
  /* 0 */ 'v', '1', '0', 0,
  /* 4 */ 'v', '2', '0', 0,
  /* 8 */ 'v', '3', '0', 0,
  /* 12 */ 'v', '0', 0,
  /* 15 */ 'v', '1', '1', 0,
  /* 19 */ 'v', '2', '1', 0,
  /* 23 */ 'v', '3', '1', 0,
  /* 27 */ 'v', '1', 0,
  /* 30 */ 'v', '1', '2', 0,
  /* 34 */ 'v', '2', '2', 0,
  /* 38 */ 'v', '2', 0,
  /* 41 */ 'v', '1', '3', 0,
  /* 45 */ 'v', '2', '3', 0,
  /* 49 */ 'v', '3', 0,
  /* 52 */ 'v', '1', '4', 0,
  /* 56 */ 'v', '2', '4', 0,
  /* 60 */ 'v', '4', 0,
  /* 63 */ 'v', '1', '5', 0,
  /* 67 */ 'v', '2', '5', 0,
  /* 71 */ 'v', '5', 0,
  /* 74 */ 'v', '1', '6', 0,
  /* 78 */ 'v', '2', '6', 0,
  /* 82 */ 'v', '6', 0,
  /* 85 */ 'v', '1', '7', 0,
  /* 89 */ 'v', '2', '7', 0,
  /* 93 */ 'v', '7', 0,
  /* 96 */ 'v', '1', '8', 0,
  /* 100 */ 'v', '2', '8', 0,
  /* 104 */ 'v', '8', 0,
  /* 107 */ 'v', '1', '9', 0,
  /* 111 */ 'v', '2', '9', 0,
  /* 115 */ 'v', '9', 0,
  };

  static const uint16_t RegAsmOffsetvreg[] = {
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 12, 27, 38, 
    49, 60, 71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 
    85, 96, 107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 
    23, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 12, 27, 38, 49, 60, 71, 82, 93, 104, 
    115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 
    45, 56, 67, 78, 89, 100, 111, 8, 23, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 12, 27, 38, 49, 60, 71, 82, 93, 104, 115, 0, 
    15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 45, 56, 
    67, 78, 89, 100, 111, 8, 23, 12, 27, 38, 49, 60, 71, 82, 
    93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 
    19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 23, 12, 27, 38, 
    49, 60, 71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 
    85, 96, 107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 
    23, 12, 27, 38, 49, 60, 71, 82, 93, 104, 115, 0, 15, 30, 
    41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 45, 56, 67, 78, 
    89, 100, 111, 8, 23, 12, 27, 38, 49, 60, 71, 82, 93, 104, 
    115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 
    45, 56, 67, 78, 89, 100, 111, 8, 23, 12, 27, 38, 49, 60, 
    71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 
    107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 23, 
  };

  const uint16_t *RegAsmOffset;
  const char *AsmStrs;

  switch(AltIdx) {
  default: // llvm_unreachable("Invalid register alt name index!");
  case AArch64_NoRegAltName:
    AsmStrs = AsmStrsNoRegAltName;
    RegAsmOffset = RegAsmOffsetNoRegAltName;
    break;
  case AArch64_vreg:
    AsmStrs = AsmStrsvreg;
    RegAsmOffset = RegAsmOffsetvreg;
    break;
  }
  //int i;
  //for (i = 0; i < sizeof(RegAsmOffsetNoRegAltName)/2; i++)
  //     printf("%s = %u\n", AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[i], i + 1);
  //printf("*************************\n");
  //for (i = 0; i < sizeof(RegAsmOffsetvreg)/2; i++)
  //     printf("%s = %u\n", AsmStrsvreg+RegAsmOffsetvreg[i], i + 1);
  //printf("-------------------------\n");
  return AsmStrs+RegAsmOffset[RegNo-1];
#else
  return NULL;
#endif
}

#ifdef PRINT_ALIAS_INSTR
#undef PRINT_ALIAS_INSTR

static void printCustomAliasOperand(MCInst *MI, unsigned OpIdx,
  unsigned PrintMethodIdx, SStream *OS, MCRegisterInfo *MRI)
{
  // printf(">>>> Method: %u, opIdx: %x\n", PrintMethodIdx, OpIdx);
  switch (PrintMethodIdx) {
  default:
    // llvm_unreachable("Unknown PrintMethod kind");
    break;
  case 0:
    printAddSubImm(MI, OpIdx, OS);
    break;
  case 1:
    printShifter(MI, OpIdx, OS);
    break;
  case 2:
    printArithExtend(MI, OpIdx, OS);
    break;
  case 3:
    printLogicalImm32(MI, OpIdx, OS);
    break;
  case 4:
    printLogicalImm64(MI, OpIdx, OS);
    break;
  case 5:
    printVRegOperand(MI, OpIdx, OS);
    break;
  case 6:
    printHexImm(MI, OpIdx, OS);
    break;
  case 7:
    printInverseCondCode(MI, OpIdx, OS);
    break;
  case 8:
    printVectorIndex(MI, OpIdx, OS);
    break;
  case 9:
    printTypedVectorList(MI, OpIdx, OS, 16, 'b', MRI);
    break;
  case 10:
    printTypedVectorList(MI, OpIdx, OS, 1, 'd', MRI);
    break;
  case 11:
    printTypedVectorList(MI, OpIdx, OS, 2, 'd', MRI);
    break;
  case 12:
    printTypedVectorList(MI, OpIdx, OS, 2, 's', MRI);
    break;
  case 13:
    printTypedVectorList(MI, OpIdx, OS, 4, 'h', MRI);
    break;
  case 14:
    printTypedVectorList(MI, OpIdx, OS, 4, 's', MRI);
    break;
  case 15:
    printTypedVectorList(MI, OpIdx, OS, 8, 'b', MRI);
    break;
  case 16:
    printTypedVectorList(MI, OpIdx, OS, 8, 'h', MRI);
    break;
  case 17:
    printTypedVectorList(MI, OpIdx, OS, 0, 'h', MRI);
    break;
  case 18:
    printTypedVectorList(MI, OpIdx, OS, 0, 's', MRI);
    break;
  case 19:
    printTypedVectorList(MI, OpIdx, OS, 0, 'd', MRI);
    break;
  case 20:
    printTypedVectorList(MI, OpIdx, OS, 0, 'b', MRI);
    break;
  case 21:
    printPrefetchOp(MI, OpIdx, OS);
    break;
  case 22:
    printSysCROperand(MI, OpIdx, OS);
    break;
  }
}

static bool AArch64InstPrinterValidateMCOperand(
       MCOperand *MCOp, unsigned PredicateIndex)
{
  switch (PredicateIndex) {
  default:
    // llvm_unreachable("Unknown MCOperandPredicate kind");
  case 1: {
    return (MCOperand_isImm(MCOp) &&
           MCOperand_getImm(MCOp) != ARM64_CC_AL &&
           MCOperand_getImm(MCOp) != ARM64_CC_NV);
    }
  }
}

static char *printAliasInstr(MCInst *MI, SStream *OS, void *info)
{
  #define GETREGCLASS_CONTAIN(_class, _reg) MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, _class), MCOperand_getReg(MCInst_getOperand(MI, _reg)))
  const char *AsmString;
  char *tmp, *AsmMnem, *AsmOps, *c;
  int OpIdx, PrintMethodIdx;
  MCRegisterInfo *MRI = (MCRegisterInfo *)info;
  switch (MCInst_getOpcode(MI)) {
  default: return NULL;
  case AArch64_ADDSWri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1)) {
      // (ADDSWri WZR, GPR32sp:$src, addsub_shifted_imm32:$imm)
      AsmString = "cmn $\x02, $\xFF\x03\x01";
      break;
    }
    return NULL;
  case AArch64_ADDSWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "cmn $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (ADDSWrs WZR, GPR32:$src1, GPR32:$src2, arith_shift32:$sh)
      AsmString = "cmn $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "adds $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDSWrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (ADDSWrx WZR, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "cmn $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (ADDSWrx WZR, GPR32sp:$src1, GPR32:$src2, arith_extend:$sh)
      AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (ADDSWrx GPR32:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "adds $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDSXri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1)) {
      // (ADDSXri XZR, GPR64sp:$src, addsub_shifted_imm64:$imm)
      AsmString = "cmn $\x02, $\xFF\x03\x01";
      break;
    }
    return NULL;
  case AArch64_ADDSXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "cmn $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (ADDSXrs XZR, GPR64:$src1, GPR64:$src2, arith_shift64:$sh)
      AsmString = "cmn $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "adds $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDSXrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (ADDSXrx XZR, GPR64sp:$src1, GPR32:$src2, arith_extend:$sh)
      AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    return NULL;
  case AArch64_ADDSXrx64:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (ADDSXrx64 XZR, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "cmn $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (ADDSXrx64 XZR, GPR64sp:$src1, GPR64:$src2, arith_extendlsl64:$sh)
      AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (ADDSXrx64 GPR64:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "adds $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDWri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDWri GPR32sponly:$dst, GPR32sp:$src, 0, 0)
      AsmString = "mov $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDWri GPR32sp:$dst, GPR32sponly:$src, 0, 0)
      AsmString = "mov $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_ADDWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDWrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (ADDWrx GPR32sponly:$dst, GPR32sp:$src1, GPR32:$src2, 16)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (ADDWrx GPR32sp:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDXri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDXri GPR64sponly:$dst, GPR64sp:$src, 0, 0)
      AsmString = "mov $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDXri GPR64sp:$dst, GPR64sponly:$src, 0, 0)
      AsmString = "mov $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_ADDXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ADDXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ADDXrx64:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (ADDXrx64 GPR64sponly:$dst, GPR64sp:$src1, GPR64:$src2, 24)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (ADDXrx64 GPR64sp:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "add $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ANDSWri:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1)) {
      // (ANDSWri WZR, GPR32:$src1, logical_imm32:$src2)
      AsmString = "tst $\x02, $\xFF\x03\x04";
      break;
    }
    return NULL;
  case AArch64_ANDSWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "tst $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, logical_shift32:$sh)
      AsmString = "tst $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "ands $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ANDSXri:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1)) {
      // (ANDSXri XZR, GPR64:$src1, logical_imm64:$src2)
      AsmString = "tst $\x02, $\xFF\x03\x05";
      break;
    }
    return NULL;
  case AArch64_ANDSXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "tst $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, logical_shift64:$sh)
      AsmString = "tst $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "ands $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ANDWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "and $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ANDXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ANDXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "and $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_BICSWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (BICSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "bics $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_BICSXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (BICSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "bics $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_BICWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (BICWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "bic $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_BICXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (BICXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "bic $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_BICv2i32:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (BICv2i32 V64:$Vd, imm0_255:$imm, 0)
      AsmString = "bic $\xFF\x01\x06.2s, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_BICv4i16:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (BICv4i16 V64:$Vd, imm0_255:$imm, 0)
      AsmString = "bic $\xFF\x01\x06.4h, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_BICv4i32:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (BICv4i32 V128:$Vd, imm0_255:$imm, 0)
      AsmString = "bic $\xFF\x01\x06.4s, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_BICv8i16:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (BICv8i16 V128:$Vd, imm0_255:$imm, 0)
      AsmString = "bic $\xFF\x01\x06.8h, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_CLREX:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 15) {
      // (CLREX 15)
      AsmString = "clrex";
      break;
    }
    return NULL;
  case AArch64_CSINCWr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_WZR &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINCWr GPR32:$dst, WZR, WZR, inv_ccode:$cc)
      AsmString = "cset $\x01, $\xFF\x04\x08";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINCWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
      AsmString = "cinc $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_CSINCXr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINCXr GPR64:$dst, XZR, XZR, inv_ccode:$cc)
      AsmString = "cset $\x01, $\xFF\x04\x08";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINCXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
      AsmString = "cinc $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_CSINVWr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_WZR &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINVWr GPR32:$dst, WZR, WZR, inv_ccode:$cc)
      AsmString = "csetm $\x01, $\xFF\x04\x08";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINVWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
      AsmString = "cinv $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_CSINVXr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINVXr GPR64:$dst, XZR, XZR, inv_ccode:$cc)
      AsmString = "csetm $\x01, $\xFF\x04\x08";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSINVXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
      AsmString = "cinv $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_CSNEGWr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSNEGWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
      AsmString = "cneg $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_CSNEGXr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
        AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
      // (CSNEGXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
      AsmString = "cneg $\x01, $\x02, $\xFF\x04\x08";
      break;
    }
    return NULL;
  case AArch64_DCPS1:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
      // (DCPS1 0)
      AsmString = "dcps1";
      break;
    }
    return NULL;
  case AArch64_DCPS2:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
      // (DCPS2 0)
      AsmString = "dcps2";
      break;
    }
    return NULL;
  case AArch64_DCPS3:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
      // (DCPS3 0)
      AsmString = "dcps3";
      break;
    }
    return NULL;
  case AArch64_EONWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (EONWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "eon $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_EONXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (EONXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "eon $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_EORWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (EORWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "eor $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_EORXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (EORXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "eor $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_EXTRWrri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
      // (EXTRWrri GPR32:$dst, GPR32:$src, GPR32:$src, imm0_31:$shift)
      AsmString = "ror $\x01, $\x02, $\x04";
      break;
    }
    return NULL;
  case AArch64_EXTRXrri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
      // (EXTRXrri GPR64:$dst, GPR64:$src, GPR64:$src, imm0_63:$shift)
      AsmString = "ror $\x01, $\x02, $\x04";
      break;
    }
    return NULL;
  case AArch64_HINT:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
      // (HINT { 0, 0, 0 })
      AsmString = "nop";
      break;
    }
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 1) {
      // (HINT { 0, 0, 1 })
      AsmString = "yield";
      break;
    }
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 2) {
      // (HINT { 0, 1, 0 })
      AsmString = "wfe";
      break;
    }
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 3) {
      // (HINT { 0, 1, 1 })
      AsmString = "wfi";
      break;
    }
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 4) {
      // (HINT { 1, 0, 0 })
      AsmString = "sev";
      break;
    }
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 5) {
      // (HINT { 1, 0, 1 })
      AsmString = "sevl";
      break;
    }
    return NULL;
  case AArch64_INSvi16gpr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (INSvi16gpr V128:$dst, VectorIndexH:$idx, GPR32:$src)
      AsmString = "mov	$\xFF\x01\x06.h$\xFF\x02\x09, $\x03";
      break;
    }
    return NULL;
  case AArch64_INSvi16lane:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
      // (INSvi16lane V128:$dst, VectorIndexH:$idx, V128:$src, VectorIndexH:$idx2)
      AsmString = "mov	$\xFF\x01\x06.h$\xFF\x02\x09, $\xFF\x03\x06.h$\xFF\x04\x09";
      break;
    }
    return NULL;
  case AArch64_INSvi32gpr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (INSvi32gpr V128:$dst, VectorIndexS:$idx, GPR32:$src)
      AsmString = "mov	$\xFF\x01\x06.s$\xFF\x02\x09, $\x03";
      break;
    }
    return NULL;
  case AArch64_INSvi32lane:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
      // (INSvi32lane V128:$dst, VectorIndexS:$idx, V128:$src, VectorIndexS:$idx2)
      AsmString = "mov	$\xFF\x01\x06.s$\xFF\x02\x09, $\xFF\x03\x06.s$\xFF\x04\x09";
      break;
    }
    return NULL;
  case AArch64_INSvi64gpr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (INSvi64gpr V128:$dst, VectorIndexD:$idx, GPR64:$src)
      AsmString = "mov	$\xFF\x01\x06.d$\xFF\x02\x09, $\x03";
      break;
    }
    return NULL;
  case AArch64_INSvi64lane:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
      // (INSvi64lane V128:$dst, VectorIndexD:$idx, V128:$src, VectorIndexD:$idx2)
      AsmString = "mov	$\xFF\x01\x06.d$\xFF\x02\x09, $\xFF\x03\x06.d$\xFF\x04\x09";
      break;
    }
    return NULL;
  case AArch64_INSvi8gpr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (INSvi8gpr V128:$dst, VectorIndexB:$idx, GPR32:$src)
      AsmString = "mov	$\xFF\x01\x06.b$\xFF\x02\x09, $\x03";
      break;
    }
    return NULL;
  case AArch64_INSvi8lane:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
      // (INSvi8lane V128:$dst, VectorIndexB:$idx, V128:$src, VectorIndexB:$idx2)
      AsmString = "mov	$\xFF\x01\x06.b$\xFF\x02\x09, $\xFF\x03\x06.b$\xFF\x04\x09";
      break;
    }
    return NULL;
  case AArch64_ISB:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 15) {
      // (ISB 15)
      AsmString = "isb";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0A, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0B, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0C, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0D, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0E, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0F, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x10, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Fourv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x11, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD1Onev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0A, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Onev1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0B, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Onev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0C, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Onev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0D, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Onev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0E, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Onev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0F, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Onev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x10, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Onev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Onev8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x11, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Rv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0A, [$\x01], #1";
      break;
    }
    return NULL;
  case AArch64_LD1Rv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0B, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Rv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0C, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1Rv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0D, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD1Rv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0E, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD1Rv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x0F, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD1Rv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x10, [$\x01], #1";
      break;
    }
    return NULL;
  case AArch64_LD1Rv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Rv8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
      AsmString = "ld1r	$\xFF\x02\x11, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD1Threev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0A, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD1Threev1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0B, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD1Threev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0C, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD1Threev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0D, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD1Threev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0E, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD1Threev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0F, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD1Threev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x10, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD1Threev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x11, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD1Twov16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0A, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Twov1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0B, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Twov2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0C, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Twov2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0D, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Twov4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0E, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Twov4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x0F, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1Twov8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x10, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD1Twov8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD1Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
      AsmString = "ld1	$\xFF\x02\x11, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD1i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD1i16_POST GPR64sp:$Rn, VecListOneh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "ld1	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD1i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD1i32_POST GPR64sp:$Rn, VecListOnes:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "ld1	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD1i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD1i64_POST GPR64sp:$Rn, VecListOned:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "ld1	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD1i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD1i8_POST GPR64sp:$Rn, VecListOneb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "ld1	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #1";
      break;
    }
    return NULL;
  case AArch64_LD2Rv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0A, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD2Rv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0B, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2Rv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0C, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2Rv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0D, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD2Rv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0E, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD2Rv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x0F, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD2Rv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x10, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD2Rv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Rv8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
      AsmString = "ld2r	$\xFF\x02\x11, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD2Twov16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x0A, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD2Twov2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x0C, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD2Twov2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x0D, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2Twov4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x0E, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2Twov4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x0F, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD2Twov8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x10, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2Twov8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD2Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
      AsmString = "ld2	$\xFF\x02\x11, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD2i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD2i16_POST GPR64sp:$Rn, VecListTwoh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "ld2	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD2i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD2i32_POST GPR64sp:$Rn, VecListTwos:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "ld2	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD2i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD2i64_POST GPR64sp:$Rn, VecListTwod:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "ld2	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD2i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD2i8_POST GPR64sp:$Rn, VecListTwob:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "ld2	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_LD3Rv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0A, [$\x01], #3";
      break;
    }
    return NULL;
  case AArch64_LD3Rv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0B, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3Rv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0C, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3Rv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0D, [$\x01], #12";
      break;
    }
    return NULL;
  case AArch64_LD3Rv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0E, [$\x01], #6";
      break;
    }
    return NULL;
  case AArch64_LD3Rv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x0F, [$\x01], #12";
      break;
    }
    return NULL;
  case AArch64_LD3Rv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x10, [$\x01], #3";
      break;
    }
    return NULL;
  case AArch64_LD3Rv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Rv8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
      AsmString = "ld3r	$\xFF\x02\x11, [$\x01], #6";
      break;
    }
    return NULL;
  case AArch64_LD3Threev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x0A, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD3Threev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x0C, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD3Threev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x0D, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3Threev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x0E, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3Threev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x0F, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD3Threev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x10, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3Threev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD3Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
      AsmString = "ld3	$\xFF\x02\x11, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_LD3i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD3i16_POST GPR64sp:$Rn, VecListThreeh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "ld3	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #6";
      break;
    }
    return NULL;
  case AArch64_LD3i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD3i32_POST GPR64sp:$Rn, VecListThrees:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "ld3	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #12";
      break;
    }
    return NULL;
  case AArch64_LD3i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD3i64_POST GPR64sp:$Rn, VecListThreed:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "ld3	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_LD3i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD3i8_POST GPR64sp:$Rn, VecListThreeb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "ld3	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #3";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x0A, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x0C, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x0D, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x0E, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x0F, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x10, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4Fourv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
      AsmString = "ld4	$\xFF\x02\x11, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_LD4Rv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0A, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD4Rv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0B, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4Rv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0C, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4Rv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0D, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD4Rv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0E, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD4Rv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x0F, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD4Rv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x10, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LD4Rv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (LD4Rv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
      AsmString = "ld4r	$\xFF\x02\x11, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD4i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD4i16_POST GPR64sp:$Rn, VecListFourh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "ld4	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_LD4i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD4i32_POST GPR64sp:$Rn, VecListFours:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "ld4	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_LD4i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD4i64_POST GPR64sp:$Rn, VecListFourd:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "ld4	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_LD4i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (LD4i8_POST GPR64sp:$Rn, VecListFourb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "ld4	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_LDNPDi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDNPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDNPQi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDNPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDNPSi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDNPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDNPWi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDNPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDNPXi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDNPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPDi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPQi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPSWi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPSWi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldpsw $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPSi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPWi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDPXi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (LDPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "ldp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRBBroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRBBroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrb $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRBBui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRBBui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRBroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRBroX FPR8:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRBui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRBui FPR8:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRDroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRDroX FPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRDui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRDui FPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRHHroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRHHroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrh $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRHHui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRHHui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRHroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRHroX FPR16:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRHui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRHui FPR16:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRQroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRQroX FPR128:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRQui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRQui FPR128:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSBWroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSBWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrsb $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSBWui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSBWui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrsb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSBXroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSBXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrsb $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSBXui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSBXui GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrsb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSHWroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSHWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrsh $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSHWui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSHWui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrsh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSHXroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSHXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrsh $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSHXui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSHXui GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrsh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSWroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSWroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldrsw $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSWui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSWui GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldrsw $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRSroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRSroX FPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRSui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRSui FPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRWroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRWui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRWui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDRXroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (LDRXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "ldr $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_LDRXui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDRXui GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRBi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRHi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRSBWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRSBWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrsb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRSBXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRSBXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrsb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRSHWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRSHWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrsh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRSHXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRSHXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrsh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRSWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRSWi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtrsw $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDTRXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDTRXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldtr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURBBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURBBi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldurb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURBi FPR8:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURDi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURDi FPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURHHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURHHi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldurh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURHi FPR16:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURQi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURQi FPR128:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSBWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSBWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldursb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSBXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSBXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldursb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSHWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSHWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldursh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSHXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSHXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldursh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSWi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldursw $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURSi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURSi FPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_LDURXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (LDURXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "ldur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_MADDWrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_WZR) {
      // (MADDWrrr GPR32:$dst, GPR32:$src1, GPR32:$src2, WZR)
      AsmString = "mul $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_MADDXrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (MADDXrrr GPR64:$dst, GPR64:$src1, GPR64:$src2, XZR)
      AsmString = "mul $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_MOVKWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 16) {
      // (MOVKWi GPR32:$Rd, movk_symbol_g1:$sym, 16)
      AsmString = "movk $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_MOVKXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 48) {
      // (MOVKXi GPR64:$Rd, movk_symbol_g3:$sym, 48)
      AsmString = "movk $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 32) {
      // (MOVKXi GPR64:$Rd, movk_symbol_g2:$sym, 32)
      AsmString = "movk $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 16) {
      // (MOVKXi GPR64:$Rd, movk_symbol_g1:$sym, 16)
      AsmString = "movk $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_MSUBWrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_WZR) {
      // (MSUBWrrr GPR32:$dst, GPR32:$src1, GPR32:$src2, WZR)
      AsmString = "mneg $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_MSUBXrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (MSUBXrrr GPR64:$dst, GPR64:$src1, GPR64:$src2, XZR)
      AsmString = "mneg $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_NOTv16i8:
    if (MCInst_getNumOperands(MI) == 2 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
      // (NOTv16i8 V128:$Vd, V128:$Vn)
      AsmString = "mvn $\xFF\x01\x06.16b, $\xFF\x02\x06.16b";
      break;
    }
    return NULL;
  case AArch64_NOTv8i8:
    if (MCInst_getNumOperands(MI) == 2 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1)) {
      // (NOTv8i8 V64:$Vd, V64:$Vn)
      AsmString = "mvn $\xFF\x01\x06.8b, $\xFF\x02\x06.8b";
      break;
    }
    return NULL;
  case AArch64_ORNWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORNWrs GPR32:$Wd, WZR, GPR32:$Wm, 0)
      AsmString = "mvn $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (ORNWrs GPR32:$Wd, WZR, GPR32:$Wm, logical_shift32:$sh)
      AsmString = "mvn $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORNWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "orn $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ORNXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORNXrs GPR64:$Xd, XZR, GPR64:$Xm, 0)
      AsmString = "mvn $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (ORNXrs GPR64:$Xd, XZR, GPR64:$Xm, logical_shift64:$sh)
      AsmString = "mvn $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORNXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "orn $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ORRWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORRWrs GPR32:$dst, WZR, GPR32:$src, 0)
      AsmString = "mov $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORRWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "orr $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ORRXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORRXrs GPR64:$dst, XZR, GPR64:$src, 0)
      AsmString = "mov $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (ORRXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "orr $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ORRv16i8:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
      // (ORRv16i8 V128:$dst, V128:$src, V128:$src)
      AsmString = "mov	$\xFF\x01\x06.16b, $\xFF\x02\x06.16b";
      break;
    }
    return NULL;
  case AArch64_ORRv2i32:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (ORRv2i32 V64:$Vd, imm0_255:$imm, 0)
      AsmString = "orr $\xFF\x01\x06.2s, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_ORRv4i16:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (ORRv4i16 V64:$Vd, imm0_255:$imm, 0)
      AsmString = "orr $\xFF\x01\x06.4h, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_ORRv4i32:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (ORRv4i32 V128:$Vd, imm0_255:$imm, 0)
      AsmString = "orr $\xFF\x01\x06.4s, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_ORRv8i16:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (ORRv8i16 V128:$Vd, imm0_255:$imm, 0)
      AsmString = "orr $\xFF\x01\x06.8h, $\xFF\x02\x07";
      break;
    }
    return NULL;
  case AArch64_ORRv8i8:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
      // (ORRv8i8 V64:$dst, V64:$src, V64:$src)
      AsmString = "mov	$\xFF\x01\x06.8b, $\xFF\x02\x06.8b";
      break;
    }
    return NULL;
  case AArch64_PRFMroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (PRFMroX prfop:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "prfm $\xFF\x01\x16, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_PRFMui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (PRFMui prfop:$Rt, GPR64sp:$Rn, 0)
      AsmString = "prfm $\xFF\x01\x16, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_PRFUMi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (PRFUMi prfop:$Rt, GPR64sp:$Rn, 0)
      AsmString = "prfum $\xFF\x01\x16, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_RET:
    if (MCInst_getNumOperands(MI) == 1 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_LR) {
      // (RET LR)
      AsmString = "ret";
      break;
    }
    return NULL;
  case AArch64_SBCSWr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SBCSWr GPR32:$dst, WZR, GPR32:$src)
      AsmString = "ngcs $\x01, $\x03";
      break;
    }
    return NULL;
  case AArch64_SBCSXr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SBCSXr GPR64:$dst, XZR, GPR64:$src)
      AsmString = "ngcs $\x01, $\x03";
      break;
    }
    return NULL;
  case AArch64_SBCWr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SBCWr GPR32:$dst, WZR, GPR32:$src)
      AsmString = "ngc $\x01, $\x03";
      break;
    }
    return NULL;
  case AArch64_SBCXr:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SBCXr GPR64:$dst, XZR, GPR64:$src)
      AsmString = "ngc $\x01, $\x03";
      break;
    }
    return NULL;
  case AArch64_SBFMWri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
      // (SBFMWri GPR32:$dst, GPR32:$src, imm0_31:$shift, 31)
      AsmString = "asr $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
      // (SBFMWri GPR32:$dst, GPR32:$src, 0, 7)
      AsmString = "sxtb $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
      // (SBFMWri GPR32:$dst, GPR32:$src, 0, 15)
      AsmString = "sxth $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_SBFMXri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 63) {
      // (SBFMXri GPR64:$dst, GPR64:$src, imm0_63:$shift, 63)
      AsmString = "asr $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
      // (SBFMXri GPR64:$dst, GPR64:$src, 0, 7)
      AsmString = "sxtb $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
      // (SBFMXri GPR64:$dst, GPR64:$src, 0, 15)
      AsmString = "sxth $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
      // (SBFMXri GPR64:$dst, GPR64:$src, 0, 31)
      AsmString = "sxtw $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_SMADDLrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (SMADDLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
      AsmString = "smull $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SMSUBLrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (SMSUBLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
      AsmString = "smnegl $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0A, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0B, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0C, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0D, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0E, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0F, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x10, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Fourv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x11, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST1Onev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0A, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Onev1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0B, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST1Onev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0C, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Onev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0D, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST1Onev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0E, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST1Onev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0F, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Onev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x10, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST1Onev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Onev8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x11, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Threev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0A, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST1Threev1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0B, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST1Threev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0C, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST1Threev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0D, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST1Threev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0E, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST1Threev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0F, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST1Threev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x10, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST1Threev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x11, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST1Twov16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0A, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Twov1d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0B, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Twov2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0C, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Twov2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0D, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Twov4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0E, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Twov4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x0F, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1Twov8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x10, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST1Twov8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST1Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
      AsmString = "st1	$\xFF\x02\x11, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST1i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST1i16_POST GPR64sp:$Rn, VecListOneh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "st1	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_ST1i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST1i32_POST GPR64sp:$Rn, VecListOnes:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "st1	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_ST1i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST1i64_POST GPR64sp:$Rn, VecListOned:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "st1	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST1i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST1i8_POST GPR64sp:$Rn, VecListOneb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "st1	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #1";
      break;
    }
    return NULL;
  case AArch64_ST2Twov16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x0A, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST2Twov2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x0C, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST2Twov2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x0D, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST2Twov4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x0E, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST2Twov4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x0F, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST2Twov8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x10, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST2Twov8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST2Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
      AsmString = "st2	$\xFF\x02\x11, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST2i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST2i16_POST GPR64sp:$Rn, VecListTwoh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "st2	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_ST2i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST2i32_POST GPR64sp:$Rn, VecListTwos:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "st2	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST2i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST2i64_POST GPR64sp:$Rn, VecListTwod:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "st2	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST2i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST2i8_POST GPR64sp:$Rn, VecListTwob:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "st2	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #2";
      break;
    }
    return NULL;
  case AArch64_ST3Threev16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x0A, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST3Threev2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x0C, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST3Threev2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x0D, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST3Threev4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x0E, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST3Threev4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x0F, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST3Threev8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x10, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST3Threev8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST3Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
      AsmString = "st3	$\xFF\x02\x11, [$\x01], #48";
      break;
    }
    return NULL;
  case AArch64_ST3i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST3i16_POST GPR64sp:$Rn, VecListThreeh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "st3	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #6";
      break;
    }
    return NULL;
  case AArch64_ST3i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST3i32_POST GPR64sp:$Rn, VecListThrees:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "st3	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #12";
      break;
    }
    return NULL;
  case AArch64_ST3i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST3i64_POST GPR64sp:$Rn, VecListThreed:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "st3	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #24";
      break;
    }
    return NULL;
  case AArch64_ST3i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST3i8_POST GPR64sp:$Rn, VecListThreeb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "st3	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #3";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv16b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x0A, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv2d_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x0C, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv2s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x0D, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv4h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x0E, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv4s_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x0F, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv8b_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x10, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST4Fourv8h_POST:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
      // (ST4Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
      AsmString = "st4	$\xFF\x02\x11, [$\x01], #64";
      break;
    }
    return NULL;
  case AArch64_ST4i16_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST4i16_POST GPR64sp:$Rn, VecListFourh:$Vt, VectorIndexH:$idx, XZR)
      AsmString = "st4	$\xFF\x02\x12$\xFF\x03\x09, [$\x01], #8";
      break;
    }
    return NULL;
  case AArch64_ST4i32_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST4i32_POST GPR64sp:$Rn, VecListFours:$Vt, VectorIndexS:$idx, XZR)
      AsmString = "st4	$\xFF\x02\x13$\xFF\x03\x09, [$\x01], #16";
      break;
    }
    return NULL;
  case AArch64_ST4i64_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST4i64_POST GPR64sp:$Rn, VecListFourd:$Vt, VectorIndexD:$idx, XZR)
      AsmString = "st4	$\xFF\x02\x14$\xFF\x03\x09, [$\x01], #32";
      break;
    }
    return NULL;
  case AArch64_ST4i8_POST:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (ST4i8_POST GPR64sp:$Rn, VecListFourb:$Vt, VectorIndexB:$idx, XZR)
      AsmString = "st4	$\xFF\x02\x15$\xFF\x03\x09, [$\x01], #4";
      break;
    }
    return NULL;
  case AArch64_STNPDi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STNPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STNPQi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STNPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STNPSi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STNPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STNPWi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STNPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STNPXi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STNPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stnp	$\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STPDi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STPQi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STPSi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STPWi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STPXi:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (STPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
      AsmString = "stp $\x01, $\x02, [$\x03]";
      break;
    }
    return NULL;
  case AArch64_STRBBroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRBBroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "strb $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRBBui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRBBui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "strb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRBroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRBroX FPR8:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRBui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRBui FPR8:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRDroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRDroX FPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRDui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRDui FPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRHHroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRHHroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "strh $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRHHui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRHHui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "strh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRHroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRHroX FPR16:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRHui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRHui FPR16:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRQroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRQroX FPR128:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRQui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRQui FPR128:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRSroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRSroX FPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRSui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRSui FPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRWroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRWui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRWui GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STRXroX:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
      // (STRXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
      AsmString = "str $\x01, [$\x02, $\x03]";
      break;
    }
    return NULL;
  case AArch64_STRXui:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STRXui GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "str $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STTRBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STTRBi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sttrb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STTRHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STTRHi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sttrh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STTRWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STTRWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sttr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STTRXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STTRXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sttr $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURBBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURBBi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sturb $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURBi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURBi FPR8:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURDi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURDi FPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURHHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURHHi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "sturh $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURHi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURHi FPR16:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURQi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURQi FPR128:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURSi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURSi FPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURWi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURWi GPR32:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_STURXi:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
      // (STURXi GPR64:$Rt, GPR64sp:$Rn, 0)
      AsmString = "stur $\x01, [$\x02]";
      break;
    }
    return NULL;
  case AArch64_SUBSWri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1)) {
      // (SUBSWri WZR, GPR32sp:$src, addsub_shifted_imm32:$imm)
      AsmString = "cmp $\x02, $\xFF\x03\x01";
      break;
    }
    return NULL;
  case AArch64_SUBSWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "cmp $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SUBSWrs WZR, GPR32:$src1, GPR32:$src2, arith_shift32:$sh)
      AsmString = "cmp $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSWrs GPR32:$dst, WZR, GPR32:$src, 0)
      AsmString = "negs $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SUBSWrs GPR32:$dst, WZR, GPR32:$src, arith_shift32:$shift)
      AsmString = "negs $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "subs $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBSWrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (SUBSWrx WZR, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "cmp $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SUBSWrx WZR, GPR32sp:$src1, GPR32:$src2, arith_extend:$sh)
      AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (SUBSWrx GPR32:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "subs $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBSXri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1)) {
      // (SUBSXri XZR, GPR64sp:$src, addsub_shifted_imm64:$imm)
      AsmString = "cmp $\x02, $\xFF\x03\x01";
      break;
    }
    return NULL;
  case AArch64_SUBSXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "cmp $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SUBSXrs XZR, GPR64:$src1, GPR64:$src2, arith_shift64:$sh)
      AsmString = "cmp $\x02, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSXrs GPR64:$dst, XZR, GPR64:$src, 0)
      AsmString = "negs $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SUBSXrs GPR64:$dst, XZR, GPR64:$src, arith_shift64:$shift)
      AsmString = "negs $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "subs $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBSXrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SUBSXrx XZR, GPR64sp:$src1, GPR32:$src2, arith_extend:$sh)
      AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    return NULL;
  case AArch64_SUBSXrx64:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (SUBSXrx64 XZR, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "cmp $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SUBSXrx64 XZR, GPR64sp:$src1, GPR64:$src2, arith_extendlsl64:$sh)
      AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (SUBSXrx64 GPR64:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "subs $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBWrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBWrs GPR32:$dst, WZR, GPR32:$src, 0)
      AsmString = "neg $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
      // (SUBWrs GPR32:$dst, WZR, GPR32:$src, arith_shift32:$shift)
      AsmString = "neg $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBWrx:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (SUBWrx GPR32sponly:$dst, GPR32sp:$src1, GPR32:$src2, 16)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
      // (SUBWrx GPR32sp:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBXrs:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBXrs GPR64:$dst, XZR, GPR64:$src, 0)
      AsmString = "neg $\x01, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
      // (SUBXrs GPR64:$dst, XZR, GPR64:$src, arith_shift64:$shift)
      AsmString = "neg $\x01, $\x03$\xFF\x04\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
      // (SUBXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SUBXrx64:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (SUBXrx64 GPR64sponly:$dst, GPR64sp:$src1, GPR64:$src2, 24)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
      // (SUBXrx64 GPR64sp:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
      AsmString = "sub $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_SYSxt:
    if (MCInst_getNumOperands(MI) == 5 &&
        MCOperand_getReg(MCInst_getOperand(MI, 4)) == AArch64_XZR) {
      // (SYSxt imm0_7:$op1, sys_cr_op:$Cn, sys_cr_op:$Cm, imm0_7:$op2, XZR)
      AsmString = "sys $\x01, $\xFF\x02\x17, $\xFF\x03\x17, $\x04";
      break;
    }
    return NULL;
  case AArch64_UBFMWri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
      // (UBFMWri GPR32:$dst, GPR32:$src, imm0_31:$shift, 31)
      AsmString = "lsr $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
      // (UBFMWri GPR32:$dst, GPR32:$src, 0, 7)
      AsmString = "uxtb $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
      // (UBFMWri GPR32:$dst, GPR32:$src, 0, 15)
      AsmString = "uxth $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_UBFMXri:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 63) {
      // (UBFMXri GPR64:$dst, GPR64:$src, imm0_63:$shift, 63)
      AsmString = "lsr $\x01, $\x02, $\x03";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
      // (UBFMXri GPR64:$dst, GPR64:$src, 0, 7)
      AsmString = "uxtb $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
      // (UBFMXri GPR64:$dst, GPR64:$src, 0, 15)
      AsmString = "uxth $\x01, $\x02";
      break;
    }
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
      // (UBFMXri GPR64:$dst, GPR64:$src, 0, 31)
      AsmString = "uxtw $\x01, $\x02";
      break;
    }
    return NULL;
  case AArch64_UMADDLrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (UMADDLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
      AsmString = "umull $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  case AArch64_UMOVvi32:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
      // (UMOVvi32 GPR32:$dst, V128:$src, VectorIndexS:$idx)
      AsmString = "mov	$\x01, $\xFF\x02\x06.s$\xFF\x03\x09";
      break;
    }
    return NULL;
  case AArch64_UMOVvi64:
    if (MCInst_getNumOperands(MI) == 3 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
      // (UMOVvi64 GPR64:$dst, V128:$src, VectorIndexD:$idx)
      AsmString = "mov	$\x01, $\xFF\x02\x06.d$\xFF\x03\x09";
      break;
    }
    return NULL;
  case AArch64_UMSUBLrrr:
    if (MCInst_getNumOperands(MI) == 4 &&
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
        GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
        MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
      // (UMSUBLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
      AsmString = "umnegl $\x01, $\x02, $\x03";
      break;
    }
    return NULL;
  }

  tmp = cs_strdup(AsmString);
  AsmMnem = tmp;
  for(AsmOps = tmp; *AsmOps; AsmOps++) {
    if (*AsmOps == ' ' || *AsmOps == '\t') {
      *AsmOps = '\0';
      AsmOps++;
      break;
    }
  }
  SStream_concat0(OS, AsmMnem);
  if (*AsmOps) {
    SStream_concat0(OS, "\t");
    for (c = AsmOps; *c; c++) {
      if (*c == '[') {
        SStream_concat0(OS, "[");
        set_mem_access(MI, true);
      }
      else if (*c == ']') {
        SStream_concat0(OS, "]");
        set_mem_access(MI, false);
      }
      else if (*c == '$') {
        c += 1;
        if (*c == (char)0xff) {
          c += 1;
          OpIdx = *c - 1;
          c += 1;
          PrintMethodIdx = *c - 1;
          printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS, MRI);
        } else
          printOperand(MI, *c - 1, OS);
      } else {
        SStream_concat(OS, "%c", *c);
      }
    }
  }
  return tmp;
}

#endif // PRINT_ALIAS_INSTR
