/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Machine Code Emitter                                                       *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

uint64_t ARMMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
    SmallVectorImpl<MCFixup> &Fixups,
    const MCSubtargetInfo &STI) const {
  static const uint64_t InstBits[] = {
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(0),
    UINT64_C(44040192),	// ADCri
    UINT64_C(10485760),	// ADCrr
    UINT64_C(10485760),	// ADCrsi
    UINT64_C(10485776),	// ADCrsr
    UINT64_C(41943040),	// ADDri
    UINT64_C(8388608),	// ADDrr
    UINT64_C(8388608),	// ADDrsi
    UINT64_C(8388624),	// ADDrsr
    UINT64_C(34537472),	// ADR
    UINT64_C(4088398656),	// AESD
    UINT64_C(4088398592),	// AESE
    UINT64_C(4088398784),	// AESIMC
    UINT64_C(4088398720),	// AESMC
    UINT64_C(33554432),	// ANDri
    UINT64_C(0),	// ANDrr
    UINT64_C(0),	// ANDrsi
    UINT64_C(16),	// ANDrsr
    UINT64_C(4261416192),	// BF16VDOTI_VDOTD
    UINT64_C(4261416256),	// BF16VDOTI_VDOTQ
    UINT64_C(4227861760),	// BF16VDOTS_VDOTD
    UINT64_C(4227861824),	// BF16VDOTS_VDOTQ
    UINT64_C(4088792640),	// BF16_VCVT
    UINT64_C(246614336),	// BF16_VCVTB
    UINT64_C(246614464),	// BF16_VCVTT
    UINT64_C(130023455),	// BFC
    UINT64_C(130023440),	// BFI
    UINT64_C(62914560),	// BICri
    UINT64_C(29360128),	// BICrr
    UINT64_C(29360128),	// BICrsi
    UINT64_C(29360144),	// BICrsr
    UINT64_C(3776970864),	// BKPT
    UINT64_C(3942645760),	// BL
    UINT64_C(3778019120),	// BLX
    UINT64_C(19922736),	// BLX_pred
    UINT64_C(4194304000),	// BLXi
    UINT64_C(184549376),	// BL_pred
    UINT64_C(3778019088),	// BX
    UINT64_C(19922720),	// BXJ
    UINT64_C(19922718),	// BX_RET
    UINT64_C(19922704),	// BX_pred
    UINT64_C(167772160),	// Bcc
    UINT64_C(3992977408),	// CDE_CX1
    UINT64_C(4261412864),	// CDE_CX1A
    UINT64_C(3992977472),	// CDE_CX1D
    UINT64_C(4261412928),	// CDE_CX1DA
    UINT64_C(3997171712),	// CDE_CX2
    UINT64_C(4265607168),	// CDE_CX2A
    UINT64_C(3997171776),	// CDE_CX2D
    UINT64_C(4265607232),	// CDE_CX2DA
    UINT64_C(4001366016),	// CDE_CX3
    UINT64_C(4269801472),	// CDE_CX3A
    UINT64_C(4001366080),	// CDE_CX3D
    UINT64_C(4269801536),	// CDE_CX3DA
    UINT64_C(4246732800),	// CDE_VCX1A_fpdp
    UINT64_C(4229955584),	// CDE_VCX1A_fpsp
    UINT64_C(4229955648),	// CDE_VCX1A_vec
    UINT64_C(3978297344),	// CDE_VCX1_fpdp
    UINT64_C(3961520128),	// CDE_VCX1_fpsp
    UINT64_C(3961520192),	// CDE_VCX1_vec
    UINT64_C(4247781376),	// CDE_VCX2A_fpdp
    UINT64_C(4231004160),	// CDE_VCX2A_fpsp
    UINT64_C(4231004224),	// CDE_VCX2A_vec
    UINT64_C(3979345920),	// CDE_VCX2_fpdp
    UINT64_C(3962568704),	// CDE_VCX2_fpsp
    UINT64_C(3962568768),	// CDE_VCX2_vec
    UINT64_C(4253024256),	// CDE_VCX3A_fpdp
    UINT64_C(4236247040),	// CDE_VCX3A_fpsp
    UINT64_C(4236247104),	// CDE_VCX3A_vec
    UINT64_C(3984588800),	// CDE_VCX3_fpdp
    UINT64_C(3967811584),	// CDE_VCX3_fpsp
    UINT64_C(3967811648),	// CDE_VCX3_vec
    UINT64_C(234881024),	// CDP
    UINT64_C(4261412864),	// CDP2
    UINT64_C(4118802463),	// CLREX
    UINT64_C(24055568),	// CLZ
    UINT64_C(57671680),	// CMNri
    UINT64_C(24117248),	// CMNzrr
    UINT64_C(24117248),	// CMNzrsi
    UINT64_C(24117264),	// CMNzrsr
    UINT64_C(55574528),	// CMPri
    UINT64_C(22020096),	// CMPrr
    UINT64_C(22020096),	// CMPrsi
    UINT64_C(22020112),	// CMPrsr
    UINT64_C(4043440128),	// CPS1p
    UINT64_C(4043309056),	// CPS2p
    UINT64_C(4043440128),	// CPS3p
    UINT64_C(3774873664),	// CRC32B
    UINT64_C(3774874176),	// CRC32CB
    UINT64_C(3776971328),	// CRC32CH
    UINT64_C(3779068480),	// CRC32CW
    UINT64_C(3776970816),	// CRC32H
    UINT64_C(3779067968),	// CRC32W
    UINT64_C(52490480),	// DBG
    UINT64_C(4118802512),	// DMB
    UINT64_C(4118802496),	// DSB
    UINT64_C(35651584),	// EORri
    UINT64_C(2097152),	// EORrr
    UINT64_C(2097152),	// EORrsi
    UINT64_C(2097168),	// EORrsr
    UINT64_C(23068782),	// ERET
    UINT64_C(246418176),	// FCONSTD
    UINT64_C(246417664),	// FCONSTH
    UINT64_C(246417920),	// FCONSTS
    UINT64_C(221252353),	// FLDMXDB_UPD
    UINT64_C(210766593),	// FLDMXIA
    UINT64_C(212863745),	// FLDMXIA_UPD
    UINT64_C(250739216),	// FMSTAT
    UINT64_C(220203777),	// FSTMXDB_UPD
    UINT64_C(209718017),	// FSTMXIA
    UINT64_C(211815169),	// FSTMXIA_UPD
    UINT64_C(52490240),	// HINT
    UINT64_C(3774873712),	// HLT
    UINT64_C(3779068016),	// HVC
    UINT64_C(4118802528),	// ISB
    UINT64_C(26217631),	// LDA
    UINT64_C(30411935),	// LDAB
    UINT64_C(26218143),	// LDAEX
    UINT64_C(30412447),	// LDAEXB
    UINT64_C(28315295),	// LDAEXD
    UINT64_C(32509599),	// LDAEXH
    UINT64_C(32509087),	// LDAH
    UINT64_C(4249878528),	// LDC2L_OFFSET
    UINT64_C(4241489920),	// LDC2L_OPTION
    UINT64_C(4235198464),	// LDC2L_POST
    UINT64_C(4251975680),	// LDC2L_PRE
    UINT64_C(4245684224),	// LDC2_OFFSET
    UINT64_C(4237295616),	// LDC2_OPTION
    UINT64_C(4231004160),	// LDC2_POST
    UINT64_C(4247781376),	// LDC2_PRE
    UINT64_C(223346688),	// LDCL_OFFSET
    UINT64_C(214958080),	// LDCL_OPTION
    UINT64_C(208666624),	// LDCL_POST
    UINT64_C(225443840),	// LDCL_PRE
    UINT64_C(219152384),	// LDC_OFFSET
    UINT64_C(210763776),	// LDC_OPTION
    UINT64_C(204472320),	// LDC_POST
    UINT64_C(221249536),	// LDC_PRE
    UINT64_C(135266304),	// LDMDA
    UINT64_C(137363456),	// LDMDA_UPD
    UINT64_C(152043520),	// LDMDB
    UINT64_C(154140672),	// LDMDB_UPD
    UINT64_C(143654912),	// LDMIA
    UINT64_C(145752064),	// LDMIA_UPD
    UINT64_C(160432128),	// LDMIB
    UINT64_C(162529280),	// LDMIB_UPD
    UINT64_C(74448896),	// LDRBT_POST_IMM
    UINT64_C(108003328),	// LDRBT_POST_REG
    UINT64_C(72351744),	// LDRB_POST_IMM
    UINT64_C(105906176),	// LDRB_POST_REG
    UINT64_C(91226112),	// LDRB_PRE_IMM
    UINT64_C(124780544),	// LDRB_PRE_REG
    UINT64_C(89128960),	// LDRBi12
    UINT64_C(122683392),	// LDRBrs
    UINT64_C(16777424),	// LDRD
    UINT64_C(208),	// LDRD_POST
    UINT64_C(18874576),	// LDRD_PRE
    UINT64_C(26218399),	// LDREX
    UINT64_C(30412703),	// LDREXB
    UINT64_C(28315551),	// LDREXD
    UINT64_C(32509855),	// LDREXH
    UINT64_C(17825968),	// LDRH
    UINT64_C(7340208),	// LDRHTi
    UINT64_C(3145904),	// LDRHTr
    UINT64_C(1048752),	// LDRH_POST
    UINT64_C(19923120),	// LDRH_PRE
    UINT64_C(17826000),	// LDRSB
    UINT64_C(7340240),	// LDRSBTi
    UINT64_C(3145936),	// LDRSBTr
    UINT64_C(1048784),	// LDRSB_POST
    UINT64_C(19923152),	// LDRSB_PRE
    UINT64_C(17826032),	// LDRSH
    UINT64_C(7340272),	// LDRSHTi
    UINT64_C(3145968),	// LDRSHTr
    UINT64_C(1048816),	// LDRSH_POST
    UINT64_C(19923184),	// LDRSH_PRE
    UINT64_C(70254592),	// LDRT_POST_IMM
    UINT64_C(103809024),	// LDRT_POST_REG
    UINT64_C(68157440),	// LDR_POST_IMM
    UINT64_C(101711872),	// LDR_POST_REG
    UINT64_C(87031808),	// LDR_PRE_IMM
    UINT64_C(120586240),	// LDR_PRE_REG
    UINT64_C(85917696),	// LDRcp
    UINT64_C(84934656),	// LDRi12
    UINT64_C(118489088),	// LDRrs
    UINT64_C(234881040),	// MCR
    UINT64_C(4261412880),	// MCR2
    UINT64_C(205520896),	// MCRR
    UINT64_C(4232052736),	// MCRR2
    UINT64_C(2097296),	// MLA
    UINT64_C(6291600),	// MLS
    UINT64_C(27324430),	// MOVPCLR
    UINT64_C(54525952),	// MOVTi16
    UINT64_C(60817408),	// MOVi
    UINT64_C(50331648),	// MOVi16
    UINT64_C(27262976),	// MOVr
    UINT64_C(27262976),	// MOVr_TC
    UINT64_C(27262976),	// MOVsi
    UINT64_C(27262992),	// MOVsr
    UINT64_C(235929616),	// MRC
    UINT64_C(4262461456),	// MRC2
    UINT64_C(206569472),	// MRRC
    UINT64_C(4233101312),	// MRRC2
    UINT64_C(17760256),	// MRS
    UINT64_C(16777728),	// MRSbanked
    UINT64_C(21954560),	// MRSsys
    UINT64_C(18935808),	// MSR
    UINT64_C(18936320),	// MSRbanked
    UINT64_C(52490240),	// MSRi
    UINT64_C(144),	// MUL
    UINT64_C(3931111727),	// MVE_ASRLi
    UINT64_C(3931111725),	// MVE_ASRLr
    UINT64_C(4027637761),	// MVE_DLSTP_16
    UINT64_C(4028686337),	// MVE_DLSTP_32
    UINT64_C(4029734913),	// MVE_DLSTP_64
    UINT64_C(4026589185),	// MVE_DLSTP_8
    UINT64_C(4027572225),	// MVE_LCTP
    UINT64_C(4028612609),	// MVE_LETP
    UINT64_C(3931111695),	// MVE_LSLLi
    UINT64_C(3931111693),	// MVE_LSLLr
    UINT64_C(3931111711),	// MVE_LSRL
    UINT64_C(3931115309),	// MVE_SQRSHR
    UINT64_C(3931177261),	// MVE_SQRSHRL
    UINT64_C(3931115327),	// MVE_SQSHL
    UINT64_C(3931177279),	// MVE_SQSHLL
    UINT64_C(3931115311),	// MVE_SRSHR
    UINT64_C(3931177263),	// MVE_SRSHRL
    UINT64_C(3931115277),	// MVE_UQRSHL
    UINT64_C(3931177229),	// MVE_UQRSHLL
    UINT64_C(3931115279),	// MVE_UQSHL
    UINT64_C(3931177231),	// MVE_UQSHLL
    UINT64_C(3931115295),	// MVE_URSHR
    UINT64_C(3931177247),	// MVE_URSHRL
    UINT64_C(4002418433),	// MVE_VABAVs16
    UINT64_C(4003467009),	// MVE_VABAVs32
    UINT64_C(4001369857),	// MVE_VABAVs8
    UINT64_C(4270853889),	// MVE_VABAVu16
    UINT64_C(4271902465),	// MVE_VABAVu32
    UINT64_C(4269805313),	// MVE_VABAVu8
    UINT64_C(4281339200),	// MVE_VABDf16
    UINT64_C(4280290624),	// MVE_VABDf32
    UINT64_C(4010805056),	// MVE_VABDs16
    UINT64_C(4011853632),	// MVE_VABDs32
    UINT64_C(4009756480),	// MVE_VABDs8
    UINT64_C(4279240512),	// MVE_VABDu16
    UINT64_C(4280289088),	// MVE_VABDu32
    UINT64_C(4278191936),	// MVE_VABDu8
    UINT64_C(4290053952),	// MVE_VABSf16
    UINT64_C(4290316096),	// MVE_VABSf32
    UINT64_C(4290052928),	// MVE_VABSs16
    UINT64_C(4290315072),	// MVE_VABSs32
    UINT64_C(4289790784),	// MVE_VABSs8
    UINT64_C(3996126976),	// MVE_VADC
    UINT64_C(3996131072),	// MVE_VADCI
    UINT64_C(4001959712),	// MVE_VADDLVs32acc
    UINT64_C(4001959680),	// MVE_VADDLVs32no_acc
    UINT64_C(4270395168),	// MVE_VADDLVu32acc
    UINT64_C(4270395136),	// MVE_VADDLVu32no_acc
    UINT64_C(4009037600),	// MVE_VADDVs16acc
    UINT64_C(4009037568),	// MVE_VADDVs16no_acc
    UINT64_C(4009299744),	// MVE_VADDVs32acc
    UINT64_C(4009299712),	// MVE_VADDVs32no_acc
    UINT64_C(4008775456),	// MVE_VADDVs8acc
    UINT64_C(4008775424),	// MVE_VADDVs8no_acc
    UINT64_C(4277473056),	// MVE_VADDVu16acc
    UINT64_C(4277473024),	// MVE_VADDVu16no_acc
    UINT64_C(4277735200),	// MVE_VADDVu32acc
    UINT64_C(4277735168),	// MVE_VADDVu32no_acc
    UINT64_C(4277210912),	// MVE_VADDVu8acc
    UINT64_C(4277210880),	// MVE_VADDVu8no_acc
    UINT64_C(4264562496),	// MVE_VADD_qr_f16
    UINT64_C(3996127040),	// MVE_VADD_qr_f32
    UINT64_C(3994095424),	// MVE_VADD_qr_i16
    UINT64_C(3995144000),	// MVE_VADD_qr_i32
    UINT64_C(3993046848),	// MVE_VADD_qr_i8
    UINT64_C(4010806592),	// MVE_VADDf16
    UINT64_C(4009758016),	// MVE_VADDf32
    UINT64_C(4010805312),	// MVE_VADDi16
    UINT64_C(4011853888),	// MVE_VADDi32
    UINT64_C(4009756736),	// MVE_VADDi8
    UINT64_C(4009754960),	// MVE_VAND
    UINT64_C(4010803536),	// MVE_VBIC
    UINT64_C(4018145648),	// MVE_VBICimmi16
    UINT64_C(4018143600),	// MVE_VBICimmi32
    UINT64_C(4262534752),	// MVE_VBRSR16
    UINT64_C(4263583328),	// MVE_VBRSR32
    UINT64_C(4261486176),	// MVE_VBRSR8
    UINT64_C(4236249152),	// MVE_VCADDf16
    UINT64_C(4237297728),	// MVE_VCADDf32
    UINT64_C(4262465280),	// MVE_VCADDi16
    UINT64_C(4263513856),	// MVE_VCADDi32
    UINT64_C(4261416704),	// MVE_VCADDi8
    UINT64_C(4289987648),	// MVE_VCLSs16
    UINT64_C(4290249792),	// MVE_VCLSs32
    UINT64_C(4289725504),	// MVE_VCLSs8
    UINT64_C(4289987776),	// MVE_VCLZs16
    UINT64_C(4290249920),	// MVE_VCLZs32
    UINT64_C(4289725632),	// MVE_VCLZs8
    UINT64_C(4229957696),	// MVE_VCMLAf16
    UINT64_C(4231006272),	// MVE_VCMLAf32
    UINT64_C(4264627968),	// MVE_VCMPf16
    UINT64_C(4264628032),	// MVE_VCMPf16r
    UINT64_C(3996192512),	// MVE_VCMPf32
    UINT64_C(3996192576),	// MVE_VCMPf32r
    UINT64_C(4262530816),	// MVE_VCMPi16
    UINT64_C(4262530880),	// MVE_VCMPi16r
    UINT64_C(4263579392),	// MVE_VCMPi32
    UINT64_C(4263579456),	// MVE_VCMPi32r
    UINT64_C(4261482240),	// MVE_VCMPi8
    UINT64_C(4261482304),	// MVE_VCMPi8r
    UINT64_C(4262534912),	// MVE_VCMPs16
    UINT64_C(4262534976),	// MVE_VCMPs16r
    UINT64_C(4263583488),	// MVE_VCMPs32
    UINT64_C(4263583552),	// MVE_VCMPs32r
    UINT64_C(4261486336),	// MVE_VCMPs8
    UINT64_C(4261486400),	// MVE_VCMPs8r
    UINT64_C(4262530817),	// MVE_VCMPu16
    UINT64_C(4262530912),	// MVE_VCMPu16r
    UINT64_C(4263579393),	// MVE_VCMPu32
    UINT64_C(4263579488),	// MVE_VCMPu32r
    UINT64_C(4261482241),	// MVE_VCMPu8
    UINT64_C(4261482336),	// MVE_VCMPu8r
    UINT64_C(3996126720),	// MVE_VCMULf16
    UINT64_C(4264562176),	// MVE_VCMULf32
    UINT64_C(4027639809),	// MVE_VCTP16
    UINT64_C(4028688385),	// MVE_VCTP32
    UINT64_C(4029736961),	// MVE_VCTP64
    UINT64_C(4026591233),	// MVE_VCTP8
    UINT64_C(3997109761),	// MVE_VCVTf16f32bh
    UINT64_C(3997113857),	// MVE_VCVTf16f32th
    UINT64_C(4021292112),	// MVE_VCVTf16s16_fix
    UINT64_C(4290184768),	// MVE_VCVTf16s16n
    UINT64_C(4289727568),	// MVE_VCVTf16u16_fix
    UINT64_C(4290184896),	// MVE_VCVTf16u16n
    UINT64_C(4265545217),	// MVE_VCVTf32f16bh
    UINT64_C(4265549313),	// MVE_VCVTf32f16th
    UINT64_C(4020244048),	// MVE_VCVTf32s32_fix
    UINT64_C(4290446912),	// MVE_VCVTf32s32n
    UINT64_C(4288679504),	// MVE_VCVTf32u32_fix
    UINT64_C(4290447040),	// MVE_VCVTf32u32n
    UINT64_C(4021292368),	// MVE_VCVTs16f16_fix
    UINT64_C(4290183232),	// MVE_VCVTs16f16a
    UINT64_C(4290184000),	// MVE_VCVTs16f16m
    UINT64_C(4290183488),	// MVE_VCVTs16f16n
    UINT64_C(4290183744),	// MVE_VCVTs16f16p
    UINT64_C(4290185024),	// MVE_VCVTs16f16z
    UINT64_C(4020244304),	// MVE_VCVTs32f32_fix
    UINT64_C(4290445376),	// MVE_VCVTs32f32a
    UINT64_C(4290446144),	// MVE_VCVTs32f32m
    UINT64_C(4290445632),	// MVE_VCVTs32f32n
    UINT64_C(4290445888),	// MVE_VCVTs32f32p
    UINT64_C(4290447168),	// MVE_VCVTs32f32z
    UINT64_C(4289727824),	// MVE_VCVTu16f16_fix
    UINT64_C(4290183360),	// MVE_VCVTu16f16a
    UINT64_C(4290184128),	// MVE_VCVTu16f16m
    UINT64_C(4290183616),	// MVE_VCVTu16f16n
    UINT64_C(4290183872),	// MVE_VCVTu16f16p
    UINT64_C(4290185152),	// MVE_VCVTu16f16z
    UINT64_C(4288679760),	// MVE_VCVTu32f32_fix
    UINT64_C(4290445504),	// MVE_VCVTu32f32a
    UINT64_C(4290446272),	// MVE_VCVTu32f32m
    UINT64_C(4290445760),	// MVE_VCVTu32f32n
    UINT64_C(4290446016),	// MVE_VCVTu32f32p
    UINT64_C(4290447296),	// MVE_VCVTu32f32z
    UINT64_C(3994099566),	// MVE_VDDUPu16
    UINT64_C(3995148142),	// MVE_VDDUPu32
    UINT64_C(3993050990),	// MVE_VDDUPu8
    UINT64_C(4003466032),	// MVE_VDUP16
    UINT64_C(4003466000),	// MVE_VDUP32
    UINT64_C(4007660304),	// MVE_VDUP8
    UINT64_C(3994099552),	// MVE_VDWDUPu16
    UINT64_C(3995148128),	// MVE_VDWDUPu32
    UINT64_C(3993050976),	// MVE_VDWDUPu8
    UINT64_C(4278190416),	// MVE_VEOR
    UINT64_C(4264631872),	// MVE_VFMA_qr_Sf16
    UINT64_C(3996196416),	// MVE_VFMA_qr_Sf32
    UINT64_C(4264627776),	// MVE_VFMA_qr_f16
    UINT64_C(3996192320),	// MVE_VFMA_qr_f32
    UINT64_C(4010806352),	// MVE_VFMAf16
    UINT64_C(4009757776),	// MVE_VFMAf32
    UINT64_C(4012903504),	// MVE_VFMSf16
    UINT64_C(4011854928),	// MVE_VFMSf32
    UINT64_C(3994029888),	// MVE_VHADD_qr_s16
    UINT64_C(3995078464),	// MVE_VHADD_qr_s32
    UINT64_C(3992981312),	// MVE_VHADD_qr_s8
    UINT64_C(4262465344),	// MVE_VHADD_qr_u16
    UINT64_C(4263513920),	// MVE_VHADD_qr_u32
    UINT64_C(4261416768),	// MVE_VHADD_qr_u8
    UINT64_C(4010803264),	// MVE_VHADDs16
    UINT64_C(4011851840),	// MVE_VHADDs32
    UINT64_C(4009754688),	// MVE_VHADDs8
    UINT64_C(4279238720),	// MVE_VHADDu16
    UINT64_C(4280287296),	// MVE_VHADDu32
    UINT64_C(4278190144),	// MVE_VHADDu8
    UINT64_C(3994029824),	// MVE_VHCADDs16
    UINT64_C(3995078400),	// MVE_VHCADDs32
    UINT64_C(3992981248),	// MVE_VHCADDs8
    UINT64_C(3994033984),	// MVE_VHSUB_qr_s16
    UINT64_C(3995082560),	// MVE_VHSUB_qr_s32
    UINT64_C(3992985408),	// MVE_VHSUB_qr_s8
    UINT64_C(4262469440),	// MVE_VHSUB_qr_u16
    UINT64_C(4263518016),	// MVE_VHSUB_qr_u32
    UINT64_C(4261420864),	// MVE_VHSUB_qr_u8
    UINT64_C(4010803776),	// MVE_VHSUBs16
    UINT64_C(4011852352),	// MVE_VHSUBs32
    UINT64_C(4009755200),	// MVE_VHSUBs8
    UINT64_C(4279239232),	// MVE_VHSUBu16
    UINT64_C(4280287808),	// MVE_VHSUBu32
    UINT64_C(4278190656),	// MVE_VHSUBu8
    UINT64_C(3994095470),	// MVE_VIDUPu16
    UINT64_C(3995144046),	// MVE_VIDUPu32
    UINT64_C(3993046894),	// MVE_VIDUPu8
    UINT64_C(3994095456),	// MVE_VIWDUPu16
    UINT64_C(3995144032),	// MVE_VIWDUPu32
    UINT64_C(3993046880),	// MVE_VIWDUPu8
    UINT64_C(4237303424),	// MVE_VLD20_16
    UINT64_C(4239400576),	// MVE_VLD20_16_wb
    UINT64_C(4237303552),	// MVE_VLD20_32
    UINT64_C(4239400704),	// MVE_VLD20_32_wb
    UINT64_C(4237303296),	// MVE_VLD20_8
    UINT64_C(4239400448),	// MVE_VLD20_8_wb
    UINT64_C(4237303456),	// MVE_VLD21_16
    UINT64_C(4239400608),	// MVE_VLD21_16_wb
    UINT64_C(4237303584),	// MVE_VLD21_32
    UINT64_C(4239400736),	// MVE_VLD21_32_wb
    UINT64_C(4237303328),	// MVE_VLD21_8
    UINT64_C(4239400480),	// MVE_VLD21_8_wb
    UINT64_C(4237303425),	// MVE_VLD40_16
    UINT64_C(4239400577),	// MVE_VLD40_16_wb
    UINT64_C(4237303553),	// MVE_VLD40_32
    UINT64_C(4239400705),	// MVE_VLD40_32_wb
    UINT64_C(4237303297),	// MVE_VLD40_8
    UINT64_C(4239400449),	// MVE_VLD40_8_wb
    UINT64_C(4237303457),	// MVE_VLD41_16
    UINT64_C(4239400609),	// MVE_VLD41_16_wb
    UINT64_C(4237303585),	// MVE_VLD41_32
    UINT64_C(4239400737),	// MVE_VLD41_32_wb
    UINT64_C(4237303329),	// MVE_VLD41_8
    UINT64_C(4239400481),	// MVE_VLD41_8_wb
    UINT64_C(4237303489),	// MVE_VLD42_16
    UINT64_C(4239400641),	// MVE_VLD42_16_wb
    UINT64_C(4237303617),	// MVE_VLD42_32
    UINT64_C(4239400769),	// MVE_VLD42_32_wb
    UINT64_C(4237303361),	// MVE_VLD42_8
    UINT64_C(4239400513),	// MVE_VLD42_8_wb
    UINT64_C(4237303521),	// MVE_VLD43_16
    UINT64_C(4239400673),	// MVE_VLD43_16_wb
    UINT64_C(4237303649),	// MVE_VLD43_32
    UINT64_C(4239400801),	// MVE_VLD43_32_wb
    UINT64_C(4237303393),	// MVE_VLD43_8
    UINT64_C(4239400545),	// MVE_VLD43_8_wb
    UINT64_C(3977252480),	// MVE_VLDRBS16
    UINT64_C(3962572416),	// MVE_VLDRBS16_post
    UINT64_C(3979349632),	// MVE_VLDRBS16_pre
    UINT64_C(3968863872),	// MVE_VLDRBS16_rq
    UINT64_C(3977252608),	// MVE_VLDRBS32
    UINT64_C(3962572544),	// MVE_VLDRBS32_post
    UINT64_C(3979349760),	// MVE_VLDRBS32_pre
    UINT64_C(3968864000),	// MVE_VLDRBS32_rq
    UINT64_C(4245687936),	// MVE_VLDRBU16
    UINT64_C(4231007872),	// MVE_VLDRBU16_post
    UINT64_C(4247785088),	// MVE_VLDRBU16_pre
    UINT64_C(4237299328),	// MVE_VLDRBU16_rq
    UINT64_C(4245688064),	// MVE_VLDRBU32
    UINT64_C(4231008000),	// MVE_VLDRBU32_post
    UINT64_C(4247785216),	// MVE_VLDRBU32_pre
    UINT64_C(4237299456),	// MVE_VLDRBU32_rq
    UINT64_C(3977256448),	// MVE_VLDRBU8
    UINT64_C(3962576384),	// MVE_VLDRBU8_post
    UINT64_C(3979353600),	// MVE_VLDRBU8_pre
    UINT64_C(4237299200),	// MVE_VLDRBU8_rq
    UINT64_C(4245692160),	// MVE_VLDRDU64_qi
    UINT64_C(4247789312),	// MVE_VLDRDU64_qi_pre
    UINT64_C(4237299665),	// MVE_VLDRDU64_rq
    UINT64_C(4237299664),	// MVE_VLDRDU64_rq_u
    UINT64_C(3977776896),	// MVE_VLDRHS32
    UINT64_C(3963096832),	// MVE_VLDRHS32_post
    UINT64_C(3979874048),	// MVE_VLDRHS32_pre
    UINT64_C(3968864017),	// MVE_VLDRHS32_rq
    UINT64_C(3968864016),	// MVE_VLDRHS32_rq_u
    UINT64_C(3977256576),	// MVE_VLDRHU16
    UINT64_C(3962576512),	// MVE_VLDRHU16_post
    UINT64_C(3979353728),	// MVE_VLDRHU16_pre
    UINT64_C(4237299345),	// MVE_VLDRHU16_rq
    UINT64_C(4237299344),	// MVE_VLDRHU16_rq_u
    UINT64_C(4246212352),	// MVE_VLDRHU32
    UINT64_C(4231532288),	// MVE_VLDRHU32_post
    UINT64_C(4248309504),	// MVE_VLDRHU32_pre
    UINT64_C(4237299473),	// MVE_VLDRHU32_rq
    UINT64_C(4237299472),	// MVE_VLDRHU32_rq_u
    UINT64_C(3977256704),	// MVE_VLDRWU32
    UINT64_C(3962576640),	// MVE_VLDRWU32_post
    UINT64_C(3979353856),	// MVE_VLDRWU32_pre
    UINT64_C(4245691904),	// MVE_VLDRWU32_qi
    UINT64_C(4247789056),	// MVE_VLDRWU32_qi_pre
    UINT64_C(4237299521),	// MVE_VLDRWU32_rq
    UINT64_C(4237299520),	// MVE_VLDRWU32_rq_u
    UINT64_C(4007923456),	// MVE_VMAXAVs16
    UINT64_C(4008185600),	// MVE_VMAXAVs32
    UINT64_C(4007661312),	// MVE_VMAXAVs8
    UINT64_C(3996585601),	// MVE_VMAXAs16
    UINT64_C(3996847745),	// MVE_VMAXAs32
    UINT64_C(3996323457),	// MVE_VMAXAs8
    UINT64_C(4276883200),	// MVE_VMAXNMAVf16
    UINT64_C(4008447744),	// MVE_VMAXNMAVf32
    UINT64_C(4265545345),	// MVE_VMAXNMAf16
    UINT64_C(3997109889),	// MVE_VMAXNMAf32
    UINT64_C(4277014272),	// MVE_VMAXNMVf16
    UINT64_C(4008578816),	// MVE_VMAXNMVf32
    UINT64_C(4279242576),	// MVE_VMAXNMf16
    UINT64_C(4278194000),	// MVE_VMAXNMf32
    UINT64_C(4008054528),	// MVE_VMAXVs16
    UINT64_C(4008316672),	// MVE_VMAXVs32
    UINT64_C(4007792384),	// MVE_VMAXVs8
    UINT64_C(4276489984),	// MVE_VMAXVu16
    UINT64_C(4276752128),	// MVE_VMAXVu32
    UINT64_C(4276227840),	// MVE_VMAXVu8
    UINT64_C(4010804800),	// MVE_VMAXs16
    UINT64_C(4011853376),	// MVE_VMAXs32
    UINT64_C(4009756224),	// MVE_VMAXs8
    UINT64_C(4279240256),	// MVE_VMAXu16
    UINT64_C(4280288832),	// MVE_VMAXu32
    UINT64_C(4278191680),	// MVE_VMAXu8
    UINT64_C(4007923584),	// MVE_VMINAVs16
    UINT64_C(4008185728),	// MVE_VMINAVs32
    UINT64_C(4007661440),	// MVE_VMINAVs8
    UINT64_C(3996589697),	// MVE_VMINAs16
    UINT64_C(3996851841),	// MVE_VMINAs32
    UINT64_C(3996327553),	// MVE_VMINAs8
    UINT64_C(4276883328),	// MVE_VMINNMAVf16
    UINT64_C(4008447872),	// MVE_VMINNMAVf32
    UINT64_C(4265549441),	// MVE_VMINNMAf16
    UINT64_C(3997113985),	// MVE_VMINNMAf32
    UINT64_C(4277014400),	// MVE_VMINNMVf16
    UINT64_C(4008578944),	// MVE_VMINNMVf32
    UINT64_C(4281339728),	// MVE_VMINNMf16
    UINT64_C(4280291152),	// MVE_VMINNMf32
    UINT64_C(4008054656),	// MVE_VMINVs16
    UINT64_C(4008316800),	// MVE_VMINVs32
    UINT64_C(4007792512),	// MVE_VMINVs8
    UINT64_C(4276490112),	// MVE_VMINVu16
    UINT64_C(4276752256),	// MVE_VMINVu32
    UINT64_C(4276227968),	// MVE_VMINVu8
    UINT64_C(4010804816),	// MVE_VMINs16
    UINT64_C(4011853392),	// MVE_VMINs32
    UINT64_C(4009756240),	// MVE_VMINs8
    UINT64_C(4279240272),	// MVE_VMINu16
    UINT64_C(4280288848),	// MVE_VMINu32
    UINT64_C(4278191696),	// MVE_VMINu8
    UINT64_C(4008709664),	// MVE_VMLADAVas16
    UINT64_C(4008775200),	// MVE_VMLADAVas32
    UINT64_C(4008709920),	// MVE_VMLADAVas8
    UINT64_C(4277145120),	// MVE_VMLADAVau16
    UINT64_C(4277210656),	// MVE_VMLADAVau32
    UINT64_C(4277145376),	// MVE_VMLADAVau8
    UINT64_C(4008713760),	// MVE_VMLADAVaxs16
    UINT64_C(4008779296),	// MVE_VMLADAVaxs32
    UINT64_C(4008714016),	// MVE_VMLADAVaxs8
    UINT64_C(4008709632),	// MVE_VMLADAVs16
    UINT64_C(4008775168),	// MVE_VMLADAVs32
    UINT64_C(4008709888),	// MVE_VMLADAVs8
    UINT64_C(4277145088),	// MVE_VMLADAVu16
    UINT64_C(4277210624),	// MVE_VMLADAVu32
    UINT64_C(4277145344),	// MVE_VMLADAVu8
    UINT64_C(4008713728),	// MVE_VMLADAVxs16
    UINT64_C(4008779264),	// MVE_VMLADAVxs32
    UINT64_C(4008713984),	// MVE_VMLADAVxs8
    UINT64_C(4001369632),	// MVE_VMLALDAVas16
    UINT64_C(4001435168),	// MVE_VMLALDAVas32
    UINT64_C(4269805088),	// MVE_VMLALDAVau16
    UINT64_C(4269870624),	// MVE_VMLALDAVau32
    UINT64_C(4001373728),	// MVE_VMLALDAVaxs16
    UINT64_C(4001439264),	// MVE_VMLALDAVaxs32
    UINT64_C(4001369600),	// MVE_VMLALDAVs16
    UINT64_C(4001435136),	// MVE_VMLALDAVs32
    UINT64_C(4269805056),	// MVE_VMLALDAVu16
    UINT64_C(4269870592),	// MVE_VMLALDAVu32
    UINT64_C(4001373696),	// MVE_VMLALDAVxs16
    UINT64_C(4001439232),	// MVE_VMLALDAVxs32
    UINT64_C(3994099264),	// MVE_VMLAS_qr_i16
    UINT64_C(3995147840),	// MVE_VMLAS_qr_i32
    UINT64_C(3993050688),	// MVE_VMLAS_qr_i8
    UINT64_C(3994095168),	// MVE_VMLA_qr_i16
    UINT64_C(3995143744),	// MVE_VMLA_qr_i32
    UINT64_C(3993046592),	// MVE_VMLA_qr_i8
    UINT64_C(4008709665),	// MVE_VMLSDAVas16
    UINT64_C(4008775201),	// MVE_VMLSDAVas32
    UINT64_C(4277145121),	// MVE_VMLSDAVas8
    UINT64_C(4008713761),	// MVE_VMLSDAVaxs16
    UINT64_C(4008779297),	// MVE_VMLSDAVaxs32
    UINT64_C(4277149217),	// MVE_VMLSDAVaxs8
    UINT64_C(4008709633),	// MVE_VMLSDAVs16
    UINT64_C(4008775169),	// MVE_VMLSDAVs32
    UINT64_C(4277145089),	// MVE_VMLSDAVs8
    UINT64_C(4008713729),	// MVE_VMLSDAVxs16
    UINT64_C(4008779265),	// MVE_VMLSDAVxs32
    UINT64_C(4277149185),	// MVE_VMLSDAVxs8
    UINT64_C(4001369633),	// MVE_VMLSLDAVas16
    UINT64_C(4001435169),	// MVE_VMLSLDAVas32
    UINT64_C(4001373729),	// MVE_VMLSLDAVaxs16
    UINT64_C(4001439265),	// MVE_VMLSLDAVaxs32
    UINT64_C(4001369601),	// MVE_VMLSLDAVs16
    UINT64_C(4001435137),	// MVE_VMLSLDAVs32
    UINT64_C(4001373697),	// MVE_VMLSLDAVxs16
    UINT64_C(4001439233),	// MVE_VMLSLDAVxs32
    UINT64_C(4004515648),	// MVE_VMOVLs16bh
    UINT64_C(4004519744),	// MVE_VMOVLs16th
    UINT64_C(4003991360),	// MVE_VMOVLs8bh
    UINT64_C(4003995456),	// MVE_VMOVLs8th
    UINT64_C(4272951104),	// MVE_VMOVLu16bh
    UINT64_C(4272955200),	// MVE_VMOVLu16th
    UINT64_C(4272426816),	// MVE_VMOVLu8bh
    UINT64_C(4272430912),	// MVE_VMOVLu8th
    UINT64_C(4264627841),	// MVE_VMOVNi16bh
    UINT64_C(4264631937),	// MVE_VMOVNi16th
    UINT64_C(4264889985),	// MVE_VMOVNi32bh
    UINT64_C(4264894081),	// MVE_VMOVNi32th
    UINT64_C(3994028816),	// MVE_VMOV_from_lane_32
    UINT64_C(3994028848),	// MVE_VMOV_from_lane_s16
    UINT64_C(3998223120),	// MVE_VMOV_from_lane_s8
    UINT64_C(4002417456),	// MVE_VMOV_from_lane_u16
    UINT64_C(4006611728),	// MVE_VMOV_from_lane_u8
    UINT64_C(3960475392),	// MVE_VMOV_q_rr
    UINT64_C(3959426816),	// MVE_VMOV_rr_q
    UINT64_C(3992980272),	// MVE_VMOV_to_lane_16
    UINT64_C(3992980240),	// MVE_VMOV_to_lane_32
    UINT64_C(3997174544),	// MVE_VMOV_to_lane_8
    UINT64_C(4018147152),	// MVE_VMOVimmf32
    UINT64_C(4018145360),	// MVE_VMOVimmi16
    UINT64_C(4018143312),	// MVE_VMOVimmi32
    UINT64_C(4018146928),	// MVE_VMOVimmi64
    UINT64_C(4018146896),	// MVE_VMOVimmi8
    UINT64_C(3994095105),	// MVE_VMULHs16
    UINT64_C(3995143681),	// MVE_VMULHs32
    UINT64_C(3993046529),	// MVE_VMULHs8
    UINT64_C(4262530561),	// MVE_VMULHu16
    UINT64_C(4263579137),	// MVE_VMULHu32
    UINT64_C(4261481985),	// MVE_VMULHu8
    UINT64_C(4264627712),	// MVE_VMULLBp16
    UINT64_C(3996192256),	// MVE_VMULLBp8
    UINT64_C(3994095104),	// MVE_VMULLBs16
    UINT64_C(3995143680),	// MVE_VMULLBs32
    UINT64_C(3993046528),	// MVE_VMULLBs8
    UINT64_C(4262530560),	// MVE_VMULLBu16
    UINT64_C(4263579136),	// MVE_VMULLBu32
    UINT64_C(4261481984),	// MVE_VMULLBu8
    UINT64_C(4264631808),	// MVE_VMULLTp16
    UINT64_C(3996196352),	// MVE_VMULLTp8
    UINT64_C(3994099200),	// MVE_VMULLTs16
    UINT64_C(3995147776),	// MVE_VMULLTs32
    UINT64_C(3993050624),	// MVE_VMULLTs8
    UINT64_C(4262534656),	// MVE_VMULLTu16
    UINT64_C(4263583232),	// MVE_VMULLTu32
    UINT64_C(4261486080),	// MVE_VMULLTu8
    UINT64_C(4264627808),	// MVE_VMUL_qr_f16
    UINT64_C(3996192352),	// MVE_VMUL_qr_f32
    UINT64_C(3994099296),	// MVE_VMUL_qr_i16
    UINT64_C(3995147872),	// MVE_VMUL_qr_i32
    UINT64_C(3993050720),	// MVE_VMUL_qr_i8
    UINT64_C(4279242064),	// MVE_VMULf16
    UINT64_C(4278193488),	// MVE_VMULf32
    UINT64_C(4010805584),	// MVE_VMULi16
    UINT64_C(4011854160),	// MVE_VMULi32
    UINT64_C(4009757008),	// MVE_VMULi8
    UINT64_C(4289725888),	// MVE_VMVN
    UINT64_C(4018145392),	// MVE_VMVNimmi16
    UINT64_C(4018143344),	// MVE_VMVNimmi32
    UINT64_C(4290054080),	// MVE_VNEGf16
    UINT64_C(4290316224),	// MVE_VNEGf32
    UINT64_C(4290053056),	// MVE_VNEGs16
    UINT64_C(4290315200),	// MVE_VNEGs32
    UINT64_C(4289790912),	// MVE_VNEGs8
    UINT64_C(4012900688),	// MVE_VORN
    UINT64_C(4011852112),	// MVE_VORR
    UINT64_C(4018145616),	// MVE_VORRimmi16
    UINT64_C(4018143568),	// MVE_VORRimmi32
    UINT64_C(4264628045),	// MVE_VPNOT
    UINT64_C(4264627969),	// MVE_VPSEL
    UINT64_C(4264628045),	// MVE_VPST
    UINT64_C(4261482240),	// MVE_VPTv16i8
    UINT64_C(4261482304),	// MVE_VPTv16i8r
    UINT64_C(4261486336),	// MVE_VPTv16s8
    UINT64_C(4261486400),	// MVE_VPTv16s8r
    UINT64_C(4261482241),	// MVE_VPTv16u8
    UINT64_C(4261482336),	// MVE_VPTv16u8r
    UINT64_C(3996192512),	// MVE_VPTv4f32
    UINT64_C(3996192576),	// MVE_VPTv4f32r
    UINT64_C(4263579392),	// MVE_VPTv4i32
    UINT64_C(4263579456),	// MVE_VPTv4i32r
    UINT64_C(4263583488),	// MVE_VPTv4s32
    UINT64_C(4263583552),	// MVE_VPTv4s32r
    UINT64_C(4263579393),	// MVE_VPTv4u32
    UINT64_C(4263579488),	// MVE_VPTv4u32r
    UINT64_C(4264627968),	// MVE_VPTv8f16
    UINT64_C(4264628032),	// MVE_VPTv8f16r
    UINT64_C(4262530816),	// MVE_VPTv8i16
    UINT64_C(4262530880),	// MVE_VPTv8i16r
    UINT64_C(4262534912),	// MVE_VPTv8s16
    UINT64_C(4262534976),	// MVE_VPTv8s16r
    UINT64_C(4262530817),	// MVE_VPTv8u16
    UINT64_C(4262530912),	// MVE_VPTv8u16r
    UINT64_C(4289988416),	// MVE_VQABSs16
    UINT64_C(4290250560),	// MVE_VQABSs32
    UINT64_C(4289726272),	// MVE_VQABSs8
    UINT64_C(3994029920),	// MVE_VQADD_qr_s16
    UINT64_C(3995078496),	// MVE_VQADD_qr_s32
    UINT64_C(3992981344),	// MVE_VQADD_qr_s8
    UINT64_C(4262465376),	// MVE_VQADD_qr_u16
    UINT64_C(4263513952),	// MVE_VQADD_qr_u32
    UINT64_C(4261416800),	// MVE_VQADD_qr_u8
    UINT64_C(4010803280),	// MVE_VQADDs16
    UINT64_C(4011851856),	// MVE_VQADDs32
    UINT64_C(4009754704),	// MVE_VQADDs8
    UINT64_C(4279238736),	// MVE_VQADDu16
    UINT64_C(4280287312),	// MVE_VQADDu32
    UINT64_C(4278190160),	// MVE_VQADDu8
    UINT64_C(3994033664),	// MVE_VQDMLADHXs16
    UINT64_C(3995082240),	// MVE_VQDMLADHXs32
    UINT64_C(3992985088),	// MVE_VQDMLADHXs8
    UINT64_C(3994029568),	// MVE_VQDMLADHs16
    UINT64_C(3995078144),	// MVE_VQDMLADHs32
    UINT64_C(3992980992),	// MVE_VQDMLADHs8
    UINT64_C(3994029664),	// MVE_VQDMLAH_qrs16
    UINT64_C(3995078240),	// MVE_VQDMLAH_qrs32
    UINT64_C(3992981088),	// MVE_VQDMLAH_qrs8
    UINT64_C(3994033760),	// MVE_VQDMLASH_qrs16
    UINT64_C(3995082336),	// MVE_VQDMLASH_qrs32
    UINT64_C(3992985184),	// MVE_VQDMLASH_qrs8
    UINT64_C(4262469120),	// MVE_VQDMLSDHXs16
    UINT64_C(4263517696),	// MVE_VQDMLSDHXs32
    UINT64_C(4261420544),	// MVE_VQDMLSDHXs8
    UINT64_C(4262465024),	// MVE_VQDMLSDHs16
    UINT64_C(4263513600),	// MVE_VQDMLSDHs32
    UINT64_C(4261416448),	// MVE_VQDMLSDHs8
    UINT64_C(3994095200),	// MVE_VQDMULH_qr_s16
    UINT64_C(3995143776),	// MVE_VQDMULH_qr_s32
    UINT64_C(3993046624),	// MVE_VQDMULH_qr_s8
    UINT64_C(4010806080),	// MVE_VQDMULHi16
    UINT64_C(4011854656),	// MVE_VQDMULHi32
    UINT64_C(4009757504),	// MVE_VQDMULHi8
    UINT64_C(3996127072),	// MVE_VQDMULL_qr_s16bh
    UINT64_C(3996131168),	// MVE_VQDMULL_qr_s16th
    UINT64_C(4264562528),	// MVE_VQDMULL_qr_s32bh
    UINT64_C(4264566624),	// MVE_VQDMULL_qr_s32th
    UINT64_C(3996126977),	// MVE_VQDMULLs16bh
    UINT64_C(3996131073),	// MVE_VQDMULLs16th
    UINT64_C(4264562433),	// MVE_VQDMULLs32bh
    UINT64_C(4264566529),	// MVE_VQDMULLs32th
    UINT64_C(3996323329),	// MVE_VQMOVNs16bh
    UINT64_C(3996327425),	// MVE_VQMOVNs16th
    UINT64_C(3996585473),	// MVE_VQMOVNs32bh
    UINT64_C(3996589569),	// MVE_VQMOVNs32th
    UINT64_C(4264758785),	// MVE_VQMOVNu16bh
    UINT64_C(4264762881),	// MVE_VQMOVNu16th
    UINT64_C(4265020929),	// MVE_VQMOVNu32bh
    UINT64_C(4265025025),	// MVE_VQMOVNu32th
    UINT64_C(3996192385),	// MVE_VQMOVUNs16bh
    UINT64_C(3996196481),	// MVE_VQMOVUNs16th
    UINT64_C(3996454529),	// MVE_VQMOVUNs32bh
    UINT64_C(3996458625),	// MVE_VQMOVUNs32th
    UINT64_C(4289988544),	// MVE_VQNEGs16
    UINT64_C(4290250688),	// MVE_VQNEGs32
    UINT64_C(4289726400),	// MVE_VQNEGs8
    UINT64_C(3994033665),	// MVE_VQRDMLADHXs16
    UINT64_C(3995082241),	// MVE_VQRDMLADHXs32
    UINT64_C(3992985089),	// MVE_VQRDMLADHXs8
    UINT64_C(3994029569),	// MVE_VQRDMLADHs16
    UINT64_C(3995078145),	// MVE_VQRDMLADHs32
    UINT64_C(3992980993),	// MVE_VQRDMLADHs8
    UINT64_C(3994029632),	// MVE_VQRDMLAH_qrs16
    UINT64_C(3995078208),	// MVE_VQRDMLAH_qrs32
    UINT64_C(3992981056),	// MVE_VQRDMLAH_qrs8
    UINT64_C(3994033728),	// MVE_VQRDMLASH_qrs16
    UINT64_C(3995082304),	// MVE_VQRDMLASH_qrs32
    UINT64_C(3992985152),	// MVE_VQRDMLASH_qrs8
    UINT64_C(4262469121),	// MVE_VQRDMLSDHXs16
    UINT64_C(4263517697),	// MVE_VQRDMLSDHXs32
    UINT64_C(4261420545),	// MVE_VQRDMLSDHXs8
    UINT64_C(4262465025),	// MVE_VQRDMLSDHs16
    UINT64_C(4263513601),	// MVE_VQRDMLSDHs32
    UINT64_C(4261416449),	// MVE_VQRDMLSDHs8
    UINT64_C(4262530656),	// MVE_VQRDMULH_qr_s16
    UINT64_C(4263579232),	// MVE_VQRDMULH_qr_s32
    UINT64_C(4261482080),	// MVE_VQRDMULH_qr_s8
    UINT64_C(4279241536),	// MVE_VQRDMULHi16
    UINT64_C(4280290112),	// MVE_VQRDMULHi32
    UINT64_C(4278192960),	// MVE_VQRDMULHi8
    UINT64_C(4010804560),	// MVE_VQRSHL_by_vecs16
    UINT64_C(4011853136),	// MVE_VQRSHL_by_vecs32
    UINT64_C(4009755984),	// MVE_VQRSHL_by_vecs8
    UINT64_C(4279240016),	// MVE_VQRSHL_by_vecu16
    UINT64_C(4280288592),	// MVE_VQRSHL_by_vecu32
    UINT64_C(4278191440),	// MVE_VQRSHL_by_vecu8
    UINT64_C(3996589792),	// MVE_VQRSHL_qrs16
    UINT64_C(3996851936),	// MVE_VQRSHL_qrs32
    UINT64_C(3996327648),	// MVE_VQRSHL_qrs8
    UINT64_C(4265025248),	// MVE_VQRSHL_qru16
    UINT64_C(4265287392),	// MVE_VQRSHL_qru32
    UINT64_C(4264763104),	// MVE_VQRSHL_qru8
    UINT64_C(4001894209),	// MVE_VQRSHRNbhs16
    UINT64_C(4002418497),	// MVE_VQRSHRNbhs32
    UINT64_C(4270329665),	// MVE_VQRSHRNbhu16
    UINT64_C(4270853953),	// MVE_VQRSHRNbhu32
    UINT64_C(4001898305),	// MVE_VQRSHRNths16
    UINT64_C(4002422593),	// MVE_VQRSHRNths32
    UINT64_C(4270333761),	// MVE_VQRSHRNthu16
    UINT64_C(4270858049),	// MVE_VQRSHRNthu32
    UINT64_C(4270329792),	// MVE_VQRSHRUNs16bh
    UINT64_C(4270333888),	// MVE_VQRSHRUNs16th
    UINT64_C(4270854080),	// MVE_VQRSHRUNs32bh
    UINT64_C(4270858176),	// MVE_VQRSHRUNs32th
    UINT64_C(4287628880),	// MVE_VQSHLU_imms16
    UINT64_C(4288677456),	// MVE_VQSHLU_imms32
    UINT64_C(4287104592),	// MVE_VQSHLU_imms8
    UINT64_C(4010804304),	// MVE_VQSHL_by_vecs16
    UINT64_C(4011852880),	// MVE_VQSHL_by_vecs32
    UINT64_C(4009755728),	// MVE_VQSHL_by_vecs8
    UINT64_C(4279239760),	// MVE_VQSHL_by_vecu16
    UINT64_C(4280288336),	// MVE_VQSHL_by_vecu32
    UINT64_C(4278191184),	// MVE_VQSHL_by_vecu8
    UINT64_C(3996458720),	// MVE_VQSHL_qrs16
    UINT64_C(3996720864),	// MVE_VQSHL_qrs32
    UINT64_C(3996196576),	// MVE_VQSHL_qrs8
    UINT64_C(4264894176),	// MVE_VQSHL_qru16
    UINT64_C(4265156320),	// MVE_VQSHL_qru32
    UINT64_C(4264632032),	// MVE_VQSHL_qru8
    UINT64_C(4019193680),	// MVE_VQSHLimms16
    UINT64_C(4020242256),	// MVE_VQSHLimms32
    UINT64_C(4018669392),	// MVE_VQSHLimms8
    UINT64_C(4287629136),	// MVE_VQSHLimmu16
    UINT64_C(4288677712),	// MVE_VQSHLimmu32
    UINT64_C(4287104848),	// MVE_VQSHLimmu8
    UINT64_C(4001894208),	// MVE_VQSHRNbhs16
    UINT64_C(4002418496),	// MVE_VQSHRNbhs32
    UINT64_C(4270329664),	// MVE_VQSHRNbhu16
    UINT64_C(4270853952),	// MVE_VQSHRNbhu32
    UINT64_C(4001898304),	// MVE_VQSHRNths16
    UINT64_C(4002422592),	// MVE_VQSHRNths32
    UINT64_C(4270333760),	// MVE_VQSHRNthu16
    UINT64_C(4270858048),	// MVE_VQSHRNthu32
    UINT64_C(4001894336),	// MVE_VQSHRUNs16bh
    UINT64_C(4001898432),	// MVE_VQSHRUNs16th
    UINT64_C(4002418624),	// MVE_VQSHRUNs32bh
    UINT64_C(4002422720),	// MVE_VQSHRUNs32th
    UINT64_C(3994034016),	// MVE_VQSUB_qr_s16
    UINT64_C(3995082592),	// MVE_VQSUB_qr_s32
    UINT64_C(3992985440),	// MVE_VQSUB_qr_s8
    UINT64_C(4262469472),	// MVE_VQSUB_qr_u16
    UINT64_C(4263518048),	// MVE_VQSUB_qr_u32
    UINT64_C(4261420896),	// MVE_VQSUB_qr_u8
    UINT64_C(4010803792),	// MVE_VQSUBs16
    UINT64_C(4011852368),	// MVE_VQSUBs32
    UINT64_C(4009755216),	// MVE_VQSUBs8
    UINT64_C(4279239248),	// MVE_VQSUBu16
    UINT64_C(4280287824),	// MVE_VQSUBu32
    UINT64_C(4278190672),	// MVE_VQSUBu8
    UINT64_C(4289724736),	// MVE_VREV16_8
    UINT64_C(4289986752),	// MVE_VREV32_16
    UINT64_C(4289724608),	// MVE_VREV32_8
    UINT64_C(4289986624),	// MVE_VREV64_16
    UINT64_C(4290248768),	// MVE_VREV64_32
    UINT64_C(4289724480),	// MVE_VREV64_8
    UINT64_C(4010803520),	// MVE_VRHADDs16
    UINT64_C(4011852096),	// MVE_VRHADDs32
    UINT64_C(4009754944),	// MVE_VRHADDs8
    UINT64_C(4279238976),	// MVE_VRHADDu16
    UINT64_C(4280287552),	// MVE_VRHADDu32
    UINT64_C(4278190400),	// MVE_VRHADDu8
    UINT64_C(4290118976),	// MVE_VRINTf16A
    UINT64_C(4290119360),	// MVE_VRINTf16M
    UINT64_C(4290118720),	// MVE_VRINTf16N
    UINT64_C(4290119616),	// MVE_VRINTf16P
    UINT64_C(4290118848),	// MVE_VRINTf16X
    UINT64_C(4290119104),	// MVE_VRINTf16Z
    UINT64_C(4290381120),	// MVE_VRINTf32A
    UINT64_C(4290381504),	// MVE_VRINTf32M
    UINT64_C(4290380864),	// MVE_VRINTf32N
    UINT64_C(4290381760),	// MVE_VRINTf32P
    UINT64_C(4290380992),	// MVE_VRINTf32X
    UINT64_C(4290381248),	// MVE_VRINTf32Z
    UINT64_C(4001369888),	// MVE_VRMLALDAVHas32
    UINT64_C(4269805344),	// MVE_VRMLALDAVHau32
    UINT64_C(4001373984),	// MVE_VRMLALDAVHaxs32
    UINT64_C(4001369856),	// MVE_VRMLALDAVHs32
    UINT64_C(4269805312),	// MVE_VRMLALDAVHu32
    UINT64_C(4001373952),	// MVE_VRMLALDAVHxs32
    UINT64_C(4269805089),	// MVE_VRMLSLDAVHas32
    UINT64_C(4269809185),	// MVE_VRMLSLDAVHaxs32
    UINT64_C(4269805057),	// MVE_VRMLSLDAVHs32
    UINT64_C(4269809153),	// MVE_VRMLSLDAVHxs32
    UINT64_C(3994099201),	// MVE_VRMULHs16
    UINT64_C(3995147777),	// MVE_VRMULHs32
    UINT64_C(3993050625),	// MVE_VRMULHs8
    UINT64_C(4262534657),	// MVE_VRMULHu16
    UINT64_C(4263583233),	// MVE_VRMULHu32
    UINT64_C(4261486081),	// MVE_VRMULHu8
    UINT64_C(4010804544),	// MVE_VRSHL_by_vecs16
    UINT64_C(4011853120),	// MVE_VRSHL_by_vecs32
    UINT64_C(4009755968),	// MVE_VRSHL_by_vecs8
    UINT64_C(4279240000),	// MVE_VRSHL_by_vecu16
    UINT64_C(4280288576),	// MVE_VRSHL_by_vecu32
    UINT64_C(4278191424),	// MVE_VRSHL_by_vecu8
    UINT64_C(3996589664),	// MVE_VRSHL_qrs16
    UINT64_C(3996851808),	// MVE_VRSHL_qrs32
    UINT64_C(3996327520),	// MVE_VRSHL_qrs8
    UINT64_C(4265025120),	// MVE_VRSHL_qru16
    UINT64_C(4265287264),	// MVE_VRSHL_qru32
    UINT64_C(4264762976),	// MVE_VRSHL_qru8
    UINT64_C(4270329793),	// MVE_VRSHRNi16bh
    UINT64_C(4270333889),	// MVE_VRSHRNi16th
    UINT64_C(4270854081),	// MVE_VRSHRNi32bh
    UINT64_C(4270858177),	// MVE_VRSHRNi32th
    UINT64_C(4019192400),	// MVE_VRSHR_imms16
    UINT64_C(4020240976),	// MVE_VRSHR_imms32
    UINT64_C(4018668112),	// MVE_VRSHR_imms8
    UINT64_C(4287627856),	// MVE_VRSHR_immu16
    UINT64_C(4288676432),	// MVE_VRSHR_immu32
    UINT64_C(4287103568),	// MVE_VRSHR_immu8
    UINT64_C(4264562432),	// MVE_VSBC
    UINT64_C(4264566528),	// MVE_VSBCI
    UINT64_C(4003467200),	// MVE_VSHLC
    UINT64_C(4004515648),	// MVE_VSHLL_imms16bh
    UINT64_C(4004519744),	// MVE_VSHLL_imms16th
    UINT64_C(4003991360),	// MVE_VSHLL_imms8bh
    UINT64_C(4003995456),	// MVE_VSHLL_imms8th
    UINT64_C(4272951104),	// MVE_VSHLL_immu16bh
    UINT64_C(4272955200),	// MVE_VSHLL_immu16th
    UINT64_C(4272426816),	// MVE_VSHLL_immu8bh
    UINT64_C(4272430912),	// MVE_VSHLL_immu8th
    UINT64_C(3996454401),	// MVE_VSHLL_lws16bh
    UINT64_C(3996458497),	// MVE_VSHLL_lws16th
    UINT64_C(3996192257),	// MVE_VSHLL_lws8bh
    UINT64_C(3996196353),	// MVE_VSHLL_lws8th
    UINT64_C(4264889857),	// MVE_VSHLL_lwu16bh
    UINT64_C(4264893953),	// MVE_VSHLL_lwu16th
    UINT64_C(4264627713),	// MVE_VSHLL_lwu8bh
    UINT64_C(4264631809),	// MVE_VSHLL_lwu8th
    UINT64_C(4010804288),	// MVE_VSHL_by_vecs16
    UINT64_C(4011852864),	// MVE_VSHL_by_vecs32
    UINT64_C(4009755712),	// MVE_VSHL_by_vecs8
    UINT64_C(4279239744),	// MVE_VSHL_by_vecu16
    UINT64_C(4280288320),	// MVE_VSHL_by_vecu32
    UINT64_C(4278191168),	// MVE_VSHL_by_vecu8
    UINT64_C(4019193168),	// MVE_VSHL_immi16
    UINT64_C(4020241744),	// MVE_VSHL_immi32
    UINT64_C(4018668880),	// MVE_VSHL_immi8
    UINT64_C(3996458592),	// MVE_VSHL_qrs16
    UINT64_C(3996720736),	// MVE_VSHL_qrs32
    UINT64_C(3996196448),	// MVE_VSHL_qrs8
    UINT64_C(4264894048),	// MVE_VSHL_qru16
    UINT64_C(4265156192),	// MVE_VSHL_qru32
    UINT64_C(4264631904),	// MVE_VSHL_qru8
    UINT64_C(4001894337),	// MVE_VSHRNi16bh
    UINT64_C(4001898433),	// MVE_VSHRNi16th
    UINT64_C(4002418625),	// MVE_VSHRNi32bh
    UINT64_C(4002422721),	// MVE_VSHRNi32th
    UINT64_C(4019191888),	// MVE_VSHR_imms16
    UINT64_C(4020240464),	// MVE_VSHR_imms32
    UINT64_C(4018667600),	// MVE_VSHR_imms8
    UINT64_C(4287627344),	// MVE_VSHR_immu16
    UINT64_C(4288675920),	// MVE_VSHR_immu32
    UINT64_C(4287103056),	// MVE_VSHR_immu8
    UINT64_C(4287628624),	// MVE_VSLIimm16
    UINT64_C(4288677200),	// MVE_VSLIimm32
    UINT64_C(4287104336),	// MVE_VSLIimm8
    UINT64_C(4287628368),	// MVE_VSRIimm16
    UINT64_C(4288676944),	// MVE_VSRIimm32
    UINT64_C(4287104080),	// MVE_VSRIimm8
    UINT64_C(4236254848),	// MVE_VST20_16
    UINT64_C(4238352000),	// MVE_VST20_16_wb
    UINT64_C(4236254976),	// MVE_VST20_32
    UINT64_C(4238352128),	// MVE_VST20_32_wb
    UINT64_C(4236254720),	// MVE_VST20_8
    UINT64_C(4238351872),	// MVE_VST20_8_wb
    UINT64_C(4236254880),	// MVE_VST21_16
    UINT64_C(4238352032),	// MVE_VST21_16_wb
    UINT64_C(4236255008),	// MVE_VST21_32
    UINT64_C(4238352160),	// MVE_VST21_32_wb
    UINT64_C(4236254752),	// MVE_VST21_8
    UINT64_C(4238351904),	// MVE_VST21_8_wb
    UINT64_C(4236254849),	// MVE_VST40_16
    UINT64_C(4238352001),	// MVE_VST40_16_wb
    UINT64_C(4236254977),	// MVE_VST40_32
    UINT64_C(4238352129),	// MVE_VST40_32_wb
    UINT64_C(4236254721),	// MVE_VST40_8
    UINT64_C(4238351873),	// MVE_VST40_8_wb
    UINT64_C(4236254881),	// MVE_VST41_16
    UINT64_C(4238352033),	// MVE_VST41_16_wb
    UINT64_C(4236255009),	// MVE_VST41_32
    UINT64_C(4238352161),	// MVE_VST41_32_wb
    UINT64_C(4236254753),	// MVE_VST41_8
    UINT64_C(4238351905),	// MVE_VST41_8_wb
    UINT64_C(4236254913),	// MVE_VST42_16
    UINT64_C(4238352065),	// MVE_VST42_16_wb
    UINT64_C(4236255041),	// MVE_VST42_32
    UINT64_C(4238352193),	// MVE_VST42_32_wb
    UINT64_C(4236254785),	// MVE_VST42_8
    UINT64_C(4238351937),	// MVE_VST42_8_wb
    UINT64_C(4236254945),	// MVE_VST43_16
    UINT64_C(4238352097),	// MVE_VST43_16_wb
    UINT64_C(4236255073),	// MVE_VST43_32
    UINT64_C(4238352225),	// MVE_VST43_32_wb
    UINT64_C(4236254817),	// MVE_VST43_8
    UINT64_C(4238351969),	// MVE_VST43_8_wb
    UINT64_C(3976203904),	// MVE_VSTRB16
    UINT64_C(3961523840),	// MVE_VSTRB16_post
    UINT64_C(3978301056),	// MVE_VSTRB16_pre
    UINT64_C(3967815296),	// MVE_VSTRB16_rq
    UINT64_C(3976204032),	// MVE_VSTRB32
    UINT64_C(3961523968),	// MVE_VSTRB32_post
    UINT64_C(3978301184),	// MVE_VSTRB32_pre
    UINT64_C(3967815424),	// MVE_VSTRB32_rq
    UINT64_C(3967815168),	// MVE_VSTRB8_rq
    UINT64_C(3976207872),	// MVE_VSTRBU8
    UINT64_C(3961527808),	// MVE_VSTRBU8_post
    UINT64_C(3978305024),	// MVE_VSTRBU8_pre
    UINT64_C(4244643584),	// MVE_VSTRD64_qi
    UINT64_C(4246740736),	// MVE_VSTRD64_qi_pre
    UINT64_C(3967815633),	// MVE_VSTRD64_rq
    UINT64_C(3967815632),	// MVE_VSTRD64_rq_u
    UINT64_C(3967815313),	// MVE_VSTRH16_rq
    UINT64_C(3967815312),	// MVE_VSTRH16_rq_u
    UINT64_C(3976728320),	// MVE_VSTRH32
    UINT64_C(3962048256),	// MVE_VSTRH32_post
    UINT64_C(3978825472),	// MVE_VSTRH32_pre
    UINT64_C(3967815441),	// MVE_VSTRH32_rq
    UINT64_C(3967815440),	// MVE_VSTRH32_rq_u
    UINT64_C(3976208000),	// MVE_VSTRHU16
    UINT64_C(3961527936),	// MVE_VSTRHU16_post
    UINT64_C(3978305152),	// MVE_VSTRHU16_pre
    UINT64_C(4244643328),	// MVE_VSTRW32_qi
    UINT64_C(4246740480),	// MVE_VSTRW32_qi_pre
    UINT64_C(3967815489),	// MVE_VSTRW32_rq
    UINT64_C(3967815488),	// MVE_VSTRW32_rq_u
    UINT64_C(3976208128),	// MVE_VSTRWU32
    UINT64_C(3961528064),	// MVE_VSTRWU32_post
    UINT64_C(3978305280),	// MVE_VSTRWU32_pre
    UINT64_C(4264566592),	// MVE_VSUB_qr_f16
    UINT64_C(3996131136),	// MVE_VSUB_qr_f32
    UINT64_C(3994099520),	// MVE_VSUB_qr_i16
    UINT64_C(3995148096),	// MVE_VSUB_qr_i32
    UINT64_C(3993050944),	// MVE_VSUB_qr_i8
    UINT64_C(4012903744),	// MVE_VSUBf16
    UINT64_C(4011855168),	// MVE_VSUBf32
    UINT64_C(4279240768),	// MVE_VSUBi16
    UINT64_C(4280289344),	// MVE_VSUBi32
    UINT64_C(4278192192),	// MVE_VSUBi8
    UINT64_C(4027629569),	// MVE_WLSTP_16
    UINT64_C(4028678145),	// MVE_WLSTP_32
    UINT64_C(4029726721),	// MVE_WLSTP_64
    UINT64_C(4026580993),	// MVE_WLSTP_8
    UINT64_C(65011712),	// MVNi
    UINT64_C(31457280),	// MVNr
    UINT64_C(31457280),	// MVNsi
    UINT64_C(31457296),	// MVNsr
    UINT64_C(4076867344),	// NEON_VMAXNMNDf
    UINT64_C(4077915920),	// NEON_VMAXNMNDh
    UINT64_C(4076867408),	// NEON_VMAXNMNQf
    UINT64_C(4077915984),	// NEON_VMAXNMNQh
    UINT64_C(4078964496),	// NEON_VMINNMNDf
    UINT64_C(4080013072),	// NEON_VMINNMNDh
    UINT64_C(4078964560),	// NEON_VMINNMNQf
    UINT64_C(4080013136),	// NEON_VMINNMNQh
    UINT64_C(58720256),	// ORRri
    UINT64_C(25165824),	// ORRrr
    UINT64_C(25165824),	// ORRrsi
    UINT64_C(25165840),	// ORRrsr
    UINT64_C(109051920),	// PKHBT
    UINT64_C(109051984),	// PKHTB
    UINT64_C(4111527936),	// PLDWi12
    UINT64_C(4145082368),	// PLDWrs
    UINT64_C(4115722240),	// PLDi12
    UINT64_C(4149276672),	// PLDrs
    UINT64_C(4098945024),	// PLIi12
    UINT64_C(4132499456),	// PLIrs
    UINT64_C(16777296),	// QADD
    UINT64_C(102764304),	// QADD16
    UINT64_C(102764432),	// QADD8
    UINT64_C(102764336),	// QASX
    UINT64_C(20971600),	// QDADD
    UINT64_C(23068752),	// QDSUB
    UINT64_C(102764368),	// QSAX
    UINT64_C(18874448),	// QSUB
    UINT64_C(102764400),	// QSUB16
    UINT64_C(102764528),	// QSUB8
    UINT64_C(117378864),	// RBIT
    UINT64_C(113184560),	// REV
    UINT64_C(113184688),	// REV16
    UINT64_C(117378992),	// REVSH
    UINT64_C(4161800704),	// RFEDA
    UINT64_C(4163897856),	// RFEDA_UPD
    UINT64_C(4178577920),	// RFEDB
    UINT64_C(4180675072),	// RFEDB_UPD
    UINT64_C(4170189312),	// RFEIA
    UINT64_C(4172286464),	// RFEIA_UPD
    UINT64_C(4186966528),	// RFEIB
    UINT64_C(4189063680),	// RFEIB_UPD
    UINT64_C(39845888),	// RSBri
    UINT64_C(6291456),	// RSBrr
    UINT64_C(6291456),	// RSBrsi
    UINT64_C(6291472),	// RSBrsr
    UINT64_C(48234496),	// RSCri
    UINT64_C(14680064),	// RSCrr
    UINT64_C(14680064),	// RSCrsi
    UINT64_C(14680080),	// RSCrsr
    UINT64_C(101715728),	// SADD16
    UINT64_C(101715856),	// SADD8
    UINT64_C(101715760),	// SASX
    UINT64_C(4118802544),	// SB
    UINT64_C(46137344),	// SBCri
    UINT64_C(12582912),	// SBCrr
    UINT64_C(12582912),	// SBCrsi
    UINT64_C(12582928),	// SBCrsr
    UINT64_C(127926352),	// SBFX
    UINT64_C(118550544),	// SDIV
    UINT64_C(109055920),	// SEL
    UINT64_C(4043374592),	// SETEND
    UINT64_C(4044357632),	// SETPAN
    UINT64_C(4060089408),	// SHA1C
    UINT64_C(4088988352),	// SHA1H
    UINT64_C(4062186560),	// SHA1M
    UINT64_C(4061137984),	// SHA1P
    UINT64_C(4063235136),	// SHA1SU0
    UINT64_C(4089054080),	// SHA1SU1
    UINT64_C(4076866624),	// SHA256H
    UINT64_C(4077915200),	// SHA256H2
    UINT64_C(4089054144),	// SHA256SU0
    UINT64_C(4078963776),	// SHA256SU1
    UINT64_C(103812880),	// SHADD16
    UINT64_C(103813008),	// SHADD8
    UINT64_C(103812912),	// SHASX
    UINT64_C(103812944),	// SHSAX
    UINT64_C(103812976),	// SHSUB16
    UINT64_C(103813104),	// SHSUB8
    UINT64_C(23068784),	// SMC
    UINT64_C(16777344),	// SMLABB
    UINT64_C(16777408),	// SMLABT
    UINT64_C(117440528),	// SMLAD
    UINT64_C(117440560),	// SMLADX
    UINT64_C(14680208),	// SMLAL
    UINT64_C(20971648),	// SMLALBB
    UINT64_C(20971712),	// SMLALBT
    UINT64_C(121634832),	// SMLALD
    UINT64_C(121634864),	// SMLALDX
    UINT64_C(20971680),	// SMLALTB
    UINT64_C(20971744),	// SMLALTT
    UINT64_C(16777376),	// SMLATB
    UINT64_C(16777440),	// SMLATT
    UINT64_C(18874496),	// SMLAWB
    UINT64_C(18874560),	// SMLAWT
    UINT64_C(117440592),	// SMLSD
    UINT64_C(117440624),	// SMLSDX
    UINT64_C(121634896),	// SMLSLD
    UINT64_C(121634928),	// SMLSLDX
    UINT64_C(122683408),	// SMMLA
    UINT64_C(122683440),	// SMMLAR
    UINT64_C(122683600),	// SMMLS
    UINT64_C(122683632),	// SMMLSR
    UINT64_C(122744848),	// SMMUL
    UINT64_C(122744880),	// SMMULR
    UINT64_C(117501968),	// SMUAD
    UINT64_C(117502000),	// SMUADX
    UINT64_C(23068800),	// SMULBB
    UINT64_C(23068864),	// SMULBT
    UINT64_C(12583056),	// SMULL
    UINT64_C(23068832),	// SMULTB
    UINT64_C(23068896),	// SMULTT
    UINT64_C(18874528),	// SMULWB
    UINT64_C(18874592),	// SMULWT
    UINT64_C(117502032),	// SMUSD
    UINT64_C(117502064),	// SMUSDX
    UINT64_C(4165797120),	// SRSDA
    UINT64_C(4167894272),	// SRSDA_UPD
    UINT64_C(4182574336),	// SRSDB
    UINT64_C(4184671488),	// SRSDB_UPD
    UINT64_C(4174185728),	// SRSIA
    UINT64_C(4176282880),	// SRSIA_UPD
    UINT64_C(4190962944),	// SRSIB
    UINT64_C(4193060096),	// SRSIB_UPD
    UINT64_C(111149072),	// SSAT
    UINT64_C(111152944),	// SSAT16
    UINT64_C(101715792),	// SSAX
    UINT64_C(101715824),	// SSUB16
    UINT64_C(101715952),	// SSUB8
    UINT64_C(4248829952),	// STC2L_OFFSET
    UINT64_C(4240441344),	// STC2L_OPTION
    UINT64_C(4234149888),	// STC2L_POST
    UINT64_C(4250927104),	// STC2L_PRE
    UINT64_C(4244635648),	// STC2_OFFSET
    UINT64_C(4236247040),	// STC2_OPTION
    UINT64_C(4229955584),	// STC2_POST
    UINT64_C(4246732800),	// STC2_PRE
    UINT64_C(222298112),	// STCL_OFFSET
    UINT64_C(213909504),	// STCL_OPTION
    UINT64_C(207618048),	// STCL_POST
    UINT64_C(224395264),	// STCL_PRE
    UINT64_C(218103808),	// STC_OFFSET
    UINT64_C(209715200),	// STC_OPTION
    UINT64_C(203423744),	// STC_POST
    UINT64_C(220200960),	// STC_PRE
    UINT64_C(25230480),	// STL
    UINT64_C(29424784),	// STLB
    UINT64_C(25169552),	// STLEX
    UINT64_C(29363856),	// STLEXB
    UINT64_C(27266704),	// STLEXD
    UINT64_C(31461008),	// STLEXH
    UINT64_C(31521936),	// STLH
    UINT64_C(134217728),	// STMDA
    UINT64_C(136314880),	// STMDA_UPD
    UINT64_C(150994944),	// STMDB
    UINT64_C(153092096),	// STMDB_UPD
    UINT64_C(142606336),	// STMIA
    UINT64_C(144703488),	// STMIA_UPD
    UINT64_C(159383552),	// STMIB
    UINT64_C(161480704),	// STMIB_UPD
    UINT64_C(73400320),	// STRBT_POST_IMM
    UINT64_C(106954752),	// STRBT_POST_REG
    UINT64_C(71303168),	// STRB_POST_IMM
    UINT64_C(104857600),	// STRB_POST_REG
    UINT64_C(90177536),	// STRB_PRE_IMM
    UINT64_C(123731968),	// STRB_PRE_REG
    UINT64_C(88080384),	// STRBi12
    UINT64_C(121634816),	// STRBrs
    UINT64_C(16777456),	// STRD
    UINT64_C(240),	// STRD_POST
    UINT64_C(18874608),	// STRD_PRE
    UINT64_C(25169808),	// STREX
    UINT64_C(29364112),	// STREXB
    UINT64_C(27266960),	// STREXD
    UINT64_C(31461264),	// STREXH
    UINT64_C(16777392),	// STRH
    UINT64_C(6291632),	// STRHTi
    UINT64_C(2097328),	// STRHTr
    UINT64_C(176),	// STRH_POST
    UINT64_C(18874544),	// STRH_PRE
    UINT64_C(69206016),	// STRT_POST_IMM
    UINT64_C(102760448),	// STRT_POST_REG
    UINT64_C(67108864),	// STR_POST_IMM
    UINT64_C(100663296),	// STR_POST_REG
    UINT64_C(85983232),	// STR_PRE_IMM
    UINT64_C(119537664),	// STR_PRE_REG
    UINT64_C(83886080),	// STRi12
    UINT64_C(117440512),	// STRrs
    UINT64_C(37748736),	// SUBri
    UINT64_C(4194304),	// SUBrr
    UINT64_C(4194304),	// SUBrsi
    UINT64_C(4194320),	// SUBrsr
    UINT64_C(251658240),	// SVC
    UINT64_C(16777360),	// SWP
    UINT64_C(20971664),	// SWPB
    UINT64_C(111149168),	// SXTAB
    UINT64_C(109052016),	// SXTAB16
    UINT64_C(112197744),	// SXTAH
    UINT64_C(112132208),	// SXTB
    UINT64_C(110035056),	// SXTB16
    UINT64_C(113180784),	// SXTH
    UINT64_C(53477376),	// TEQri
    UINT64_C(19922944),	// TEQrr
    UINT64_C(19922944),	// TEQrsi
    UINT64_C(19922960),	// TEQrsr
    UINT64_C(3892305662),	// TRAP
    UINT64_C(3892240112),	// TRAPNaCl
    UINT64_C(3810586642),	// TSB
    UINT64_C(51380224),	// TSTri
    UINT64_C(17825792),	// TSTrr
    UINT64_C(17825792),	// TSTrsi
    UINT64_C(17825808),	// TSTrsr
    UINT64_C(105910032),	// UADD16
    UINT64_C(105910160),	// UADD8
    UINT64_C(105910064),	// UASX
    UINT64_C(132120656),	// UBFX
    UINT64_C(3891265776),	// UDF
    UINT64_C(120647696),	// UDIV
    UINT64_C(108007184),	// UHADD16
    UINT64_C(108007312),	// UHADD8
    UINT64_C(108007216),	// UHASX
    UINT64_C(108007248),	// UHSAX
    UINT64_C(108007280),	// UHSUB16
    UINT64_C(108007408),	// UHSUB8
    UINT64_C(4194448),	// UMAAL
    UINT64_C(10485904),	// UMLAL
    UINT64_C(8388752),	// UMULL
    UINT64_C(106958608),	// UQADD16
    UINT64_C(106958736),	// UQADD8
    UINT64_C(106958640),	// UQASX
    UINT64_C(106958672),	// UQSAX
    UINT64_C(106958704),	// UQSUB16
    UINT64_C(106958832),	// UQSUB8
    UINT64_C(125890576),	// USAD8
    UINT64_C(125829136),	// USADA8
    UINT64_C(115343376),	// USAT
    UINT64_C(115347248),	// USAT16
    UINT64_C(105910096),	// USAX
    UINT64_C(105910128),	// USUB16
    UINT64_C(105910256),	// USUB8
    UINT64_C(115343472),	// UXTAB
    UINT64_C(113246320),	// UXTAB16
    UINT64_C(116392048),	// UXTAH
    UINT64_C(116326512),	// UXTB
    UINT64_C(114229360),	// UXTB16
    UINT64_C(117375088),	// UXTH
    UINT64_C(4070573312),	// VABALsv2i64
    UINT64_C(4069524736),	// VABALsv4i32
    UINT64_C(4068476160),	// VABALsv8i16
    UINT64_C(4087350528),	// VABALuv2i64
    UINT64_C(4086301952),	// VABALuv4i32
    UINT64_C(4085253376),	// VABALuv8i16
    UINT64_C(4060088144),	// VABAsv16i8
    UINT64_C(4062185232),	// VABAsv2i32
    UINT64_C(4061136656),	// VABAsv4i16
    UINT64_C(4062185296),	// VABAsv4i32
    UINT64_C(4061136720),	// VABAsv8i16
    UINT64_C(4060088080),	// VABAsv8i8
    UINT64_C(4076865360),	// VABAuv16i8
    UINT64_C(4078962448),	// VABAuv2i32
    UINT64_C(4077913872),	// VABAuv4i16
    UINT64_C(4078962512),	// VABAuv4i32
    UINT64_C(4077913936),	// VABAuv8i16
    UINT64_C(4076865296),	// VABAuv8i8
    UINT64_C(4070573824),	// VABDLsv2i64
    UINT64_C(4069525248),	// VABDLsv4i32
    UINT64_C(4068476672),	// VABDLsv8i16
    UINT64_C(4087351040),	// VABDLuv2i64
    UINT64_C(4086302464),	// VABDLuv4i32
    UINT64_C(4085253888),	// VABDLuv8i16
    UINT64_C(4078963968),	// VABDfd
    UINT64_C(4078964032),	// VABDfq
    UINT64_C(4080012544),	// VABDhd
    UINT64_C(4080012608),	// VABDhq
    UINT64_C(4060088128),	// VABDsv16i8
    UINT64_C(4062185216),	// VABDsv2i32
    UINT64_C(4061136640),	// VABDsv4i16
    UINT64_C(4062185280),	// VABDsv4i32
    UINT64_C(4061136704),	// VABDsv8i16
    UINT64_C(4060088064),	// VABDsv8i8
    UINT64_C(4076865344),	// VABDuv16i8
    UINT64_C(4078962432),	// VABDuv2i32
    UINT64_C(4077913856),	// VABDuv4i16
    UINT64_C(4078962496),	// VABDuv4i32
    UINT64_C(4077913920),	// VABDuv8i16
    UINT64_C(4076865280),	// VABDuv8i8
    UINT64_C(246418368),	// VABSD
    UINT64_C(246417856),	// VABSH
    UINT64_C(246418112),	// VABSS
    UINT64_C(4088989440),	// VABSfd
    UINT64_C(4088989504),	// VABSfq
    UINT64_C(4088727296),	// VABShd
    UINT64_C(4088727360),	// VABShq
    UINT64_C(4088464192),	// VABSv16i8
    UINT64_C(4088988416),	// VABSv2i32
    UINT64_C(4088726272),	// VABSv4i16
    UINT64_C(4088988480),	// VABSv4i32
    UINT64_C(4088726336),	// VABSv8i16
    UINT64_C(4088464128),	// VABSv8i8
    UINT64_C(4076867088),	// VACGEfd
    UINT64_C(4076867152),	// VACGEfq
    UINT64_C(4077915664),	// VACGEhd
    UINT64_C(4077915728),	// VACGEhq
    UINT64_C(4078964240),	// VACGTfd
    UINT64_C(4078964304),	// VACGTfq
    UINT64_C(4080012816),	// VACGThd
    UINT64_C(4080012880),	// VACGThq
    UINT64_C(238029568),	// VADDD
    UINT64_C(238029056),	// VADDH
    UINT64_C(4070573056),	// VADDHNv2i32
    UINT64_C(4069524480),	// VADDHNv4i16
    UINT64_C(4068475904),	// VADDHNv8i8
    UINT64_C(4070572032),	// VADDLsv2i64
    UINT64_C(4069523456),	// VADDLsv4i32
    UINT64_C(4068474880),	// VADDLsv8i16
    UINT64_C(4087349248),	// VADDLuv2i64
    UINT64_C(4086300672),	// VADDLuv4i32
    UINT64_C(4085252096),	// VADDLuv8i16
    UINT64_C(238029312),	// VADDS
    UINT64_C(4070572288),	// VADDWsv2i64
    UINT64_C(4069523712),	// VADDWsv4i32
    UINT64_C(4068475136),	// VADDWsv8i16
    UINT64_C(4087349504),	// VADDWuv2i64
    UINT64_C(4086300928),	// VADDWuv4i32
    UINT64_C(4085252352),	// VADDWuv8i16
    UINT64_C(4060089600),	// VADDfd
    UINT64_C(4060089664),	// VADDfq
    UINT64_C(4061138176),	// VADDhd
    UINT64_C(4061138240),	// VADDhq
    UINT64_C(4060088384),	// VADDv16i8
    UINT64_C(4063234048),	// VADDv1i64
    UINT64_C(4062185472),	// VADDv2i32
    UINT64_C(4063234112),	// VADDv2i64
    UINT64_C(4061136896),	// VADDv4i16
    UINT64_C(4062185536),	// VADDv4i32
    UINT64_C(4061136960),	// VADDv8i16
    UINT64_C(4060088320),	// VADDv8i8
    UINT64_C(4060086544),	// VANDd
    UINT64_C(4060086608),	// VANDq
    UINT64_C(4231006224),	// VBF16MALBQ
    UINT64_C(4264560656),	// VBF16MALBQI
    UINT64_C(4231006288),	// VBF16MALTQ
    UINT64_C(4264560720),	// VBF16MALTQI
    UINT64_C(4061135120),	// VBICd
    UINT64_C(4068475184),	// VBICiv2i32
    UINT64_C(4068477232),	// VBICiv4i16
    UINT64_C(4068475248),	// VBICiv4i32
    UINT64_C(4068477296),	// VBICiv8i16
    UINT64_C(4061135184),	// VBICq
    UINT64_C(4080009488),	// VBIFd
    UINT64_C(4080009552),	// VBIFq
    UINT64_C(4078960912),	// VBITd
    UINT64_C(4078960976),	// VBITq
    UINT64_C(4077912336),	// VBSLd
    UINT64_C(4077912400),	// VBSLq
    UINT64_C(0),	// VBSPd
    UINT64_C(0),	// VBSPq
    UINT64_C(4237297664),	// VCADDv2f32
    UINT64_C(4236249088),	// VCADDv4f16
    UINT64_C(4237297728),	// VCADDv4f32
    UINT64_C(4236249152),	// VCADDv8f16
    UINT64_C(4060089856),	// VCEQfd
    UINT64_C(4060089920),	// VCEQfq
    UINT64_C(4061138432),	// VCEQhd
    UINT64_C(4061138496),	// VCEQhq
    UINT64_C(4076865616),	// VCEQv16i8
    UINT64_C(4078962704),	// VCEQv2i32
    UINT64_C(4077914128),	// VCEQv4i16
    UINT64_C(4078962768),	// VCEQv4i32
    UINT64_C(4077914192),	// VCEQv8i16
    UINT64_C(4076865552),	// VCEQv8i8
    UINT64_C(4088463680),	// VCEQzv16i8
    UINT64_C(4088988928),	// VCEQzv2f32
    UINT64_C(4088987904),	// VCEQzv2i32
    UINT64_C(4088726784),	// VCEQzv4f16
    UINT64_C(4088988992),	// VCEQzv4f32
    UINT64_C(4088725760),	// VCEQzv4i16
    UINT64_C(4088987968),	// VCEQzv4i32
    UINT64_C(4088726848),	// VCEQzv8f16
    UINT64_C(4088725824),	// VCEQzv8i16
    UINT64_C(4088463616),	// VCEQzv8i8
    UINT64_C(4076867072),	// VCGEfd
    UINT64_C(4076867136),	// VCGEfq
    UINT64_C(4077915648),	// VCGEhd
    UINT64_C(4077915712),	// VCGEhq
    UINT64_C(4060087120),	// VCGEsv16i8
    UINT64_C(4062184208),	// VCGEsv2i32
    UINT64_C(4061135632),	// VCGEsv4i16
    UINT64_C(4062184272),	// VCGEsv4i32
    UINT64_C(4061135696),	// VCGEsv8i16
    UINT64_C(4060087056),	// VCGEsv8i8
    UINT64_C(4076864336),	// VCGEuv16i8
    UINT64_C(4078961424),	// VCGEuv2i32
    UINT64_C(4077912848),	// VCGEuv4i16
    UINT64_C(4078961488),	// VCGEuv4i32
    UINT64_C(4077912912),	// VCGEuv8i16
    UINT64_C(4076864272),	// VCGEuv8i8
    UINT64_C(4088463552),	// VCGEzv16i8
    UINT64_C(4088988800),	// VCGEzv2f32
    UINT64_C(4088987776),	// VCGEzv2i32
    UINT64_C(4088726656),	// VCGEzv4f16
    UINT64_C(4088988864),	// VCGEzv4f32
    UINT64_C(4088725632),	// VCGEzv4i16
    UINT64_C(4088987840),	// VCGEzv4i32
    UINT64_C(4088726720),	// VCGEzv8f16
    UINT64_C(4088725696),	// VCGEzv8i16
    UINT64_C(4088463488),	// VCGEzv8i8
    UINT64_C(4078964224),	// VCGTfd
    UINT64_C(4078964288),	// VCGTfq
    UINT64_C(4080012800),	// VCGThd
    UINT64_C(4080012864),	// VCGThq
    UINT64_C(4060087104),	// VCGTsv16i8
    UINT64_C(4062184192),	// VCGTsv2i32
    UINT64_C(4061135616),	// VCGTsv4i16
    UINT64_C(4062184256),	// VCGTsv4i32
    UINT64_C(4061135680),	// VCGTsv8i16
    UINT64_C(4060087040),	// VCGTsv8i8
    UINT64_C(4076864320),	// VCGTuv16i8
    UINT64_C(4078961408),	// VCGTuv2i32
    UINT64_C(4077912832),	// VCGTuv4i16
    UINT64_C(4078961472),	// VCGTuv4i32
    UINT64_C(4077912896),	// VCGTuv8i16
    UINT64_C(4076864256),	// VCGTuv8i8
    UINT64_C(4088463424),	// VCGTzv16i8
    UINT64_C(4088988672),	// VCGTzv2f32
    UINT64_C(4088987648),	// VCGTzv2i32
    UINT64_C(4088726528),	// VCGTzv4f16
    UINT64_C(4088988736),	// VCGTzv4f32
    UINT64_C(4088725504),	// VCGTzv4i16
    UINT64_C(4088987712),	// VCGTzv4i32
    UINT64_C(4088726592),	// VCGTzv8f16
    UINT64_C(4088725568),	// VCGTzv8i16
    UINT64_C(4088463360),	// VCGTzv8i8
    UINT64_C(4088463808),	// VCLEzv16i8
    UINT64_C(4088989056),	// VCLEzv2f32
    UINT64_C(4088988032),	// VCLEzv2i32
    UINT64_C(4088726912),	// VCLEzv4f16
    UINT64_C(4088989120),	// VCLEzv4f32
    UINT64_C(4088725888),	// VCLEzv4i16
    UINT64_C(4088988096),	// VCLEzv4i32
    UINT64_C(4088726976),	// VCLEzv8f16
    UINT64_C(4088725952),	// VCLEzv8i16
    UINT64_C(4088463744),	// VCLEzv8i8
    UINT64_C(4088398912),	// VCLSv16i8
    UINT64_C(4088923136),	// VCLSv2i32
    UINT64_C(4088660992),	// VCLSv4i16
    UINT64_C(4088923200),	// VCLSv4i32
    UINT64_C(4088661056),	// VCLSv8i16
    UINT64_C(4088398848),	// VCLSv8i8
    UINT64_C(4088463936),	// VCLTzv16i8
    UINT64_C(4088989184),	// VCLTzv2f32
    UINT64_C(4088988160),	// VCLTzv2i32
    UINT64_C(4088727040),	// VCLTzv4f16
    UINT64_C(4088989248),	// VCLTzv4f32
    UINT64_C(4088726016),	// VCLTzv4i16
    UINT64_C(4088988224),	// VCLTzv4i32
    UINT64_C(4088727104),	// VCLTzv8f16
    UINT64_C(4088726080),	// VCLTzv8i16
    UINT64_C(4088463872),	// VCLTzv8i8
    UINT64_C(4088399040),	// VCLZv16i8
    UINT64_C(4088923264),	// VCLZv2i32
    UINT64_C(4088661120),	// VCLZv4i16
    UINT64_C(4088923328),	// VCLZv4i32
    UINT64_C(4088661184),	// VCLZv8i16
    UINT64_C(4088398976),	// VCLZv8i8
    UINT64_C(4231006208),	// VCMLAv2f32
    UINT64_C(4269803520),	// VCMLAv2f32_indexed
    UINT64_C(4229957632),	// VCMLAv4f16
    UINT64_C(4261414912),	// VCMLAv4f16_indexed
    UINT64_C(4231006272),	// VCMLAv4f32
    UINT64_C(4269803584),	// VCMLAv4f32_indexed
    UINT64_C(4229957696),	// VCMLAv8f16
    UINT64_C(4261414976),	// VCMLAv8f16_indexed
    UINT64_C(246680384),	// VCMPD
    UINT64_C(246680512),	// VCMPED
    UINT64_C(246680000),	// VCMPEH
    UINT64_C(246680256),	// VCMPES
    UINT64_C(246746048),	// VCMPEZD
    UINT64_C(246745536),	// VCMPEZH
    UINT64_C(246745792),	// VCMPEZS
    UINT64_C(246679872),	// VCMPH
    UINT64_C(246680128),	// VCMPS
    UINT64_C(246745920),	// VCMPZD
    UINT64_C(246745408),	// VCMPZH
    UINT64_C(246745664),	// VCMPZS
    UINT64_C(4088399104),	// VCNTd
    UINT64_C(4088399168),	// VCNTq
    UINT64_C(4089118720),	// VCVTANSDf
    UINT64_C(4088856576),	// VCVTANSDh
    UINT64_C(4089118784),	// VCVTANSQf
    UINT64_C(4088856640),	// VCVTANSQh
    UINT64_C(4089118848),	// VCVTANUDf
    UINT64_C(4088856704),	// VCVTANUDh
    UINT64_C(4089118912),	// VCVTANUQf
    UINT64_C(4088856768),	// VCVTANUQh
    UINT64_C(4273736640),	// VCVTASD
    UINT64_C(4273736128),	// VCVTASH
    UINT64_C(4273736384),	// VCVTASS
    UINT64_C(4273736512),	// VCVTAUD
    UINT64_C(4273736000),	// VCVTAUH
    UINT64_C(4273736256),	// VCVTAUS
    UINT64_C(246614848),	// VCVTBDH
    UINT64_C(246549312),	// VCVTBHD
    UINT64_C(246549056),	// VCVTBHS
    UINT64_C(246614592),	// VCVTBSH
    UINT64_C(246876864),	// VCVTDS
    UINT64_C(4089119488),	// VCVTMNSDf
    UINT64_C(4088857344),	// VCVTMNSDh
    UINT64_C(4089119552),	// VCVTMNSQf
    UINT64_C(4088857408),	// VCVTMNSQh
    UINT64_C(4089119616),	// VCVTMNUDf
    UINT64_C(4088857472),	// VCVTMNUDh
    UINT64_C(4089119680),	// VCVTMNUQf
    UINT64_C(4088857536),	// VCVTMNUQh
    UINT64_C(4273933248),	// VCVTMSD
    UINT64_C(4273932736),	// VCVTMSH
    UINT64_C(4273932992),	// VCVTMSS
    UINT64_C(4273933120),	// VCVTMUD
    UINT64_C(4273932608),	// VCVTMUH
    UINT64_C(4273932864),	// VCVTMUS
    UINT64_C(4089118976),	// VCVTNNSDf
    UINT64_C(4088856832),	// VCVTNNSDh
    UINT64_C(4089119040),	// VCVTNNSQf
    UINT64_C(4088856896),	// VCVTNNSQh
    UINT64_C(4089119104),	// VCVTNNUDf
    UINT64_C(4088856960),	// VCVTNNUDh
    UINT64_C(4089119168),	// VCVTNNUQf
    UINT64_C(4088857024),	// VCVTNNUQh
    UINT64_C(4273802176),	// VCVTNSD
    UINT64_C(4273801664),	// VCVTNSH
    UINT64_C(4273801920),	// VCVTNSS
    UINT64_C(4273802048),	// VCVTNUD
    UINT64_C(4273801536),	// VCVTNUH
    UINT64_C(4273801792),	// VCVTNUS
    UINT64_C(4089119232),	// VCVTPNSDf
    UINT64_C(4088857088),	// VCVTPNSDh
    UINT64_C(4089119296),	// VCVTPNSQf
    UINT64_C(4088857152),	// VCVTPNSQh
    UINT64_C(4089119360),	// VCVTPNUDf
    UINT64_C(4088857216),	// VCVTPNUDh
    UINT64_C(4089119424),	// VCVTPNUQf
    UINT64_C(4088857280),	// VCVTPNUQh
    UINT64_C(4273867712),	// VCVTPSD
    UINT64_C(4273867200),	// VCVTPSH
    UINT64_C(4273867456),	// VCVTPSS
    UINT64_C(4273867584),	// VCVTPUD
    UINT64_C(4273867072),	// VCVTPUH
    UINT64_C(4273867328),	// VCVTPUS
    UINT64_C(246877120),	// VCVTSD
    UINT64_C(246614976),	// VCVTTDH
    UINT64_C(246549440),	// VCVTTHD
    UINT64_C(246549184),	// VCVTTHS
    UINT64_C(246614720),	// VCVTTSH
    UINT64_C(4088792576),	// VCVTf2h
    UINT64_C(4089120512),	// VCVTf2sd
    UINT64_C(4089120576),	// VCVTf2sq
    UINT64_C(4089120640),	// VCVTf2ud
    UINT64_C(4089120704),	// VCVTf2uq
    UINT64_C(4068478736),	// VCVTf2xsd
    UINT64_C(4068478800),	// VCVTf2xsq
    UINT64_C(4085255952),	// VCVTf2xud
    UINT64_C(4085256016),	// VCVTf2xuq
    UINT64_C(4088792832),	// VCVTh2f
    UINT64_C(4088858368),	// VCVTh2sd
    UINT64_C(4088858432),	// VCVTh2sq
    UINT64_C(4088858496),	// VCVTh2ud
    UINT64_C(4088858560),	// VCVTh2uq
    UINT64_C(4068478224),	// VCVTh2xsd
    UINT64_C(4068478288),	// VCVTh2xsq
    UINT64_C(4085255440),	// VCVTh2xud
    UINT64_C(4085255504),	// VCVTh2xuq
    UINT64_C(4089120256),	// VCVTs2fd
    UINT64_C(4089120320),	// VCVTs2fq
    UINT64_C(4088858112),	// VCVTs2hd
    UINT64_C(4088858176),	// VCVTs2hq
    UINT64_C(4089120384),	// VCVTu2fd
    UINT64_C(4089120448),	// VCVTu2fq
    UINT64_C(4088858240),	// VCVTu2hd
    UINT64_C(4088858304),	// VCVTu2hq
    UINT64_C(4068478480),	// VCVTxs2fd
    UINT64_C(4068478544),	// VCVTxs2fq
    UINT64_C(4068477968),	// VCVTxs2hd
    UINT64_C(4068478032),	// VCVTxs2hq
    UINT64_C(4085255696),	// VCVTxu2fd
    UINT64_C(4085255760),	// VCVTxu2fq
    UINT64_C(4085255184),	// VCVTxu2hd
    UINT64_C(4085255248),	// VCVTxu2hq
    UINT64_C(243272448),	// VDIVD
    UINT64_C(243271936),	// VDIVH
    UINT64_C(243272192),	// VDIVS
    UINT64_C(243272496),	// VDUP16d
    UINT64_C(245369648),	// VDUP16q
    UINT64_C(243272464),	// VDUP32d
    UINT64_C(245369616),	// VDUP32q
    UINT64_C(247466768),	// VDUP8d
    UINT64_C(249563920),	// VDUP8q
    UINT64_C(4088531968),	// VDUPLN16d
    UINT64_C(4088532032),	// VDUPLN16q
    UINT64_C(4088663040),	// VDUPLN32d
    UINT64_C(4088663104),	// VDUPLN32q
    UINT64_C(4088466432),	// VDUPLN8d
    UINT64_C(4088466496),	// VDUPLN8q
    UINT64_C(4076863760),	// VEORd
    UINT64_C(4076863824),	// VEORq
    UINT64_C(4071620608),	// VEXTd16
    UINT64_C(4071620608),	// VEXTd32
    UINT64_C(4071620608),	// VEXTd8
    UINT64_C(4071620672),	// VEXTq16
    UINT64_C(4071620672),	// VEXTq32
    UINT64_C(4071620672),	// VEXTq64
    UINT64_C(4071620672),	// VEXTq8
    UINT64_C(245369600),	// VFMAD
    UINT64_C(245369088),	// VFMAH
    UINT64_C(4229957648),	// VFMALD
    UINT64_C(4261414928),	// VFMALDI
    UINT64_C(4229957712),	// VFMALQ
    UINT64_C(4261414992),	// VFMALQI
    UINT64_C(245369344),	// VFMAS
    UINT64_C(4060089360),	// VFMAfd
    UINT64_C(4060089424),	// VFMAfq
    UINT64_C(4061137936),	// VFMAhd
    UINT64_C(4061138000),	// VFMAhq
    UINT64_C(245369664),	// VFMSD
    UINT64_C(245369152),	// VFMSH
    UINT64_C(4238346256),	// VFMSLD
    UINT64_C(4262463504),	// VFMSLDI
    UINT64_C(4238346320),	// VFMSLQ
    UINT64_C(4262463568),	// VFMSLQI
    UINT64_C(245369408),	// VFMSS
    UINT64_C(4062186512),	// VFMSfd
    UINT64_C(4062186576),	// VFMSfq
    UINT64_C(4063235088),	// VFMShd
    UINT64_C(4063235152),	// VFMShq
    UINT64_C(244321088),	// VFNMAD
    UINT64_C(244320576),	// VFNMAH
    UINT64_C(244320832),	// VFNMAS
    UINT64_C(244321024),	// VFNMSD
    UINT64_C(244320512),	// VFNMSH
    UINT64_C(244320768),	// VFNMSS
    UINT64_C(4269804288),	// VFP_VMAXNMD
    UINT64_C(4269803776),	// VFP_VMAXNMH
    UINT64_C(4269804032),	// VFP_VMAXNMS
    UINT64_C(4269804352),	// VFP_VMINNMD
    UINT64_C(4269803840),	// VFP_VMINNMH
    UINT64_C(4269804096),	// VFP_VMINNMS
    UINT64_C(235932432),	// VGETLNi32
    UINT64_C(235932464),	// VGETLNs16
    UINT64_C(240126736),	// VGETLNs8
    UINT64_C(244321072),	// VGETLNu16
    UINT64_C(248515344),	// VGETLNu8
    UINT64_C(4060086336),	// VHADDsv16i8
    UINT64_C(4062183424),	// VHADDsv2i32
    UINT64_C(4061134848),	// VHADDsv4i16
    UINT64_C(4062183488),	// VHADDsv4i32
    UINT64_C(4061134912),	// VHADDsv8i16
    UINT64_C(4060086272),	// VHADDsv8i8
    UINT64_C(4076863552),	// VHADDuv16i8
    UINT64_C(4078960640),	// VHADDuv2i32
    UINT64_C(4077912064),	// VHADDuv4i16
    UINT64_C(4078960704),	// VHADDuv4i32
    UINT64_C(4077912128),	// VHADDuv8i16
    UINT64_C(4076863488),	// VHADDuv8i8
    UINT64_C(4060086848),	// VHSUBsv16i8
    UINT64_C(4062183936),	// VHSUBsv2i32
    UINT64_C(4061135360),	// VHSUBsv4i16
    UINT64_C(4062184000),	// VHSUBsv4i32
    UINT64_C(4061135424),	// VHSUBsv8i16
    UINT64_C(4060086784),	// VHSUBsv8i8
    UINT64_C(4076864064),	// VHSUBuv16i8
    UINT64_C(4078961152),	// VHSUBuv2i32
    UINT64_C(4077912576),	// VHSUBuv4i16
    UINT64_C(4078961216),	// VHSUBuv4i32
    UINT64_C(4077912640),	// VHSUBuv8i16
    UINT64_C(4076864000),	// VHSUBuv8i8
    UINT64_C(4272949952),	// VINSH
    UINT64_C(247008192),	// VJCVT
    UINT64_C(4104129615),	// VLD1DUPd16
    UINT64_C(4104129613),	// VLD1DUPd16wb_fixed
    UINT64_C(4104129600),	// VLD1DUPd16wb_register
    UINT64_C(4104129679),	// VLD1DUPd32
    UINT64_C(4104129677),	// VLD1DUPd32wb_fixed
    UINT64_C(4104129664),	// VLD1DUPd32wb_register
    UINT64_C(4104129551),	// VLD1DUPd8
    UINT64_C(4104129549),	// VLD1DUPd8wb_fixed
    UINT64_C(4104129536),	// VLD1DUPd8wb_register
    UINT64_C(4104129647),	// VLD1DUPq16
    UINT64_C(4104129645),	// VLD1DUPq16wb_fixed
    UINT64_C(4104129632),	// VLD1DUPq16wb_register
    UINT64_C(4104129711),	// VLD1DUPq32
    UINT64_C(4104129709),	// VLD1DUPq32wb_fixed
    UINT64_C(4104129696),	// VLD1DUPq32wb_register
    UINT64_C(4104129583),	// VLD1DUPq8
    UINT64_C(4104129581),	// VLD1DUPq8wb_fixed
    UINT64_C(4104129568),	// VLD1DUPq8wb_register
    UINT64_C(4104127503),	// VLD1LNd16
    UINT64_C(4104127488),	// VLD1LNd16_UPD
    UINT64_C(4104128527),	// VLD1LNd32
    UINT64_C(4104128512),	// VLD1LNd32_UPD
    UINT64_C(4104126479),	// VLD1LNd8
    UINT64_C(4104126464),	// VLD1LNd8_UPD
    UINT64_C(0),	// VLD1LNq16Pseudo
    UINT64_C(0),	// VLD1LNq16Pseudo_UPD
    UINT64_C(0),	// VLD1LNq32Pseudo
    UINT64_C(0),	// VLD1LNq32Pseudo_UPD
    UINT64_C(0),	// VLD1LNq8Pseudo
    UINT64_C(0),	// VLD1LNq8Pseudo_UPD
    UINT64_C(4095739727),	// VLD1d16
    UINT64_C(4095738447),	// VLD1d16Q
    UINT64_C(0),	// VLD1d16QPseudo
    UINT64_C(0),	// VLD1d16QPseudoWB_fixed
    UINT64_C(0),	// VLD1d16QPseudoWB_register
    UINT64_C(4095738445),	// VLD1d16Qwb_fixed
    UINT64_C(4095738432),	// VLD1d16Qwb_register
    UINT64_C(4095739471),	// VLD1d16T
    UINT64_C(0),	// VLD1d16TPseudo
    UINT64_C(0),	// VLD1d16TPseudoWB_fixed
    UINT64_C(0),	// VLD1d16TPseudoWB_register
    UINT64_C(4095739469),	// VLD1d16Twb_fixed
    UINT64_C(4095739456),	// VLD1d16Twb_register
    UINT64_C(4095739725),	// VLD1d16wb_fixed
    UINT64_C(4095739712),	// VLD1d16wb_register
    UINT64_C(4095739791),	// VLD1d32
    UINT64_C(4095738511),	// VLD1d32Q
    UINT64_C(0),	// VLD1d32QPseudo
    UINT64_C(0),	// VLD1d32QPseudoWB_fixed
    UINT64_C(0),	// VLD1d32QPseudoWB_register
    UINT64_C(4095738509),	// VLD1d32Qwb_fixed
    UINT64_C(4095738496),	// VLD1d32Qwb_register
    UINT64_C(4095739535),	// VLD1d32T
    UINT64_C(0),	// VLD1d32TPseudo
    UINT64_C(0),	// VLD1d32TPseudoWB_fixed
    UINT64_C(0),	// VLD1d32TPseudoWB_register
    UINT64_C(4095739533),	// VLD1d32Twb_fixed
    UINT64_C(4095739520),	// VLD1d32Twb_register
    UINT64_C(4095739789),	// VLD1d32wb_fixed
    UINT64_C(4095739776),	// VLD1d32wb_register
    UINT64_C(4095739855),	// VLD1d64
    UINT64_C(4095738575),	// VLD1d64Q
    UINT64_C(0),	// VLD1d64QPseudo
    UINT64_C(0),	// VLD1d64QPseudoWB_fixed
    UINT64_C(0),	// VLD1d64QPseudoWB_register
    UINT64_C(4095738573),	// VLD1d64Qwb_fixed
    UINT64_C(4095738560),	// VLD1d64Qwb_register
    UINT64_C(4095739599),	// VLD1d64T
    UINT64_C(0),	// VLD1d64TPseudo
    UINT64_C(0),	// VLD1d64TPseudoWB_fixed
    UINT64_C(0),	// VLD1d64TPseudoWB_register
    UINT64_C(4095739597),	// VLD1d64Twb_fixed
    UINT64_C(4095739584),	// VLD1d64Twb_register
    UINT64_C(4095739853),	// VLD1d64wb_fixed
    UINT64_C(4095739840),	// VLD1d64wb_register
    UINT64_C(4095739663),	// VLD1d8
    UINT64_C(4095738383),	// VLD1d8Q
    UINT64_C(0),	// VLD1d8QPseudo
    UINT64_C(0),	// VLD1d8QPseudoWB_fixed
    UINT64_C(0),	// VLD1d8QPseudoWB_register
    UINT64_C(4095738381),	// VLD1d8Qwb_fixed
    UINT64_C(4095738368),	// VLD1d8Qwb_register
    UINT64_C(4095739407),	// VLD1d8T
    UINT64_C(0),	// VLD1d8TPseudo
    UINT64_C(0),	// VLD1d8TPseudoWB_fixed
    UINT64_C(0),	// VLD1d8TPseudoWB_register
    UINT64_C(4095739405),	// VLD1d8Twb_fixed
    UINT64_C(4095739392),	// VLD1d8Twb_register
    UINT64_C(4095739661),	// VLD1d8wb_fixed
    UINT64_C(4095739648),	// VLD1d8wb_register
    UINT64_C(4095740495),	// VLD1q16
    UINT64_C(0),	// VLD1q16HighQPseudo
    UINT64_C(0),	// VLD1q16HighQPseudo_UPD
    UINT64_C(0),	// VLD1q16HighTPseudo
    UINT64_C(0),	// VLD1q16HighTPseudo_UPD
    UINT64_C(0),	// VLD1q16LowQPseudo_UPD
    UINT64_C(0),	// VLD1q16LowTPseudo_UPD
    UINT64_C(4095740493),	// VLD1q16wb_fixed
    UINT64_C(4095740480),	// VLD1q16wb_register
    UINT64_C(4095740559),	// VLD1q32
    UINT64_C(0),	// VLD1q32HighQPseudo
    UINT64_C(0),	// VLD1q32HighQPseudo_UPD
    UINT64_C(0),	// VLD1q32HighTPseudo
    UINT64_C(0),	// VLD1q32HighTPseudo_UPD
    UINT64_C(0),	// VLD1q32LowQPseudo_UPD
    UINT64_C(0),	// VLD1q32LowTPseudo_UPD
    UINT64_C(4095740557),	// VLD1q32wb_fixed
    UINT64_C(4095740544),	// VLD1q32wb_register
    UINT64_C(4095740623),	// VLD1q64
    UINT64_C(0),	// VLD1q64HighQPseudo
    UINT64_C(0),	// VLD1q64HighQPseudo_UPD
    UINT64_C(0),	// VLD1q64HighTPseudo
    UINT64_C(0),	// VLD1q64HighTPseudo_UPD
    UINT64_C(0),	// VLD1q64LowQPseudo_UPD
    UINT64_C(0),	// VLD1q64LowTPseudo_UPD
    UINT64_C(4095740621),	// VLD1q64wb_fixed
    UINT64_C(4095740608),	// VLD1q64wb_register
    UINT64_C(4095740431),	// VLD1q8
    UINT64_C(0),	// VLD1q8HighQPseudo
    UINT64_C(0),	// VLD1q8HighQPseudo_UPD
    UINT64_C(0),	// VLD1q8HighTPseudo
    UINT64_C(0),	// VLD1q8HighTPseudo_UPD
    UINT64_C(0),	// VLD1q8LowQPseudo_UPD
    UINT64_C(0),	// VLD1q8LowTPseudo_UPD
    UINT64_C(4095740429),	// VLD1q8wb_fixed
    UINT64_C(4095740416),	// VLD1q8wb_register
    UINT64_C(4104129871),	// VLD2DUPd16
    UINT64_C(4104129869),	// VLD2DUPd16wb_fixed
    UINT64_C(4104129856),	// VLD2DUPd16wb_register
    UINT64_C(4104129903),	// VLD2DUPd16x2
    UINT64_C(4104129901),	// VLD2DUPd16x2wb_fixed
    UINT64_C(4104129888),	// VLD2DUPd16x2wb_register
    UINT64_C(4104129935),	// VLD2DUPd32
    UINT64_C(4104129933),	// VLD2DUPd32wb_fixed
    UINT64_C(4104129920),	// VLD2DUPd32wb_register
    UINT64_C(4104129967),	// VLD2DUPd32x2
    UINT64_C(4104129965),	// VLD2DUPd32x2wb_fixed
    UINT64_C(4104129952),	// VLD2DUPd32x2wb_register
    UINT64_C(4104129807),	// VLD2DUPd8
    UINT64_C(4104129805),	// VLD2DUPd8wb_fixed
    UINT64_C(4104129792),	// VLD2DUPd8wb_register
    UINT64_C(4104129839),	// VLD2DUPd8x2
    UINT64_C(4104129837),	// VLD2DUPd8x2wb_fixed
    UINT64_C(4104129824),	// VLD2DUPd8x2wb_register
    UINT64_C(0),	// VLD2DUPq16EvenPseudo
    UINT64_C(0),	// VLD2DUPq16OddPseudo
    UINT64_C(0),	// VLD2DUPq16OddPseudoWB_fixed
    UINT64_C(0),	// VLD2DUPq16OddPseudoWB_register
    UINT64_C(0),	// VLD2DUPq32EvenPseudo
    UINT64_C(0),	// VLD2DUPq32OddPseudo
    UINT64_C(0),	// VLD2DUPq32OddPseudoWB_fixed
    UINT64_C(0),	// VLD2DUPq32OddPseudoWB_register
    UINT64_C(0),	// VLD2DUPq8EvenPseudo
    UINT64_C(0),	// VLD2DUPq8OddPseudo
    UINT64_C(0),	// VLD2DUPq8OddPseudoWB_fixed
    UINT64_C(0),	// VLD2DUPq8OddPseudoWB_register
    UINT64_C(4104127759),	// VLD2LNd16
    UINT64_C(0),	// VLD2LNd16Pseudo
    UINT64_C(0),	// VLD2LNd16Pseudo_UPD
    UINT64_C(4104127744),	// VLD2LNd16_UPD
    UINT64_C(4104128783),	// VLD2LNd32
    UINT64_C(0),	// VLD2LNd32Pseudo
    UINT64_C(0),	// VLD2LNd32Pseudo_UPD
    UINT64_C(4104128768),	// VLD2LNd32_UPD
    UINT64_C(4104126735),	// VLD2LNd8
    UINT64_C(0),	// VLD2LNd8Pseudo
    UINT64_C(0),	// VLD2LNd8Pseudo_UPD
    UINT64_C(4104126720),	// VLD2LNd8_UPD
    UINT64_C(4104127791),	// VLD2LNq16
    UINT64_C(0),	// VLD2LNq16Pseudo
    UINT64_C(0),	// VLD2LNq16Pseudo_UPD
    UINT64_C(4104127776),	// VLD2LNq16_UPD
    UINT64_C(4104128847),	// VLD2LNq32
    UINT64_C(0),	// VLD2LNq32Pseudo
    UINT64_C(0),	// VLD2LNq32Pseudo_UPD
    UINT64_C(4104128832),	// VLD2LNq32_UPD
    UINT64_C(4095740239),	// VLD2b16
    UINT64_C(4095740237),	// VLD2b16wb_fixed
    UINT64_C(4095740224),	// VLD2b16wb_register
    UINT64_C(4095740303),	// VLD2b32
    UINT64_C(4095740301),	// VLD2b32wb_fixed
    UINT64_C(4095740288),	// VLD2b32wb_register
    UINT64_C(4095740175),	// VLD2b8
    UINT64_C(4095740173),	// VLD2b8wb_fixed
    UINT64_C(4095740160),	// VLD2b8wb_register
    UINT64_C(4095739983),	// VLD2d16
    UINT64_C(4095739981),	// VLD2d16wb_fixed
    UINT64_C(4095739968),	// VLD2d16wb_register
    UINT64_C(4095740047),	// VLD2d32
    UINT64_C(4095740045),	// VLD2d32wb_fixed
    UINT64_C(4095740032),	// VLD2d32wb_register
    UINT64_C(4095739919),	// VLD2d8
    UINT64_C(4095739917),	// VLD2d8wb_fixed
    UINT64_C(4095739904),	// VLD2d8wb_register
    UINT64_C(4095738703),	// VLD2q16
    UINT64_C(0),	// VLD2q16Pseudo
    UINT64_C(0),	// VLD2q16PseudoWB_fixed
    UINT64_C(0),	// VLD2q16PseudoWB_register
    UINT64_C(4095738701),	// VLD2q16wb_fixed
    UINT64_C(4095738688),	// VLD2q16wb_register
    UINT64_C(4095738767),	// VLD2q32
    UINT64_C(0),	// VLD2q32Pseudo
    UINT64_C(0),	// VLD2q32PseudoWB_fixed
    UINT64_C(0),	// VLD2q32PseudoWB_register
    UINT64_C(4095738765),	// VLD2q32wb_fixed
    UINT64_C(4095738752),	// VLD2q32wb_register
    UINT64_C(4095738639),	// VLD2q8
    UINT64_C(0),	// VLD2q8Pseudo
    UINT64_C(0),	// VLD2q8PseudoWB_fixed
    UINT64_C(0),	// VLD2q8PseudoWB_register
    UINT64_C(4095738637),	// VLD2q8wb_fixed
    UINT64_C(4095738624),	// VLD2q8wb_register
    UINT64_C(4104130127),	// VLD3DUPd16
    UINT64_C(0),	// VLD3DUPd16Pseudo
    UINT64_C(0),	// VLD3DUPd16Pseudo_UPD
    UINT64_C(4104130112),	// VLD3DUPd16_UPD
    UINT64_C(4104130191),	// VLD3DUPd32
    UINT64_C(0),	// VLD3DUPd32Pseudo
    UINT64_C(0),	// VLD3DUPd32Pseudo_UPD
    UINT64_C(4104130176),	// VLD3DUPd32_UPD
    UINT64_C(4104130063),	// VLD3DUPd8
    UINT64_C(0),	// VLD3DUPd8Pseudo
    UINT64_C(0),	// VLD3DUPd8Pseudo_UPD
    UINT64_C(4104130048),	// VLD3DUPd8_UPD
    UINT64_C(4104130159),	// VLD3DUPq16
    UINT64_C(0),	// VLD3DUPq16EvenPseudo
    UINT64_C(0),	// VLD3DUPq16OddPseudo
    UINT64_C(0),	// VLD3DUPq16OddPseudo_UPD
    UINT64_C(4104130144),	// VLD3DUPq16_UPD
    UINT64_C(4104130223),	// VLD3DUPq32
    UINT64_C(0),	// VLD3DUPq32EvenPseudo
    UINT64_C(0),	// VLD3DUPq32OddPseudo
    UINT64_C(0),	// VLD3DUPq32OddPseudo_UPD
    UINT64_C(4104130208),	// VLD3DUPq32_UPD
    UINT64_C(4104130095),	// VLD3DUPq8
    UINT64_C(0),	// VLD3DUPq8EvenPseudo
    UINT64_C(0),	// VLD3DUPq8OddPseudo
    UINT64_C(0),	// VLD3DUPq8OddPseudo_UPD
    UINT64_C(4104130080),	// VLD3DUPq8_UPD
    UINT64_C(4104128015),	// VLD3LNd16
    UINT64_C(0),	// VLD3LNd16Pseudo
    UINT64_C(0),	// VLD3LNd16Pseudo_UPD
    UINT64_C(4104128000),	// VLD3LNd16_UPD
    UINT64_C(4104129039),	// VLD3LNd32
    UINT64_C(0),	// VLD3LNd32Pseudo
    UINT64_C(0),	// VLD3LNd32Pseudo_UPD
    UINT64_C(4104129024),	// VLD3LNd32_UPD
    UINT64_C(4104126991),	// VLD3LNd8
    UINT64_C(0),	// VLD3LNd8Pseudo
    UINT64_C(0),	// VLD3LNd8Pseudo_UPD
    UINT64_C(4104126976),	// VLD3LNd8_UPD
    UINT64_C(4104128047),	// VLD3LNq16
    UINT64_C(0),	// VLD3LNq16Pseudo
    UINT64_C(0),	// VLD3LNq16Pseudo_UPD
    UINT64_C(4104128032),	// VLD3LNq16_UPD
    UINT64_C(4104129103),	// VLD3LNq32
    UINT64_C(0),	// VLD3LNq32Pseudo
    UINT64_C(0),	// VLD3LNq32Pseudo_UPD
    UINT64_C(4104129088),	// VLD3LNq32_UPD
    UINT64_C(4095738959),	// VLD3d16
    UINT64_C(0),	// VLD3d16Pseudo
    UINT64_C(0),	// VLD3d16Pseudo_UPD
    UINT64_C(4095738944),	// VLD3d16_UPD
    UINT64_C(4095739023),	// VLD3d32
    UINT64_C(0),	// VLD3d32Pseudo
    UINT64_C(0),	// VLD3d32Pseudo_UPD
    UINT64_C(4095739008),	// VLD3d32_UPD
    UINT64_C(4095738895),	// VLD3d8
    UINT64_C(0),	// VLD3d8Pseudo
    UINT64_C(0),	// VLD3d8Pseudo_UPD
    UINT64_C(4095738880),	// VLD3d8_UPD
    UINT64_C(4095739215),	// VLD3q16
    UINT64_C(0),	// VLD3q16Pseudo_UPD
    UINT64_C(4095739200),	// VLD3q16_UPD
    UINT64_C(0),	// VLD3q16oddPseudo
    UINT64_C(0),	// VLD3q16oddPseudo_UPD
    UINT64_C(4095739279),	// VLD3q32
    UINT64_C(0),	// VLD3q32Pseudo_UPD
    UINT64_C(4095739264),	// VLD3q32_UPD
    UINT64_C(0),	// VLD3q32oddPseudo
    UINT64_C(0),	// VLD3q32oddPseudo_UPD
    UINT64_C(4095739151),	// VLD3q8
    UINT64_C(0),	// VLD3q8Pseudo_UPD
    UINT64_C(4095739136),	// VLD3q8_UPD
    UINT64_C(0),	// VLD3q8oddPseudo
    UINT64_C(0),	// VLD3q8oddPseudo_UPD
    UINT64_C(4104130383),	// VLD4DUPd16
    UINT64_C(0),	// VLD4DUPd16Pseudo
    UINT64_C(0),	// VLD4DUPd16Pseudo_UPD
    UINT64_C(4104130368),	// VLD4DUPd16_UPD
    UINT64_C(4104130447),	// VLD4DUPd32
    UINT64_C(0),	// VLD4DUPd32Pseudo
    UINT64_C(0),	// VLD4DUPd32Pseudo_UPD
    UINT64_C(4104130432),	// VLD4DUPd32_UPD
    UINT64_C(4104130319),	// VLD4DUPd8
    UINT64_C(0),	// VLD4DUPd8Pseudo
    UINT64_C(0),	// VLD4DUPd8Pseudo_UPD
    UINT64_C(4104130304),	// VLD4DUPd8_UPD
    UINT64_C(4104130415),	// VLD4DUPq16
    UINT64_C(0),	// VLD4DUPq16EvenPseudo
    UINT64_C(0),	// VLD4DUPq16OddPseudo
    UINT64_C(0),	// VLD4DUPq16OddPseudo_UPD
    UINT64_C(4104130400),	// VLD4DUPq16_UPD
    UINT64_C(4104130479),	// VLD4DUPq32
    UINT64_C(0),	// VLD4DUPq32EvenPseudo
    UINT64_C(0),	// VLD4DUPq32OddPseudo
    UINT64_C(0),	// VLD4DUPq32OddPseudo_UPD
    UINT64_C(4104130464),	// VLD4DUPq32_UPD
    UINT64_C(4104130351),	// VLD4DUPq8
    UINT64_C(0),	// VLD4DUPq8EvenPseudo
    UINT64_C(0),	// VLD4DUPq8OddPseudo
    UINT64_C(0),	// VLD4DUPq8OddPseudo_UPD
    UINT64_C(4104130336),	// VLD4DUPq8_UPD
    UINT64_C(4104128271),	// VLD4LNd16
    UINT64_C(0),	// VLD4LNd16Pseudo
    UINT64_C(0),	// VLD4LNd16Pseudo_UPD
    UINT64_C(4104128256),	// VLD4LNd16_UPD
    UINT64_C(4104129295),	// VLD4LNd32
    UINT64_C(0),	// VLD4LNd32Pseudo
    UINT64_C(0),	// VLD4LNd32Pseudo_UPD
    UINT64_C(4104129280),	// VLD4LNd32_UPD
    UINT64_C(4104127247),	// VLD4LNd8
    UINT64_C(0),	// VLD4LNd8Pseudo
    UINT64_C(0),	// VLD4LNd8Pseudo_UPD
    UINT64_C(4104127232),	// VLD4LNd8_UPD
    UINT64_C(4104128303),	// VLD4LNq16
    UINT64_C(0),	// VLD4LNq16Pseudo
    UINT64_C(0),	// VLD4LNq16Pseudo_UPD
    UINT64_C(4104128288),	// VLD4LNq16_UPD
    UINT64_C(4104129359),	// VLD4LNq32
    UINT64_C(0),	// VLD4LNq32Pseudo
    UINT64_C(0),	// VLD4LNq32Pseudo_UPD
    UINT64_C(4104129344),	// VLD4LNq32_UPD
    UINT64_C(4095737935),	// VLD4d16
    UINT64_C(0),	// VLD4d16Pseudo
    UINT64_C(0),	// VLD4d16Pseudo_UPD
    UINT64_C(4095737920),	// VLD4d16_UPD
    UINT64_C(4095737999),	// VLD4d32
    UINT64_C(0),	// VLD4d32Pseudo
    UINT64_C(0),	// VLD4d32Pseudo_UPD
    UINT64_C(4095737984),	// VLD4d32_UPD
    UINT64_C(4095737871),	// VLD4d8
    UINT64_C(0),	// VLD4d8Pseudo
    UINT64_C(0),	// VLD4d8Pseudo_UPD
    UINT64_C(4095737856),	// VLD4d8_UPD
    UINT64_C(4095738191),	// VLD4q16
    UINT64_C(0),	// VLD4q16Pseudo_UPD
    UINT64_C(4095738176),	// VLD4q16_UPD
    UINT64_C(0),	// VLD4q16oddPseudo
    UINT64_C(0),	// VLD4q16oddPseudo_UPD
    UINT64_C(4095738255),	// VLD4q32
    UINT64_C(0),	// VLD4q32Pseudo_UPD
    UINT64_C(4095738240),	// VLD4q32_UPD
    UINT64_C(0),	// VLD4q32oddPseudo
    UINT64_C(0),	// VLD4q32oddPseudo_UPD
    UINT64_C(4095738127),	// VLD4q8
    UINT64_C(0),	// VLD4q8Pseudo_UPD
    UINT64_C(4095738112),	// VLD4q8_UPD
    UINT64_C(0),	// VLD4q8oddPseudo
    UINT64_C(0),	// VLD4q8oddPseudo_UPD
    UINT64_C(221252352),	// VLDMDDB_UPD
    UINT64_C(210766592),	// VLDMDIA
    UINT64_C(212863744),	// VLDMDIA_UPD
    UINT64_C(0),	// VLDMQIA
    UINT64_C(221252096),	// VLDMSDB_UPD
    UINT64_C(210766336),	// VLDMSIA
    UINT64_C(212863488),	// VLDMSIA_UPD
    UINT64_C(219155200),	// VLDRD
    UINT64_C(219154688),	// VLDRH
    UINT64_C(219154944),	// VLDRS
    UINT64_C(223399808),	// VLDR_FPCXTNS_off
    UINT64_C(208719744),	// VLDR_FPCXTNS_post
    UINT64_C(225496960),	// VLDR_FPCXTNS_pre
    UINT64_C(223408000),	// VLDR_FPCXTS_off
    UINT64_C(208727936),	// VLDR_FPCXTS_post
    UINT64_C(225505152),	// VLDR_FPCXTS_pre
    UINT64_C(219172736),	// VLDR_FPSCR_NZCVQC_off
    UINT64_C(204492672),	// VLDR_FPSCR_NZCVQC_post
    UINT64_C(221269888),	// VLDR_FPSCR_NZCVQC_pre
    UINT64_C(219164544),	// VLDR_FPSCR_off
    UINT64_C(204484480),	// VLDR_FPSCR_post
    UINT64_C(221261696),	// VLDR_FPSCR_pre
    UINT64_C(223391616),	// VLDR_P0_off
    UINT64_C(208711552),	// VLDR_P0_post
    UINT64_C(225488768),	// VLDR_P0_pre
    UINT64_C(223383424),	// VLDR_VPR_off
    UINT64_C(208703360),	// VLDR_VPR_post
    UINT64_C(225480576),	// VLDR_VPR_pre
    UINT64_C(204474880),	// VLLDM
    UINT64_C(203426304),	// VLSTM
    UINT64_C(4060090112),	// VMAXfd
    UINT64_C(4060090176),	// VMAXfq
    UINT64_C(4061138688),	// VMAXhd
    UINT64_C(4061138752),	// VMAXhq
    UINT64_C(4060087872),	// VMAXsv16i8
    UINT64_C(4062184960),	// VMAXsv2i32
    UINT64_C(4061136384),	// VMAXsv4i16
    UINT64_C(4062185024),	// VMAXsv4i32
    UINT64_C(4061136448),	// VMAXsv8i16
    UINT64_C(4060087808),	// VMAXsv8i8
    UINT64_C(4076865088),	// VMAXuv16i8
    UINT64_C(4078962176),	// VMAXuv2i32
    UINT64_C(4077913600),	// VMAXuv4i16
    UINT64_C(4078962240),	// VMAXuv4i32
    UINT64_C(4077913664),	// VMAXuv8i16
    UINT64_C(4076865024),	// VMAXuv8i8
    UINT64_C(4062187264),	// VMINfd
    UINT64_C(4062187328),	// VMINfq
    UINT64_C(4063235840),	// VMINhd
    UINT64_C(4063235904),	// VMINhq
    UINT64_C(4060087888),	// VMINsv16i8
    UINT64_C(4062184976),	// VMINsv2i32
    UINT64_C(4061136400),	// VMINsv4i16
    UINT64_C(4062185040),	// VMINsv4i32
    UINT64_C(4061136464),	// VMINsv8i16
    UINT64_C(4060087824),	// VMINsv8i8
    UINT64_C(4076865104),	// VMINuv16i8
    UINT64_C(4078962192),	// VMINuv2i32
    UINT64_C(4077913616),	// VMINuv4i16
    UINT64_C(4078962256),	// VMINuv4i32
    UINT64_C(4077913680),	// VMINuv8i16
    UINT64_C(4076865040),	// VMINuv8i8
    UINT64_C(234883840),	// VMLAD
    UINT64_C(234883328),	// VMLAH
    UINT64_C(4070572608),	// VMLALslsv2i32
    UINT64_C(4069524032),	// VMLALslsv4i16
    UINT64_C(4087349824),	// VMLALsluv2i32
    UINT64_C(4086301248),	// VMLALsluv4i16
    UINT64_C(4070574080),	// VMLALsv2i64
    UINT64_C(4069525504),	// VMLALsv4i32
    UINT64_C(4068476928),	// VMLALsv8i16
    UINT64_C(4087351296),	// VMLALuv2i64
    UINT64_C(4086302720),	// VMLALuv4i32
    UINT64_C(4085254144),	// VMLALuv8i16
    UINT64_C(234883584),	// VMLAS
    UINT64_C(4060089616),	// VMLAfd
    UINT64_C(4060089680),	// VMLAfq
    UINT64_C(4061138192),	// VMLAhd
    UINT64_C(4061138256),	// VMLAhq
    UINT64_C(4070572352),	// VMLAslfd
    UINT64_C(4087349568),	// VMLAslfq
    UINT64_C(4069523776),	// VMLAslhd
    UINT64_C(4086300992),	// VMLAslhq
    UINT64_C(4070572096),	// VMLAslv2i32
    UINT64_C(4069523520),	// VMLAslv4i16
    UINT64_C(4087349312),	// VMLAslv4i32
    UINT64_C(4086300736),	// VMLAslv8i16
    UINT64_C(4060088640),	// VMLAv16i8
    UINT64_C(4062185728),	// VMLAv2i32
    UINT64_C(4061137152),	// VMLAv4i16
    UINT64_C(4062185792),	// VMLAv4i32
    UINT64_C(4061137216),	// VMLAv8i16
    UINT64_C(4060088576),	// VMLAv8i8
    UINT64_C(234883904),	// VMLSD
    UINT64_C(234883392),	// VMLSH
    UINT64_C(4070573632),	// VMLSLslsv2i32
    UINT64_C(4069525056),	// VMLSLslsv4i16
    UINT64_C(4087350848),	// VMLSLsluv2i32
    UINT64_C(4086302272),	// VMLSLsluv4i16
    UINT64_C(4070574592),	// VMLSLsv2i64
    UINT64_C(4069526016),	// VMLSLsv4i32
    UINT64_C(4068477440),	// VMLSLsv8i16
    UINT64_C(4087351808),	// VMLSLuv2i64
    UINT64_C(4086303232),	// VMLSLuv4i32
    UINT64_C(4085254656),	// VMLSLuv8i16
    UINT64_C(234883648),	// VMLSS
    UINT64_C(4062186768),	// VMLSfd
    UINT64_C(4062186832),	// VMLSfq
    UINT64_C(4063235344),	// VMLShd
    UINT64_C(4063235408),	// VMLShq
    UINT64_C(4070573376),	// VMLSslfd
    UINT64_C(4087350592),	// VMLSslfq
    UINT64_C(4069524800),	// VMLSslhd
    UINT64_C(4086302016),	// VMLSslhq
    UINT64_C(4070573120),	// VMLSslv2i32
    UINT64_C(4069524544),	// VMLSslv4i16
    UINT64_C(4087350336),	// VMLSslv4i32
    UINT64_C(4086301760),	// VMLSslv8i16
    UINT64_C(4076865856),	// VMLSv16i8
    UINT64_C(4078962944),	// VMLSv2i32
    UINT64_C(4077914368),	// VMLSv4i16
    UINT64_C(4078963008),	// VMLSv4i32
    UINT64_C(4077914432),	// VMLSv8i16
    UINT64_C(4076865792),	// VMLSv8i8
    UINT64_C(4227861568),	// VMMLA
    UINT64_C(246418240),	// VMOVD
    UINT64_C(205523728),	// VMOVDRR
    UINT64_C(4272949824),	// VMOVH
    UINT64_C(234883344),	// VMOVHR
    UINT64_C(4070574608),	// VMOVLsv2i64
    UINT64_C(4069526032),	// VMOVLsv4i32
    UINT64_C(4069001744),	// VMOVLsv8i16
    UINT64_C(4087351824),	// VMOVLuv2i64
    UINT64_C(4086303248),	// VMOVLuv4i32
    UINT64_C(4085778960),	// VMOVLuv8i16
    UINT64_C(4089053696),	// VMOVNv2i32
    UINT64_C(4088791552),	// VMOVNv4i16
    UINT64_C(4088529408),	// VMOVNv8i8
    UINT64_C(235931920),	// VMOVRH
    UINT64_C(206572304),	// VMOVRRD
    UINT64_C(206572048),	// VMOVRRS
    UINT64_C(235932176),	// VMOVRS
    UINT64_C(246417984),	// VMOVS
    UINT64_C(234883600),	// VMOVSR
    UINT64_C(205523472),	// VMOVSRR
    UINT64_C(4068478544),	// VMOVv16i8
    UINT64_C(4068478512),	// VMOVv1i64
    UINT64_C(4068478736),	// VMOVv2f32
    UINT64_C(4068474896),	// VMOVv2i32
    UINT64_C(4068478576),	// VMOVv2i64
    UINT64_C(4068478800),	// VMOVv4f32
    UINT64_C(4068476944),	// VMOVv4i16
    UINT64_C(4068474960),	// VMOVv4i32
    UINT64_C(4068477008),	// VMOVv8i16
    UINT64_C(4068478480),	// VMOVv8i8
    UINT64_C(250677776),	// VMRS
    UINT64_C(251529744),	// VMRS_FPCXTNS
    UINT64_C(251595280),	// VMRS_FPCXTS
    UINT64_C(251136528),	// VMRS_FPEXC
    UINT64_C(251202064),	// VMRS_FPINST
    UINT64_C(251267600),	// VMRS_FPINST2
    UINT64_C(250743312),	// VMRS_FPSCR_NZCVQC
    UINT64_C(250612240),	// VMRS_FPSID
    UINT64_C(251070992),	// VMRS_MVFR0
    UINT64_C(251005456),	// VMRS_MVFR1
    UINT64_C(250939920),	// VMRS_MVFR2
    UINT64_C(251464208),	// VMRS_P0
    UINT64_C(251398672),	// VMRS_VPR
    UINT64_C(249629200),	// VMSR
    UINT64_C(250481168),	// VMSR_FPCXTNS
    UINT64_C(250546704),	// VMSR_FPCXTS
    UINT64_C(250087952),	// VMSR_FPEXC
    UINT64_C(250153488),	// VMSR_FPINST
    UINT64_C(250219024),	// VMSR_FPINST2
    UINT64_C(249694736),	// VMSR_FPSCR_NZCVQC
    UINT64_C(249563664),	// VMSR_FPSID
    UINT64_C(250415632),	// VMSR_P0
    UINT64_C(250350096),	// VMSR_VPR
    UINT64_C(236980992),	// VMULD
    UINT64_C(236980480),	// VMULH
    UINT64_C(4070575616),	// VMULLp64
    UINT64_C(4068478464),	// VMULLp8
    UINT64_C(4070574656),	// VMULLslsv2i32
    UINT64_C(4069526080),	// VMULLslsv4i16
    UINT64_C(4087351872),	// VMULLsluv2i32
    UINT64_C(4086303296),	// VMULLsluv4i16
    UINT64_C(4070575104),	// VMULLsv2i64
    UINT64_C(4069526528),	// VMULLsv4i32
    UINT64_C(4068477952),	// VMULLsv8i16
    UINT64_C(4087352320),	// VMULLuv2i64
    UINT64_C(4086303744),	// VMULLuv4i32
    UINT64_C(4085255168),	// VMULLuv8i16
    UINT64_C(236980736),	// VMULS
    UINT64_C(4076866832),	// VMULfd
    UINT64_C(4076866896),	// VMULfq
    UINT64_C(4077915408),	// VMULhd
    UINT64_C(4077915472),	// VMULhq
    UINT64_C(4076865808),	// VMULpd
    UINT64_C(4076865872),	// VMULpq
    UINT64_C(4070574400),	// VMULslfd
    UINT64_C(4087351616),	// VMULslfq
    UINT64_C(4069525824),	// VMULslhd
    UINT64_C(4086303040),	// VMULslhq
    UINT64_C(4070574144),	// VMULslv2i32
    UINT64_C(4069525568),	// VMULslv4i16
    UINT64_C(4087351360),	// VMULslv4i32
    UINT64_C(4086302784),	// VMULslv8i16
    UINT64_C(4060088656),	// VMULv16i8
    UINT64_C(4062185744),	// VMULv2i32
    UINT64_C(4061137168),	// VMULv4i16
    UINT64_C(4062185808),	// VMULv4i32
    UINT64_C(4061137232),	// VMULv8i16
    UINT64_C(4060088592),	// VMULv8i8
    UINT64_C(4088399232),	// VMVNd
    UINT64_C(4088399296),	// VMVNq
    UINT64_C(4068474928),	// VMVNv2i32
    UINT64_C(4068476976),	// VMVNv4i16
    UINT64_C(4068474992),	// VMVNv4i32
    UINT64_C(4068477040),	// VMVNv8i16
    UINT64_C(246483776),	// VNEGD
    UINT64_C(246483264),	// VNEGH
    UINT64_C(246483520),	// VNEGS
    UINT64_C(4088989632),	// VNEGf32q
    UINT64_C(4088989568),	// VNEGfd
    UINT64_C(4088727424),	// VNEGhd
    UINT64_C(4088727488),	// VNEGhq
    UINT64_C(4088726400),	// VNEGs16d
    UINT64_C(4088726464),	// VNEGs16q
    UINT64_C(4088988544),	// VNEGs32d
    UINT64_C(4088988608),	// VNEGs32q
    UINT64_C(4088464256),	// VNEGs8d
    UINT64_C(4088464320),	// VNEGs8q
    UINT64_C(235932480),	// VNMLAD
    UINT64_C(235931968),	// VNMLAH
    UINT64_C(235932224),	// VNMLAS
    UINT64_C(235932416),	// VNMLSD
    UINT64_C(235931904),	// VNMLSH
    UINT64_C(235932160),	// VNMLSS
    UINT64_C(236981056),	// VNMULD
    UINT64_C(236980544),	// VNMULH
    UINT64_C(236980800),	// VNMULS
    UINT64_C(4063232272),	// VORNd
    UINT64_C(4063232336),	// VORNq
    UINT64_C(4062183696),	// VORRd
    UINT64_C(4068475152),	// VORRiv2i32
    UINT64_C(4068477200),	// VORRiv4i16
    UINT64_C(4068475216),	// VORRiv4i32
    UINT64_C(4068477264),	// VORRiv8i16
    UINT64_C(4062183760),	// VORRq
    UINT64_C(4088399424),	// VPADALsv16i8
    UINT64_C(4088923648),	// VPADALsv2i32
    UINT64_C(4088661504),	// VPADALsv4i16
    UINT64_C(4088923712),	// VPADALsv4i32
    UINT64_C(4088661568),	// VPADALsv8i16
    UINT64_C(4088399360),	// VPADALsv8i8
    UINT64_C(4088399552),	// VPADALuv16i8
    UINT64_C(4088923776),	// VPADALuv2i32
    UINT64_C(4088661632),	// VPADALuv4i16
    UINT64_C(4088923840),	// VPADALuv4i32
    UINT64_C(4088661696),	// VPADALuv8i16
    UINT64_C(4088399488),	// VPADALuv8i8
    UINT64_C(4088398400),	// VPADDLsv16i8
    UINT64_C(4088922624),	// VPADDLsv2i32
    UINT64_C(4088660480),	// VPADDLsv4i16
    UINT64_C(4088922688),	// VPADDLsv4i32
    UINT64_C(4088660544),	// VPADDLsv8i16
    UINT64_C(4088398336),	// VPADDLsv8i8
    UINT64_C(4088398528),	// VPADDLuv16i8
    UINT64_C(4088922752),	// VPADDLuv2i32
    UINT64_C(4088660608),	// VPADDLuv4i16
    UINT64_C(4088922816),	// VPADDLuv4i32
    UINT64_C(4088660672),	// VPADDLuv8i16
    UINT64_C(4088398464),	// VPADDLuv8i8
    UINT64_C(4076866816),	// VPADDf
    UINT64_C(4077915392),	// VPADDh
    UINT64_C(4061137680),	// VPADDi16
    UINT64_C(4062186256),	// VPADDi32
    UINT64_C(4060089104),	// VPADDi8
    UINT64_C(4076867328),	// VPMAXf
    UINT64_C(4077915904),	// VPMAXh
    UINT64_C(4061137408),	// VPMAXs16
    UINT64_C(4062185984),	// VPMAXs32
    UINT64_C(4060088832),	// VPMAXs8
    UINT64_C(4077914624),	// VPMAXu16
    UINT64_C(4078963200),	// VPMAXu32
    UINT64_C(4076866048),	// VPMAXu8
    UINT64_C(4078964480),	// VPMINf
    UINT64_C(4080013056),	// VPMINh
    UINT64_C(4061137424),	// VPMINs16
    UINT64_C(4062186000),	// VPMINs32
    UINT64_C(4060088848),	// VPMINs8
    UINT64_C(4077914640),	// VPMINu16
    UINT64_C(4078963216),	// VPMINu32
    UINT64_C(4076866064),	// VPMINu8
    UINT64_C(4088399680),	// VQABSv16i8
    UINT64_C(4088923904),	// VQABSv2i32
    UINT64_C(4088661760),	// VQABSv4i16
    UINT64_C(4088923968),	// VQABSv4i32
    UINT64_C(4088661824),	// VQABSv8i16
    UINT64_C(4088399616),	// VQABSv8i8
    UINT64_C(4060086352),	// VQADDsv16i8
    UINT64_C(4063232016),	// VQADDsv1i64
    UINT64_C(4062183440),	// VQADDsv2i32
    UINT64_C(4063232080),	// VQADDsv2i64
    UINT64_C(4061134864),	// VQADDsv4i16
    UINT64_C(4062183504),	// VQADDsv4i32
    UINT64_C(4061134928),	// VQADDsv8i16
    UINT64_C(4060086288),	// VQADDsv8i8
    UINT64_C(4076863568),	// VQADDuv16i8
    UINT64_C(4080009232),	// VQADDuv1i64
    UINT64_C(4078960656),	// VQADDuv2i32
    UINT64_C(4080009296),	// VQADDuv2i64
    UINT64_C(4077912080),	// VQADDuv4i16
    UINT64_C(4078960720),	// VQADDuv4i32
    UINT64_C(4077912144),	// VQADDuv8i16
    UINT64_C(4076863504),	// VQADDuv8i8
    UINT64_C(4070572864),	// VQDMLALslv2i32
    UINT64_C(4069524288),	// VQDMLALslv4i16
    UINT64_C(4070574336),	// VQDMLALv2i64
    UINT64_C(4069525760),	// VQDMLALv4i32
    UINT64_C(4070573888),	// VQDMLSLslv2i32
    UINT64_C(4069525312),	// VQDMLSLslv4i16
    UINT64_C(4070574848),	// VQDMLSLv2i64
    UINT64_C(4069526272),	// VQDMLSLv4i32
    UINT64_C(4070575168),	// VQDMULHslv2i32
    UINT64_C(4069526592),	// VQDMULHslv4i16
    UINT64_C(4087352384),	// VQDMULHslv4i32
    UINT64_C(4086303808),	// VQDMULHslv8i16
    UINT64_C(4062186240),	// VQDMULHv2i32
    UINT64_C(4061137664),	// VQDMULHv4i16
    UINT64_C(4062186304),	// VQDMULHv4i32
    UINT64_C(4061137728),	// VQDMULHv8i16
    UINT64_C(4070574912),	// VQDMULLslv2i32
    UINT64_C(4069526336),	// VQDMULLslv4i16
    UINT64_C(4070575360),	// VQDMULLv2i64
    UINT64_C(4069526784),	// VQDMULLv4i32
    UINT64_C(4089053760),	// VQMOVNsuv2i32
    UINT64_C(4088791616),	// VQMOVNsuv4i16
    UINT64_C(4088529472),	// VQMOVNsuv8i8
    UINT64_C(4089053824),	// VQMOVNsv2i32
    UINT64_C(4088791680),	// VQMOVNsv4i16
    UINT64_C(4088529536),	// VQMOVNsv8i8
    UINT64_C(4089053888),	// VQMOVNuv2i32
    UINT64_C(4088791744),	// VQMOVNuv4i16
    UINT64_C(4088529600),	// VQMOVNuv8i8
    UINT64_C(4088399808),	// VQNEGv16i8
    UINT64_C(4088924032),	// VQNEGv2i32
    UINT64_C(4088661888),	// VQNEGv4i16
    UINT64_C(4088924096),	// VQNEGv4i32
    UINT64_C(4088661952),	// VQNEGv8i16
    UINT64_C(4088399744),	// VQNEGv8i8
    UINT64_C(4070575680),	// VQRDMLAHslv2i32
    UINT64_C(4069527104),	// VQRDMLAHslv4i16
    UINT64_C(4087352896),	// VQRDMLAHslv4i32
    UINT64_C(4086304320),	// VQRDMLAHslv8i16
    UINT64_C(4078963472),	// VQRDMLAHv2i32
    UINT64_C(4077914896),	// VQRDMLAHv4i16
    UINT64_C(4078963536),	// VQRDMLAHv4i32
    UINT64_C(4077914960),	// VQRDMLAHv8i16
    UINT64_C(4070575936),	// VQRDMLSHslv2i32
    UINT64_C(4069527360),	// VQRDMLSHslv4i16
    UINT64_C(4087353152),	// VQRDMLSHslv4i32
    UINT64_C(4086304576),	// VQRDMLSHslv8i16
    UINT64_C(4078963728),	// VQRDMLSHv2i32
    UINT64_C(4077915152),	// VQRDMLSHv4i16
    UINT64_C(4078963792),	// VQRDMLSHv4i32
    UINT64_C(4077915216),	// VQRDMLSHv8i16
    UINT64_C(4070575424),	// VQRDMULHslv2i32
    UINT64_C(4069526848),	// VQRDMULHslv4i16
    UINT64_C(4087352640),	// VQRDMULHslv4i32
    UINT64_C(4086304064),	// VQRDMULHslv8i16
    UINT64_C(4078963456),	// VQRDMULHv2i32
    UINT64_C(4077914880),	// VQRDMULHv4i16
    UINT64_C(4078963520),	// VQRDMULHv4i32
    UINT64_C(4077914944),	// VQRDMULHv8i16
    UINT64_C(4060087632),	// VQRSHLsv16i8
    UINT64_C(4063233296),	// VQRSHLsv1i64
    UINT64_C(4062184720),	// VQRSHLsv2i32
    UINT64_C(4063233360),	// VQRSHLsv2i64
    UINT64_C(4061136144),	// VQRSHLsv4i16
    UINT64_C(4062184784),	// VQRSHLsv4i32
    UINT64_C(4061136208),	// VQRSHLsv8i16
    UINT64_C(4060087568),	// VQRSHLsv8i8
    UINT64_C(4076864848),	// VQRSHLuv16i8
    UINT64_C(4080010512),	// VQRSHLuv1i64
    UINT64_C(4078961936),	// VQRSHLuv2i32
    UINT64_C(4080010576),	// VQRSHLuv2i64
    UINT64_C(4077913360),	// VQRSHLuv4i16
    UINT64_C(4078962000),	// VQRSHLuv4i32
    UINT64_C(4077913424),	// VQRSHLuv8i16
    UINT64_C(4076864784),	// VQRSHLuv8i8
    UINT64_C(4070574416),	// VQRSHRNsv2i32
    UINT64_C(4069525840),	// VQRSHRNsv4i16
    UINT64_C(4069001552),	// VQRSHRNsv8i8
    UINT64_C(4087351632),	// VQRSHRNuv2i32
    UINT64_C(4086303056),	// VQRSHRNuv4i16
    UINT64_C(4085778768),	// VQRSHRNuv8i8
    UINT64_C(4087351376),	// VQRSHRUNv2i32
    UINT64_C(4086302800),	// VQRSHRUNv4i16
    UINT64_C(4085778512),	// VQRSHRUNv8i8
    UINT64_C(4069001040),	// VQSHLsiv16i8
    UINT64_C(4068476816),	// VQSHLsiv1i64
    UINT64_C(4070573840),	// VQSHLsiv2i32
    UINT64_C(4068476880),	// VQSHLsiv2i64
    UINT64_C(4069525264),	// VQSHLsiv4i16
    UINT64_C(4070573904),	// VQSHLsiv4i32
    UINT64_C(4069525328),	// VQSHLsiv8i16
    UINT64_C(4069000976),	// VQSHLsiv8i8
    UINT64_C(4085778000),	// VQSHLsuv16i8
    UINT64_C(4085253776),	// VQSHLsuv1i64
    UINT64_C(4087350800),	// VQSHLsuv2i32
    UINT64_C(4085253840),	// VQSHLsuv2i64
    UINT64_C(4086302224),	// VQSHLsuv4i16
    UINT64_C(4087350864),	// VQSHLsuv4i32
    UINT64_C(4086302288),	// VQSHLsuv8i16
    UINT64_C(4085777936),	// VQSHLsuv8i8
    UINT64_C(4060087376),	// VQSHLsv16i8
    UINT64_C(4063233040),	// VQSHLsv1i64
    UINT64_C(4062184464),	// VQSHLsv2i32
    UINT64_C(4063233104),	// VQSHLsv2i64
    UINT64_C(4061135888),	// VQSHLsv4i16
    UINT64_C(4062184528),	// VQSHLsv4i32
    UINT64_C(4061135952),	// VQSHLsv8i16
    UINT64_C(4060087312),	// VQSHLsv8i8
    UINT64_C(4085778256),	// VQSHLuiv16i8
    UINT64_C(4085254032),	// VQSHLuiv1i64
    UINT64_C(4087351056),	// VQSHLuiv2i32
    UINT64_C(4085254096),	// VQSHLuiv2i64
    UINT64_C(4086302480),	// VQSHLuiv4i16
    UINT64_C(4087351120),	// VQSHLuiv4i32
    UINT64_C(4086302544),	// VQSHLuiv8i16
    UINT64_C(4085778192),	// VQSHLuiv8i8
    UINT64_C(4076864592),	// VQSHLuv16i8
    UINT64_C(4080010256),	// VQSHLuv1i64
    UINT64_C(4078961680),	// VQSHLuv2i32
    UINT64_C(4080010320),	// VQSHLuv2i64
    UINT64_C(4077913104),	// VQSHLuv4i16
    UINT64_C(4078961744),	// VQSHLuv4i32
    UINT64_C(4077913168),	// VQSHLuv8i16
    UINT64_C(4076864528),	// VQSHLuv8i8
    UINT64_C(4070574352),	// VQSHRNsv2i32
    UINT64_C(4069525776),	// VQSHRNsv4i16
    UINT64_C(4069001488),	// VQSHRNsv8i8
    UINT64_C(4087351568),	// VQSHRNuv2i32
    UINT64_C(4086302992),	// VQSHRNuv4i16
    UINT64_C(4085778704),	// VQSHRNuv8i8
    UINT64_C(4087351312),	// VQSHRUNv2i32
    UINT64_C(4086302736),	// VQSHRUNv4i16
    UINT64_C(4085778448),	// VQSHRUNv8i8
    UINT64_C(4060086864),	// VQSUBsv16i8
    UINT64_C(4063232528),	// VQSUBsv1i64
    UINT64_C(4062183952),	// VQSUBsv2i32
    UINT64_C(4063232592),	// VQSUBsv2i64
    UINT64_C(4061135376),	// VQSUBsv4i16
    UINT64_C(4062184016),	// VQSUBsv4i32
    UINT64_C(4061135440),	// VQSUBsv8i16
    UINT64_C(4060086800),	// VQSUBsv8i8
    UINT64_C(4076864080),	// VQSUBuv16i8
    UINT64_C(4080009744),	// VQSUBuv1i64
    UINT64_C(4078961168),	// VQSUBuv2i32
    UINT64_C(4080009808),	// VQSUBuv2i64
    UINT64_C(4077912592),	// VQSUBuv4i16
    UINT64_C(4078961232),	// VQSUBuv4i32
    UINT64_C(4077912656),	// VQSUBuv8i16
    UINT64_C(4076864016),	// VQSUBuv8i8
    UINT64_C(4087350272),	// VRADDHNv2i32
    UINT64_C(4086301696),	// VRADDHNv4i16
    UINT64_C(4085253120),	// VRADDHNv8i8
    UINT64_C(4089119744),	// VRECPEd
    UINT64_C(4089120000),	// VRECPEfd
    UINT64_C(4089120064),	// VRECPEfq
    UINT64_C(4088857856),	// VRECPEhd
    UINT64_C(4088857920),	// VRECPEhq
    UINT64_C(4089119808),	// VRECPEq
    UINT64_C(4060090128),	// VRECPSfd
    UINT64_C(4060090192),	// VRECPSfq
    UINT64_C(4061138704),	// VRECPShd
    UINT64_C(4061138768),	// VRECPShq
    UINT64_C(4088398080),	// VREV16d8
    UINT64_C(4088398144),	// VREV16q8
    UINT64_C(4088660096),	// VREV32d16
    UINT64_C(4088397952),	// VREV32d8
    UINT64_C(4088660160),	// VREV32q16
    UINT64_C(4088398016),	// VREV32q8
    UINT64_C(4088659968),	// VREV64d16
    UINT64_C(4088922112),	// VREV64d32
    UINT64_C(4088397824),	// VREV64d8
    UINT64_C(4088660032),	// VREV64q16
    UINT64_C(4088922176),	// VREV64q32
    UINT64_C(4088397888),	// VREV64q8
    UINT64_C(4060086592),	// VRHADDsv16i8
    UINT64_C(4062183680),	// VRHADDsv2i32
    UINT64_C(4061135104),	// VRHADDsv4i16
    UINT64_C(4062183744),	// VRHADDsv4i32
    UINT64_C(4061135168),	// VRHADDsv8i16
    UINT64_C(4060086528),	// VRHADDsv8i8
    UINT64_C(4076863808),	// VRHADDuv16i8
    UINT64_C(4078960896),	// VRHADDuv2i32
    UINT64_C(4077912320),	// VRHADDuv4i16
    UINT64_C(4078960960),	// VRHADDuv4i32
    UINT64_C(4077912384),	// VRHADDuv8i16
    UINT64_C(4076863744),	// VRHADDuv8i8
    UINT64_C(4273474368),	// VRINTAD
    UINT64_C(4273473856),	// VRINTAH
    UINT64_C(4089054464),	// VRINTANDf
    UINT64_C(4088792320),	// VRINTANDh
    UINT64_C(4089054528),	// VRINTANQf
    UINT64_C(4088792384),	// VRINTANQh
    UINT64_C(4273474112),	// VRINTAS
    UINT64_C(4273670976),	// VRINTMD
    UINT64_C(4273670464),	// VRINTMH
    UINT64_C(4089054848),	// VRINTMNDf
    UINT64_C(4088792704),	// VRINTMNDh
    UINT64_C(4089054912),	// VRINTMNQf
    UINT64_C(4088792768),	// VRINTMNQh
    UINT64_C(4273670720),	// VRINTMS
    UINT64_C(4273539904),	// VRINTND
    UINT64_C(4273539392),	// VRINTNH
    UINT64_C(4089054208),	// VRINTNNDf
    UINT64_C(4088792064),	// VRINTNNDh
    UINT64_C(4089054272),	// VRINTNNQf
    UINT64_C(4088792128),	// VRINTNNQh
    UINT64_C(4273539648),	// VRINTNS
    UINT64_C(4273605440),	// VRINTPD
    UINT64_C(4273604928),	// VRINTPH
    UINT64_C(4089055104),	// VRINTPNDf
    UINT64_C(4088792960),	// VRINTPNDh
    UINT64_C(4089055168),	// VRINTPNQf
    UINT64_C(4088793024),	// VRINTPNQh
    UINT64_C(4273605184),	// VRINTPS
    UINT64_C(246811456),	// VRINTRD
    UINT64_C(246810944),	// VRINTRH
    UINT64_C(246811200),	// VRINTRS
    UINT64_C(246876992),	// VRINTXD
    UINT64_C(246876480),	// VRINTXH
    UINT64_C(4089054336),	// VRINTXNDf
    UINT64_C(4088792192),	// VRINTXNDh
    UINT64_C(4089054400),	// VRINTXNQf
    UINT64_C(4088792256),	// VRINTXNQh
    UINT64_C(246876736),	// VRINTXS
    UINT64_C(246811584),	// VRINTZD
    UINT64_C(246811072),	// VRINTZH
    UINT64_C(4089054592),	// VRINTZNDf
    UINT64_C(4088792448),	// VRINTZNDh
    UINT64_C(4089054656),	// VRINTZNQf
    UINT64_C(4088792512),	// VRINTZNQh
    UINT64_C(246811328),	// VRINTZS
    UINT64_C(4060087616),	// VRSHLsv16i8
    UINT64_C(4063233280),	// VRSHLsv1i64
    UINT64_C(4062184704),	// VRSHLsv2i32
    UINT64_C(4063233344),	// VRSHLsv2i64
    UINT64_C(4061136128),	// VRSHLsv4i16
    UINT64_C(4062184768),	// VRSHLsv4i32
    UINT64_C(4061136192),	// VRSHLsv8i16
    UINT64_C(4060087552),	// VRSHLsv8i8
    UINT64_C(4076864832),	// VRSHLuv16i8
    UINT64_C(4080010496),	// VRSHLuv1i64
    UINT64_C(4078961920),	// VRSHLuv2i32
    UINT64_C(4080010560),	// VRSHLuv2i64
    UINT64_C(4077913344),	// VRSHLuv4i16
    UINT64_C(4078961984),	// VRSHLuv4i32
    UINT64_C(4077913408),	// VRSHLuv8i16
    UINT64_C(4076864768),	// VRSHLuv8i8
    UINT64_C(4070574160),	// VRSHRNv2i32
    UINT64_C(4069525584),	// VRSHRNv4i16
    UINT64_C(4069001296),	// VRSHRNv8i8
    UINT64_C(4068999760),	// VRSHRsv16i8
    UINT64_C(4068475536),	// VRSHRsv1i64
    UINT64_C(4070572560),	// VRSHRsv2i32
    UINT64_C(4068475600),	// VRSHRsv2i64
    UINT64_C(4069523984),	// VRSHRsv4i16
    UINT64_C(4070572624),	// VRSHRsv4i32
    UINT64_C(4069524048),	// VRSHRsv8i16
    UINT64_C(4068999696),	// VRSHRsv8i8
    UINT64_C(4085776976),	// VRSHRuv16i8
    UINT64_C(4085252752),	// VRSHRuv1i64
    UINT64_C(4087349776),	// VRSHRuv2i32
    UINT64_C(4085252816),	// VRSHRuv2i64
    UINT64_C(4086301200),	// VRSHRuv4i16
    UINT64_C(4087349840),	// VRSHRuv4i32
    UINT64_C(4086301264),	// VRSHRuv8i16
    UINT64_C(4085776912),	// VRSHRuv8i8
    UINT64_C(4089119872),	// VRSQRTEd
    UINT64_C(4089120128),	// VRSQRTEfd
    UINT64_C(4089120192),	// VRSQRTEfq
    UINT64_C(4088857984),	// VRSQRTEhd
    UINT64_C(4088858048),	// VRSQRTEhq
    UINT64_C(4089119936),	// VRSQRTEq
    UINT64_C(4062187280),	// VRSQRTSfd
    UINT64_C(4062187344),	// VRSQRTSfq
    UINT64_C(4063235856),	// VRSQRTShd
    UINT64_C(4063235920),	// VRSQRTShq
    UINT64_C(4069000016),	// VRSRAsv16i8
    UINT64_C(4068475792),	// VRSRAsv1i64
    UINT64_C(4070572816),	// VRSRAsv2i32
    UINT64_C(4068475856),	// VRSRAsv2i64
    UINT64_C(4069524240),	// VRSRAsv4i16
    UINT64_C(4070572880),	// VRSRAsv4i32
    UINT64_C(4069524304),	// VRSRAsv8i16
    UINT64_C(4068999952),	// VRSRAsv8i8
    UINT64_C(4085777232),	// VRSRAuv16i8
    UINT64_C(4085253008),	// VRSRAuv1i64
    UINT64_C(4087350032),	// VRSRAuv2i32
    UINT64_C(4085253072),	// VRSRAuv2i64
    UINT64_C(4086301456),	// VRSRAuv4i16
    UINT64_C(4087350096),	// VRSRAuv4i32
    UINT64_C(4086301520),	// VRSRAuv8i16
    UINT64_C(4085777168),	// VRSRAuv8i8
    UINT64_C(4087350784),	// VRSUBHNv2i32
    UINT64_C(4086302208),	// VRSUBHNv4i16
    UINT64_C(4085253632),	// VRSUBHNv8i8
    UINT64_C(3969846016),	// VSCCLRMD
    UINT64_C(3969845760),	// VSCCLRMS
    UINT64_C(4229958912),	// VSDOTD
    UINT64_C(4263513344),	// VSDOTDI
    UINT64_C(4229958976),	// VSDOTQ
    UINT64_C(4263513408),	// VSDOTQI
    UINT64_C(4261415680),	// VSELEQD
    UINT64_C(4261415168),	// VSELEQH
    UINT64_C(4261415424),	// VSELEQS
    UINT64_C(4263512832),	// VSELGED
    UINT64_C(4263512320),	// VSELGEH
    UINT64_C(4263512576),	// VSELGES
    UINT64_C(4264561408),	// VSELGTD
    UINT64_C(4264560896),	// VSELGTH
    UINT64_C(4264561152),	// VSELGTS
    UINT64_C(4262464256),	// VSELVSD
    UINT64_C(4262463744),	// VSELVSH
    UINT64_C(4262464000),	// VSELVSS
    UINT64_C(234883888),	// VSETLNi16
    UINT64_C(234883856),	// VSETLNi32
    UINT64_C(239078160),	// VSETLNi8
    UINT64_C(4088791808),	// VSHLLi16
    UINT64_C(4089053952),	// VSHLLi32
    UINT64_C(4088529664),	// VSHLLi8
    UINT64_C(4070574608),	// VSHLLsv2i64
    UINT64_C(4069526032),	// VSHLLsv4i32
    UINT64_C(4069001744),	// VSHLLsv8i16
    UINT64_C(4087351824),	// VSHLLuv2i64
    UINT64_C(4086303248),	// VSHLLuv4i32
    UINT64_C(4085778960),	// VSHLLuv8i16
    UINT64_C(4069000528),	// VSHLiv16i8
    UINT64_C(4068476304),	// VSHLiv1i64
    UINT64_C(4070573328),	// VSHLiv2i32
    UINT64_C(4068476368),	// VSHLiv2i64
    UINT64_C(4069524752),	// VSHLiv4i16
    UINT64_C(4070573392),	// VSHLiv4i32
    UINT64_C(4069524816),	// VSHLiv8i16
    UINT64_C(4069000464),	// VSHLiv8i8
    UINT64_C(4060087360),	// VSHLsv16i8
    UINT64_C(4063233024),	// VSHLsv1i64
    UINT64_C(4062184448),	// VSHLsv2i32
    UINT64_C(4063233088),	// VSHLsv2i64
    UINT64_C(4061135872),	// VSHLsv4i16
    UINT64_C(4062184512),	// VSHLsv4i32
    UINT64_C(4061135936),	// VSHLsv8i16
    UINT64_C(4060087296),	// VSHLsv8i8
    UINT64_C(4076864576),	// VSHLuv16i8
    UINT64_C(4080010240),	// VSHLuv1i64
    UINT64_C(4078961664),	// VSHLuv2i32
    UINT64_C(4080010304),	// VSHLuv2i64
    UINT64_C(4077913088),	// VSHLuv4i16
    UINT64_C(4078961728),	// VSHLuv4i32
    UINT64_C(4077913152),	// VSHLuv8i16
    UINT64_C(4076864512),	// VSHLuv8i8
    UINT64_C(4070574096),	// VSHRNv2i32
    UINT64_C(4069525520),	// VSHRNv4i16
    UINT64_C(4069001232),	// VSHRNv8i8
    UINT64_C(4068999248),	// VSHRsv16i8
    UINT64_C(4068475024),	// VSHRsv1i64
    UINT64_C(4070572048),	// VSHRsv2i32
    UINT64_C(4068475088),	// VSHRsv2i64
    UINT64_C(4069523472),	// VSHRsv4i16
    UINT64_C(4070572112),	// VSHRsv4i32
    UINT64_C(4069523536),	// VSHRsv8i16
    UINT64_C(4068999184),	// VSHRsv8i8
    UINT64_C(4085776464),	// VSHRuv16i8
    UINT64_C(4085252240),	// VSHRuv1i64
    UINT64_C(4087349264),	// VSHRuv2i32
    UINT64_C(4085252304),	// VSHRuv2i64
    UINT64_C(4086300688),	// VSHRuv4i16
    UINT64_C(4087349328),	// VSHRuv4i32
    UINT64_C(4086300752),	// VSHRuv8i16
    UINT64_C(4085776400),	// VSHRuv8i8
    UINT64_C(247073600),	// VSHTOD
    UINT64_C(247073088),	// VSHTOH
    UINT64_C(247073344),	// VSHTOS
    UINT64_C(246942656),	// VSITOD
    UINT64_C(246942144),	// VSITOH
    UINT64_C(246942400),	// VSITOS
    UINT64_C(4085777744),	// VSLIv16i8
    UINT64_C(4085253520),	// VSLIv1i64
    UINT64_C(4087350544),	// VSLIv2i32
    UINT64_C(4085253584),	// VSLIv2i64
    UINT64_C(4086301968),	// VSLIv4i16
    UINT64_C(4087350608),	// VSLIv4i32
    UINT64_C(4086302032),	// VSLIv8i16
    UINT64_C(4085777680),	// VSLIv8i8
    UINT64_C(247073728),	// VSLTOD
    UINT64_C(247073216),	// VSLTOH
    UINT64_C(247073472),	// VSLTOS
    UINT64_C(4229958720),	// VSMMLA
    UINT64_C(246483904),	// VSQRTD
    UINT64_C(246483392),	// VSQRTH
    UINT64_C(246483648),	// VSQRTS
    UINT64_C(4068999504),	// VSRAsv16i8
    UINT64_C(4068475280),	// VSRAsv1i64
    UINT64_C(4070572304),	// VSRAsv2i32
    UINT64_C(4068475344),	// VSRAsv2i64
    UINT64_C(4069523728),	// VSRAsv4i16
    UINT64_C(4070572368),	// VSRAsv4i32
    UINT64_C(4069523792),	// VSRAsv8i16
    UINT64_C(4068999440),	// VSRAsv8i8
    UINT64_C(4085776720),	// VSRAuv16i8
    UINT64_C(4085252496),	// VSRAuv1i64
    UINT64_C(4087349520),	// VSRAuv2i32
    UINT64_C(4085252560),	// VSRAuv2i64
    UINT64_C(4086300944),	// VSRAuv4i16
    UINT64_C(4087349584),	// VSRAuv4i32
    UINT64_C(4086301008),	// VSRAuv8i16
    UINT64_C(4085776656),	// VSRAuv8i8
    UINT64_C(4085777488),	// VSRIv16i8
    UINT64_C(4085253264),	// VSRIv1i64
    UINT64_C(4087350288),	// VSRIv2i32
    UINT64_C(4085253328),	// VSRIv2i64
    UINT64_C(4086301712),	// VSRIv4i16
    UINT64_C(4087350352),	// VSRIv4i32
    UINT64_C(4086301776),	// VSRIv8i16
    UINT64_C(4085777424),	// VSRIv8i8
    UINT64_C(4102030351),	// VST1LNd16
    UINT64_C(4102030336),	// VST1LNd16_UPD
    UINT64_C(4102031375),	// VST1LNd32
    UINT64_C(4102031360),	// VST1LNd32_UPD
    UINT64_C(4102029327),	// VST1LNd8
    UINT64_C(4102029312),	// VST1LNd8_UPD
    UINT64_C(0),	// VST1LNq16Pseudo
    UINT64_C(0),	// VST1LNq16Pseudo_UPD
    UINT64_C(0),	// VST1LNq32Pseudo
    UINT64_C(0),	// VST1LNq32Pseudo_UPD
    UINT64_C(0),	// VST1LNq8Pseudo
    UINT64_C(0),	// VST1LNq8Pseudo_UPD
    UINT64_C(4093642575),	// VST1d16
    UINT64_C(4093641295),	// VST1d16Q
    UINT64_C(0),	// VST1d16QPseudo
    UINT64_C(0),	// VST1d16QPseudoWB_fixed
    UINT64_C(0),	// VST1d16QPseudoWB_register
    UINT64_C(4093641293),	// VST1d16Qwb_fixed
    UINT64_C(4093641280),	// VST1d16Qwb_register
    UINT64_C(4093642319),	// VST1d16T
    UINT64_C(0),	// VST1d16TPseudo
    UINT64_C(0),	// VST1d16TPseudoWB_fixed
    UINT64_C(0),	// VST1d16TPseudoWB_register
    UINT64_C(4093642317),	// VST1d16Twb_fixed
    UINT64_C(4093642304),	// VST1d16Twb_register
    UINT64_C(4093642573),	// VST1d16wb_fixed
    UINT64_C(4093642560),	// VST1d16wb_register
    UINT64_C(4093642639),	// VST1d32
    UINT64_C(4093641359),	// VST1d32Q
    UINT64_C(0),	// VST1d32QPseudo
    UINT64_C(0),	// VST1d32QPseudoWB_fixed
    UINT64_C(0),	// VST1d32QPseudoWB_register
    UINT64_C(4093641357),	// VST1d32Qwb_fixed
    UINT64_C(4093641344),	// VST1d32Qwb_register
    UINT64_C(4093642383),	// VST1d32T
    UINT64_C(0),	// VST1d32TPseudo
    UINT64_C(0),	// VST1d32TPseudoWB_fixed
    UINT64_C(0),	// VST1d32TPseudoWB_register
    UINT64_C(4093642381),	// VST1d32Twb_fixed
    UINT64_C(4093642368),	// VST1d32Twb_register
    UINT64_C(4093642637),	// VST1d32wb_fixed
    UINT64_C(4093642624),	// VST1d32wb_register
    UINT64_C(4093642703),	// VST1d64
    UINT64_C(4093641423),	// VST1d64Q
    UINT64_C(0),	// VST1d64QPseudo
    UINT64_C(0),	// VST1d64QPseudoWB_fixed
    UINT64_C(0),	// VST1d64QPseudoWB_register
    UINT64_C(4093641421),	// VST1d64Qwb_fixed
    UINT64_C(4093641408),	// VST1d64Qwb_register
    UINT64_C(4093642447),	// VST1d64T
    UINT64_C(0),	// VST1d64TPseudo
    UINT64_C(0),	// VST1d64TPseudoWB_fixed
    UINT64_C(0),	// VST1d64TPseudoWB_register
    UINT64_C(4093642445),	// VST1d64Twb_fixed
    UINT64_C(4093642432),	// VST1d64Twb_register
    UINT64_C(4093642701),	// VST1d64wb_fixed
    UINT64_C(4093642688),	// VST1d64wb_register
    UINT64_C(4093642511),	// VST1d8
    UINT64_C(4093641231),	// VST1d8Q
    UINT64_C(0),	// VST1d8QPseudo
    UINT64_C(0),	// VST1d8QPseudoWB_fixed
    UINT64_C(0),	// VST1d8QPseudoWB_register
    UINT64_C(4093641229),	// VST1d8Qwb_fixed
    UINT64_C(4093641216),	// VST1d8Qwb_register
    UINT64_C(4093642255),	// VST1d8T
    UINT64_C(0),	// VST1d8TPseudo
    UINT64_C(0),	// VST1d8TPseudoWB_fixed
    UINT64_C(0),	// VST1d8TPseudoWB_register
    UINT64_C(4093642253),	// VST1d8Twb_fixed
    UINT64_C(4093642240),	// VST1d8Twb_register
    UINT64_C(4093642509),	// VST1d8wb_fixed
    UINT64_C(4093642496),	// VST1d8wb_register
    UINT64_C(4093643343),	// VST1q16
    UINT64_C(0),	// VST1q16HighQPseudo
    UINT64_C(0),	// VST1q16HighQPseudo_UPD
    UINT64_C(0),	// VST1q16HighTPseudo
    UINT64_C(0),	// VST1q16HighTPseudo_UPD
    UINT64_C(0),	// VST1q16LowQPseudo_UPD
    UINT64_C(0),	// VST1q16LowTPseudo_UPD
    UINT64_C(4093643341),	// VST1q16wb_fixed
    UINT64_C(4093643328),	// VST1q16wb_register
    UINT64_C(4093643407),	// VST1q32
    UINT64_C(0),	// VST1q32HighQPseudo
    UINT64_C(0),	// VST1q32HighQPseudo_UPD
    UINT64_C(0),	// VST1q32HighTPseudo
    UINT64_C(0),	// VST1q32HighTPseudo_UPD
    UINT64_C(0),	// VST1q32LowQPseudo_UPD
    UINT64_C(0),	// VST1q32LowTPseudo_UPD
    UINT64_C(4093643405),	// VST1q32wb_fixed
    UINT64_C(4093643392),	// VST1q32wb_register
    UINT64_C(4093643471),	// VST1q64
    UINT64_C(0),	// VST1q64HighQPseudo
    UINT64_C(0),	// VST1q64HighQPseudo_UPD
    UINT64_C(0),	// VST1q64HighTPseudo
    UINT64_C(0),	// VST1q64HighTPseudo_UPD
    UINT64_C(0),	// VST1q64LowQPseudo_UPD
    UINT64_C(0),	// VST1q64LowTPseudo_UPD
    UINT64_C(4093643469),	// VST1q64wb_fixed
    UINT64_C(4093643456),	// VST1q64wb_register
    UINT64_C(4093643279),	// VST1q8
    UINT64_C(0),	// VST1q8HighQPseudo
    UINT64_C(0),	// VST1q8HighQPseudo_UPD
    UINT64_C(0),	// VST1q8HighTPseudo
    UINT64_C(0),	// VST1q8HighTPseudo_UPD
    UINT64_C(0),	// VST1q8LowQPseudo_UPD
    UINT64_C(0),	// VST1q8LowTPseudo_UPD
    UINT64_C(4093643277),	// VST1q8wb_fixed
    UINT64_C(4093643264),	// VST1q8wb_register
    UINT64_C(4102030607),	// VST2LNd16
    UINT64_C(0),	// VST2LNd16Pseudo
    UINT64_C(0),	// VST2LNd16Pseudo_UPD
    UINT64_C(4102030592),	// VST2LNd16_UPD
    UINT64_C(4102031631),	// VST2LNd32
    UINT64_C(0),	// VST2LNd32Pseudo
    UINT64_C(0),	// VST2LNd32Pseudo_UPD
    UINT64_C(4102031616),	// VST2LNd32_UPD
    UINT64_C(4102029583),	// VST2LNd8
    UINT64_C(0),	// VST2LNd8Pseudo
    UINT64_C(0),	// VST2LNd8Pseudo_UPD
    UINT64_C(4102029568),	// VST2LNd8_UPD
    UINT64_C(4102030639),	// VST2LNq16
    UINT64_C(0),	// VST2LNq16Pseudo
    UINT64_C(0),	// VST2LNq16Pseudo_UPD
    UINT64_C(4102030624),	// VST2LNq16_UPD
    UINT64_C(4102031695),	// VST2LNq32
    UINT64_C(0),	// VST2LNq32Pseudo
    UINT64_C(0),	// VST2LNq32Pseudo_UPD
    UINT64_C(4102031680),	// VST2LNq32_UPD
    UINT64_C(4093643087),	// VST2b16
    UINT64_C(4093643085),	// VST2b16wb_fixed
    UINT64_C(4093643072),	// VST2b16wb_register
    UINT64_C(4093643151),	// VST2b32
    UINT64_C(4093643149),	// VST2b32wb_fixed
    UINT64_C(4093643136),	// VST2b32wb_register
    UINT64_C(4093643023),	// VST2b8
    UINT64_C(4093643021),	// VST2b8wb_fixed
    UINT64_C(4093643008),	// VST2b8wb_register
    UINT64_C(4093642831),	// VST2d16
    UINT64_C(4093642829),	// VST2d16wb_fixed
    UINT64_C(4093642816),	// VST2d16wb_register
    UINT64_C(4093642895),	// VST2d32
    UINT64_C(4093642893),	// VST2d32wb_fixed
    UINT64_C(4093642880),	// VST2d32wb_register
    UINT64_C(4093642767),	// VST2d8
    UINT64_C(4093642765),	// VST2d8wb_fixed
    UINT64_C(4093642752),	// VST2d8wb_register
    UINT64_C(4093641551),	// VST2q16
    UINT64_C(0),	// VST2q16Pseudo
    UINT64_C(0),	// VST2q16PseudoWB_fixed
    UINT64_C(0),	// VST2q16PseudoWB_register
    UINT64_C(4093641549),	// VST2q16wb_fixed
    UINT64_C(4093641536),	// VST2q16wb_register
    UINT64_C(4093641615),	// VST2q32
    UINT64_C(0),	// VST2q32Pseudo
    UINT64_C(0),	// VST2q32PseudoWB_fixed
    UINT64_C(0),	// VST2q32PseudoWB_register
    UINT64_C(4093641613),	// VST2q32wb_fixed
    UINT64_C(4093641600),	// VST2q32wb_register
    UINT64_C(4093641487),	// VST2q8
    UINT64_C(0),	// VST2q8Pseudo
    UINT64_C(0),	// VST2q8PseudoWB_fixed
    UINT64_C(0),	// VST2q8PseudoWB_register
    UINT64_C(4093641485),	// VST2q8wb_fixed
    UINT64_C(4093641472),	// VST2q8wb_register
    UINT64_C(4102030863),	// VST3LNd16
    UINT64_C(0),	// VST3LNd16Pseudo
    UINT64_C(0),	// VST3LNd16Pseudo_UPD
    UINT64_C(4102030848),	// VST3LNd16_UPD
    UINT64_C(4102031887),	// VST3LNd32
    UINT64_C(0),	// VST3LNd32Pseudo
    UINT64_C(0),	// VST3LNd32Pseudo_UPD
    UINT64_C(4102031872),	// VST3LNd32_UPD
    UINT64_C(4102029839),	// VST3LNd8
    UINT64_C(0),	// VST3LNd8Pseudo
    UINT64_C(0),	// VST3LNd8Pseudo_UPD
    UINT64_C(4102029824),	// VST3LNd8_UPD
    UINT64_C(4102030895),	// VST3LNq16
    UINT64_C(0),	// VST3LNq16Pseudo
    UINT64_C(0),	// VST3LNq16Pseudo_UPD
    UINT64_C(4102030880),	// VST3LNq16_UPD
    UINT64_C(4102031951),	// VST3LNq32
    UINT64_C(0),	// VST3LNq32Pseudo
    UINT64_C(0),	// VST3LNq32Pseudo_UPD
    UINT64_C(4102031936),	// VST3LNq32_UPD
    UINT64_C(4093641807),	// VST3d16
    UINT64_C(0),	// VST3d16Pseudo
    UINT64_C(0),	// VST3d16Pseudo_UPD
    UINT64_C(4093641792),	// VST3d16_UPD
    UINT64_C(4093641871),	// VST3d32
    UINT64_C(0),	// VST3d32Pseudo
    UINT64_C(0),	// VST3d32Pseudo_UPD
    UINT64_C(4093641856),	// VST3d32_UPD
    UINT64_C(4093641743),	// VST3d8
    UINT64_C(0),	// VST3d8Pseudo
    UINT64_C(0),	// VST3d8Pseudo_UPD
    UINT64_C(4093641728),	// VST3d8_UPD
    UINT64_C(4093642063),	// VST3q16
    UINT64_C(0),	// VST3q16Pseudo_UPD
    UINT64_C(4093642048),	// VST3q16_UPD
    UINT64_C(0),	// VST3q16oddPseudo
    UINT64_C(0),	// VST3q16oddPseudo_UPD
    UINT64_C(4093642127),	// VST3q32
    UINT64_C(0),	// VST3q32Pseudo_UPD
    UINT64_C(4093642112),	// VST3q32_UPD
    UINT64_C(0),	// VST3q32oddPseudo
    UINT64_C(0),	// VST3q32oddPseudo_UPD
    UINT64_C(4093641999),	// VST3q8
    UINT64_C(0),	// VST3q8Pseudo_UPD
    UINT64_C(4093641984),	// VST3q8_UPD
    UINT64_C(0),	// VST3q8oddPseudo
    UINT64_C(0),	// VST3q8oddPseudo_UPD
    UINT64_C(4102031119),	// VST4LNd16
    UINT64_C(0),	// VST4LNd16Pseudo
    UINT64_C(0),	// VST4LNd16Pseudo_UPD
    UINT64_C(4102031104),	// VST4LNd16_UPD
    UINT64_C(4102032143),	// VST4LNd32
    UINT64_C(0),	// VST4LNd32Pseudo
    UINT64_C(0),	// VST4LNd32Pseudo_UPD
    UINT64_C(4102032128),	// VST4LNd32_UPD
    UINT64_C(4102030095),	// VST4LNd8
    UINT64_C(0),	// VST4LNd8Pseudo
    UINT64_C(0),	// VST4LNd8Pseudo_UPD
    UINT64_C(4102030080),	// VST4LNd8_UPD
    UINT64_C(4102031151),	// VST4LNq16
    UINT64_C(0),	// VST4LNq16Pseudo
    UINT64_C(0),	// VST4LNq16Pseudo_UPD
    UINT64_C(4102031136),	// VST4LNq16_UPD
    UINT64_C(4102032207),	// VST4LNq32
    UINT64_C(0),	// VST4LNq32Pseudo
    UINT64_C(0),	// VST4LNq32Pseudo_UPD
    UINT64_C(4102032192),	// VST4LNq32_UPD
    UINT64_C(4093640783),	// VST4d16
    UINT64_C(0),	// VST4d16Pseudo
    UINT64_C(0),	// VST4d16Pseudo_UPD
    UINT64_C(4093640768),	// VST4d16_UPD
    UINT64_C(4093640847),	// VST4d32
    UINT64_C(0),	// VST4d32Pseudo
    UINT64_C(0),	// VST4d32Pseudo_UPD
    UINT64_C(4093640832),	// VST4d32_UPD
    UINT64_C(4093640719),	// VST4d8
    UINT64_C(0),	// VST4d8Pseudo
    UINT64_C(0),	// VST4d8Pseudo_UPD
    UINT64_C(4093640704),	// VST4d8_UPD
    UINT64_C(4093641039),	// VST4q16
    UINT64_C(0),	// VST4q16Pseudo_UPD
    UINT64_C(4093641024),	// VST4q16_UPD
    UINT64_C(0),	// VST4q16oddPseudo
    UINT64_C(0),	// VST4q16oddPseudo_UPD
    UINT64_C(4093641103),	// VST4q32
    UINT64_C(0),	// VST4q32Pseudo_UPD
    UINT64_C(4093641088),	// VST4q32_UPD
    UINT64_C(0),	// VST4q32oddPseudo
    UINT64_C(0),	// VST4q32oddPseudo_UPD
    UINT64_C(4093640975),	// VST4q8
    UINT64_C(0),	// VST4q8Pseudo_UPD
    UINT64_C(4093640960),	// VST4q8_UPD
    UINT64_C(0),	// VST4q8oddPseudo
    UINT64_C(0),	// VST4q8oddPseudo_UPD
    UINT64_C(220203776),	// VSTMDDB_UPD
    UINT64_C(209718016),	// VSTMDIA
    UINT64_C(211815168),	// VSTMDIA_UPD
    UINT64_C(0),	// VSTMQIA
    UINT64_C(220203520),	// VSTMSDB_UPD
    UINT64_C(209717760),	// VSTMSIA
    UINT64_C(211814912),	// VSTMSIA_UPD
    UINT64_C(218106624),	// VSTRD
    UINT64_C(218106112),	// VSTRH
    UINT64_C(218106368),	// VSTRS
    UINT64_C(222351232),	// VSTR_FPCXTNS_off
    UINT64_C(207671168),	// VSTR_FPCXTNS_post
    UINT64_C(224448384),	// VSTR_FPCXTNS_pre
    UINT64_C(222359424),	// VSTR_FPCXTS_off
    UINT64_C(207679360),	// VSTR_FPCXTS_post
    UINT64_C(224456576),	// VSTR_FPCXTS_pre
    UINT64_C(218124160),	// VSTR_FPSCR_NZCVQC_off
    UINT64_C(203444096),	// VSTR_FPSCR_NZCVQC_post
    UINT64_C(220221312),	// VSTR_FPSCR_NZCVQC_pre
    UINT64_C(218115968),	// VSTR_FPSCR_off
    UINT64_C(203435904),	// VSTR_FPSCR_post
    UINT64_C(220213120),	// VSTR_FPSCR_pre
    UINT64_C(222343040),	// VSTR_P0_off
    UINT64_C(207662976),	// VSTR_P0_post
    UINT64_C(224440192),	// VSTR_P0_pre
    UINT64_C(222334848),	// VSTR_VPR_off
    UINT64_C(207654784),	// VSTR_VPR_post
    UINT64_C(224432000),	// VSTR_VPR_pre
    UINT64_C(238029632),	// VSUBD
    UINT64_C(238029120),	// VSUBH
    UINT64_C(4070573568),	// VSUBHNv2i32
    UINT64_C(4069524992),	// VSUBHNv4i16
    UINT64_C(4068476416),	// VSUBHNv8i8
    UINT64_C(4070572544),	// VSUBLsv2i64
    UINT64_C(4069523968),	// VSUBLsv4i32
    UINT64_C(4068475392),	// VSUBLsv8i16
    UINT64_C(4087349760),	// VSUBLuv2i64
    UINT64_C(4086301184),	// VSUBLuv4i32
    UINT64_C(4085252608),	// VSUBLuv8i16
    UINT64_C(238029376),	// VSUBS
    UINT64_C(4070572800),	// VSUBWsv2i64
    UINT64_C(4069524224),	// VSUBWsv4i32
    UINT64_C(4068475648),	// VSUBWsv8i16
    UINT64_C(4087350016),	// VSUBWuv2i64
    UINT64_C(4086301440),	// VSUBWuv4i32
    UINT64_C(4085252864),	// VSUBWuv8i16
    UINT64_C(4062186752),	// VSUBfd
    UINT64_C(4062186816),	// VSUBfq
    UINT64_C(4063235328),	// VSUBhd
    UINT64_C(4063235392),	// VSUBhq
    UINT64_C(4076865600),	// VSUBv16i8
    UINT64_C(4080011264),	// VSUBv1i64
    UINT64_C(4078962688),	// VSUBv2i32
    UINT64_C(4080011328),	// VSUBv2i64
    UINT64_C(4077914112),	// VSUBv4i16
    UINT64_C(4078962752),	// VSUBv4i32
    UINT64_C(4077914176),	// VSUBv8i16
    UINT64_C(4076865536),	// VSUBv8i8
    UINT64_C(4269804816),	// VSUDOTDI
    UINT64_C(4269804880),	// VSUDOTQI
    UINT64_C(4088528896),	// VSWPd
    UINT64_C(4088528960),	// VSWPq
    UINT64_C(4088399872),	// VTBL1
    UINT64_C(4088400128),	// VTBL2
    UINT64_C(4088400384),	// VTBL3
    UINT64_C(0),	// VTBL3Pseudo
    UINT64_C(4088400640),	// VTBL4
    UINT64_C(0),	// VTBL4Pseudo
    UINT64_C(4088399936),	// VTBX1
    UINT64_C(4088400192),	// VTBX2
    UINT64_C(4088400448),	// VTBX3
    UINT64_C(0),	// VTBX3Pseudo
    UINT64_C(4088400704),	// VTBX4
    UINT64_C(0),	// VTBX4Pseudo
    UINT64_C(247335744),	// VTOSHD
    UINT64_C(247335232),	// VTOSHH
    UINT64_C(247335488),	// VTOSHS
    UINT64_C(247270208),	// VTOSIRD
    UINT64_C(247269696),	// VTOSIRH
    UINT64_C(247269952),	// VTOSIRS
    UINT64_C(247270336),	// VTOSIZD
    UINT64_C(247269824),	// VTOSIZH
    UINT64_C(247270080),	// VTOSIZS
    UINT64_C(247335872),	// VTOSLD
    UINT64_C(247335360),	// VTOSLH
    UINT64_C(247335616),	// VTOSLS
    UINT64_C(247401280),	// VTOUHD
    UINT64_C(247400768),	// VTOUHH
    UINT64_C(247401024),	// VTOUHS
    UINT64_C(247204672),	// VTOUIRD
    UINT64_C(247204160),	// VTOUIRH
    UINT64_C(247204416),	// VTOUIRS
    UINT64_C(247204800),	// VTOUIZD
    UINT64_C(247204288),	// VTOUIZH
    UINT64_C(247204544),	// VTOUIZS
    UINT64_C(247401408),	// VTOULD
    UINT64_C(247400896),	// VTOULH
    UINT64_C(247401152),	// VTOULS
    UINT64_C(4088791168),	// VTRNd16
    UINT64_C(4089053312),	// VTRNd32
    UINT64_C(4088529024),	// VTRNd8
    UINT64_C(4088791232),	// VTRNq16
    UINT64_C(4089053376),	// VTRNq32
    UINT64_C(4088529088),	// VTRNq8
    UINT64_C(4060088400),	// VTSTv16i8
    UINT64_C(4062185488),	// VTSTv2i32
    UINT64_C(4061136912),	// VTSTv4i16
    UINT64_C(4062185552),	// VTSTv4i32
    UINT64_C(4061136976),	// VTSTv8i16
    UINT64_C(4060088336),	// VTSTv8i8
    UINT64_C(4229958928),	// VUDOTD
    UINT64_C(4263513360),	// VUDOTDI
    UINT64_C(4229958992),	// VUDOTQ
    UINT64_C(4263513424),	// VUDOTQI
    UINT64_C(247139136),	// VUHTOD
    UINT64_C(247138624),	// VUHTOH
    UINT64_C(247138880),	// VUHTOS
    UINT64_C(246942528),	// VUITOD
    UINT64_C(246942016),	// VUITOH
    UINT64_C(246942272),	// VUITOS
    UINT64_C(247139264),	// VULTOD
    UINT64_C(247138752),	// VULTOH
    UINT64_C(247139008),	// VULTOS
    UINT64_C(4229958736),	// VUMMLA
    UINT64_C(4238347520),	// VUSDOTD
    UINT64_C(4269804800),	// VUSDOTDI
    UINT64_C(4238347584),	// VUSDOTQ
    UINT64_C(4269804864),	// VUSDOTQI
    UINT64_C(4238347328),	// VUSMMLA
    UINT64_C(4088791296),	// VUZPd16
    UINT64_C(4088529152),	// VUZPd8
    UINT64_C(4088791360),	// VUZPq16
    UINT64_C(4089053504),	// VUZPq32
    UINT64_C(4088529216),	// VUZPq8
    UINT64_C(4088791424),	// VZIPd16
    UINT64_C(4088529280),	// VZIPd8
    UINT64_C(4088791488),	// VZIPq16
    UINT64_C(4089053632),	// VZIPq32
    UINT64_C(4088529344),	// VZIPq8
    UINT64_C(139460608),	// sysLDMDA
    UINT64_C(141557760),	// sysLDMDA_UPD
    UINT64_C(156237824),	// sysLDMDB
    UINT64_C(158334976),	// sysLDMDB_UPD
    UINT64_C(147849216),	// sysLDMIA
    UINT64_C(149946368),	// sysLDMIA_UPD
    UINT64_C(164626432),	// sysLDMIB
    UINT64_C(166723584),	// sysLDMIB_UPD
    UINT64_C(138412032),	// sysSTMDA
    UINT64_C(140509184),	// sysSTMDA_UPD
    UINT64_C(155189248),	// sysSTMDB
    UINT64_C(157286400),	// sysSTMDB_UPD
    UINT64_C(146800640),	// sysSTMIA
    UINT64_C(148897792),	// sysSTMIA_UPD
    UINT64_C(163577856),	// sysSTMIB
    UINT64_C(165675008),	// sysSTMIB_UPD
    UINT64_C(4047503360),	// t2ADCri
    UINT64_C(3946840064),	// t2ADCrr
    UINT64_C(3946840064),	// t2ADCrs
    UINT64_C(4043309056),	// t2ADDri
    UINT64_C(4060086272),	// t2ADDri12
    UINT64_C(3942645760),	// t2ADDrr
    UINT64_C(3942645760),	// t2ADDrs
    UINT64_C(4044164352),	// t2ADDspImm
    UINT64_C(4060941568),	// t2ADDspImm12
    UINT64_C(4061069312),	// t2ADR
    UINT64_C(4026531840),	// t2ANDri
    UINT64_C(3925868544),	// t2ANDrr
    UINT64_C(3925868544),	// t2ANDrs
    UINT64_C(3931045920),	// t2ASRri
    UINT64_C(4198559744),	// t2ASRrr
    UINT64_C(4088365101),	// t2AUT
    UINT64_C(4216327936),	// t2AUTG
    UINT64_C(4026568704),	// t2B
    UINT64_C(4084137984),	// t2BFC
    UINT64_C(4083154944),	// t2BFI
    UINT64_C(4026580993),	// t2BFLi
    UINT64_C(4033929217),	// t2BFLr
    UINT64_C(4030783489),	// t2BFi
    UINT64_C(4026589185),	// t2BFic
    UINT64_C(4032880641),	// t2BFr
    UINT64_C(4028628992),	// t2BICri
    UINT64_C(3927965696),	// t2BICrr
    UINT64_C(3927965696),	// t2BICrs
    UINT64_C(4088365071),	// t2BTI
    UINT64_C(4216327952),	// t2BXAUT
    UINT64_C(4089483008),	// t2BXJ
    UINT64_C(4026564608),	// t2Bcc
    UINT64_C(3992977408),	// t2CDP
    UINT64_C(4261412864),	// t2CDP2
    UINT64_C(4089417519),	// t2CLREX
    UINT64_C(3902734336),	// t2CLRM
    UINT64_C(4205899904),	// t2CLZ
    UINT64_C(4044361472),	// t2CMNri
    UINT64_C(3943698176),	// t2CMNzrr
    UINT64_C(3943698176),	// t2CMNzrs
    UINT64_C(4054847232),	// t2CMPri
    UINT64_C(3954183936),	// t2CMPrr
    UINT64_C(3954183936),	// t2CMPrs
    UINT64_C(4088365312),	// t2CPS1p
    UINT64_C(4088365056),	// t2CPS2p
    UINT64_C(4088365312),	// t2CPS3p
    UINT64_C(4206948480),	// t2CRC32B
    UINT64_C(4207997056),	// t2CRC32CB
    UINT64_C(4207997072),	// t2CRC32CH
    UINT64_C(4207997088),	// t2CRC32CW
    UINT64_C(4206948496),	// t2CRC32H
    UINT64_C(4206948512),	// t2CRC32W
    UINT64_C(3931144192),	// t2CSEL
    UINT64_C(3931148288),	// t2CSINC
    UINT64_C(3931152384),	// t2CSINV
    UINT64_C(3931156480),	// t2CSNEG
    UINT64_C(4088365296),	// t2DBG
    UINT64_C(4153376769),	// t2DCPS1
    UINT64_C(4153376770),	// t2DCPS2
    UINT64_C(4153376771),	// t2DCPS3
    UINT64_C(4030783489),	// t2DLS
    UINT64_C(4089417552),	// t2DMB
    UINT64_C(4089417536),	// t2DSB
    UINT64_C(4034920448),	// t2EORri
    UINT64_C(3934257152),	// t2EORrr
    UINT64_C(3934257152),	// t2EORrs
    UINT64_C(4088365056),	// t2HINT
    UINT64_C(4158685184),	// t2HVC
    UINT64_C(4089417568),	// t2ISB
    UINT64_C(48896),	// t2IT
    UINT64_C(0),	// t2Int_eh_sjlj_setjmp
    UINT64_C(0),	// t2Int_eh_sjlj_setjmp_nofp
    UINT64_C(3905949615),	// t2LDA
    UINT64_C(3905949583),	// t2LDAB
    UINT64_C(3905949679),	// t2LDAEX
    UINT64_C(3905949647),	// t2LDAEXB
    UINT64_C(3905945855),	// t2LDAEXD
    UINT64_C(3905949663),	// t2LDAEXH
    UINT64_C(3905949599),	// t2LDAH
    UINT64_C(4249878528),	// t2LDC2L_OFFSET
    UINT64_C(4241489920),	// t2LDC2L_OPTION
    UINT64_C(4235198464),	// t2LDC2L_POST
    UINT64_C(4251975680),	// t2LDC2L_PRE
    UINT64_C(4245684224),	// t2LDC2_OFFSET
    UINT64_C(4237295616),	// t2LDC2_OPTION
    UINT64_C(4231004160),	// t2LDC2_POST
    UINT64_C(4247781376),	// t2LDC2_PRE
    UINT64_C(3981443072),	// t2LDCL_OFFSET
    UINT64_C(3973054464),	// t2LDCL_OPTION
    UINT64_C(3966763008),	// t2LDCL_POST
    UINT64_C(3983540224),	// t2LDCL_PRE
    UINT64_C(3977248768),	// t2LDC_OFFSET
    UINT64_C(3968860160),	// t2LDC_OPTION
    UINT64_C(3962568704),	// t2LDC_POST
    UINT64_C(3979345920),	// t2LDC_PRE
    UINT64_C(3910139904),	// t2LDMDB
    UINT64_C(3912237056),	// t2LDMDB_UPD
    UINT64_C(3901751296),	// t2LDMIA
    UINT64_C(3903848448),	// t2LDMIA_UPD
    UINT64_C(4161801728),	// t2LDRBT
    UINT64_C(4161800448),	// t2LDRB_POST
    UINT64_C(4161801472),	// t2LDRB_PRE
    UINT64_C(4170186752),	// t2LDRBi12
    UINT64_C(4161801216),	// t2LDRBi8
    UINT64_C(4162781184),	// t2LDRBpci
    UINT64_C(4161798144),	// t2LDRBs
    UINT64_C(3899654144),	// t2LDRD_POST
    UINT64_C(3916431360),	// t2LDRD_PRE
    UINT64_C(3914334208),	// t2LDRDi8
    UINT64_C(3897560832),	// t2LDREX
    UINT64_C(3905949519),	// t2LDREXB
    UINT64_C(3905945727),	// t2LDREXD
    UINT64_C(3905949535),	// t2LDREXH
    UINT64_C(4163898880),	// t2LDRHT
    UINT64_C(4163897600),	// t2LDRH_POST
    UINT64_C(4163898624),	// t2LDRH_PRE
    UINT64_C(4172283904),	// t2LDRHi12
    UINT64_C(4163898368),	// t2LDRHi8
    UINT64_C(4164878336),	// t2LDRHpci
    UINT64_C(4163895296),	// t2LDRHs
    UINT64_C(4178578944),	// t2LDRSBT
    UINT64_C(4178577664),	// t2LDRSB_POST
    UINT64_C(4178578688),	// t2LDRSB_PRE
    UINT64_C(4186963968),	// t2LDRSBi12
    UINT64_C(4178578432),	// t2LDRSBi8
    UINT64_C(4179558400),	// t2LDRSBpci
    UINT64_C(4178575360),	// t2LDRSBs
    UINT64_C(4180676096),	// t2LDRSHT
    UINT64_C(4180674816),	// t2LDRSH_POST
    UINT64_C(4180675840),	// t2LDRSH_PRE
    UINT64_C(4189061120),	// t2LDRSHi12
    UINT64_C(4180675584),	// t2LDRSHi8
    UINT64_C(4181655552),	// t2LDRSHpci
    UINT64_C(4180672512),	// t2LDRSHs
    UINT64_C(4165996032),	// t2LDRT
    UINT64_C(4165994752),	// t2LDR_POST
    UINT64_C(4165995776),	// t2LDR_PRE
    UINT64_C(4174381056),	// t2LDRi12
    UINT64_C(4165995520),	// t2LDRi8
    UINT64_C(4166975488),	// t2LDRpci
    UINT64_C(4165992448),	// t2LDRs
    UINT64_C(4029661185),	// t2LE
    UINT64_C(4027564033),	// t2LEUpdate
    UINT64_C(3931045888),	// t2LSLri
    UINT64_C(4194365440),	// t2LSLrr
    UINT64_C(3931045904),	// t2LSRri
    UINT64_C(4196462592),	// t2LSRrr
    UINT64_C(3992977424),	// t2MCR
    UINT64_C(4261412880),	// t2MCR2
    UINT64_C(3963617280),	// t2MCRR
    UINT64_C(4232052736),	// t2MCRR2
    UINT64_C(4211081216),	// t2MLA
    UINT64_C(4211081232),	// t2MLS
    UINT64_C(4072669184),	// t2MOVTi16
    UINT64_C(4031709184),	// t2MOVi
    UINT64_C(4064280576),	// t2MOVi16
    UINT64_C(3931045888),	// t2MOVr
    UINT64_C(3932094560),	// t2MOVsra_flag
    UINT64_C(3932094544),	// t2MOVsrl_flag
    UINT64_C(3994026000),	// t2MRC
    UINT64_C(4262461456),	// t2MRC2
    UINT64_C(3964665856),	// t2MRRC
    UINT64_C(4233101312),	// t2MRRC2
    UINT64_C(4092559360),	// t2MRS_AR
    UINT64_C(4092559360),	// t2MRS_M
    UINT64_C(4091576352),	// t2MRSbanked
    UINT64_C(4093607936),	// t2MRSsys_AR
    UINT64_C(4085284864),	// t2MSR_AR
    UINT64_C(4085284864),	// t2MSR_M
    UINT64_C(4085284896),	// t2MSRbanked
    UINT64_C(4211142656),	// t2MUL
    UINT64_C(4033806336),	// t2MVNi
    UINT64_C(3933143040),	// t2MVNr
    UINT64_C(3933143040),	// t2MVNs
    UINT64_C(4032823296),	// t2ORNri
    UINT64_C(3932160000),	// t2ORNrr
    UINT64_C(3932160000),	// t2ORNrs
    UINT64_C(4030726144),	// t2ORRri
    UINT64_C(3930062848),	// t2ORRrr
    UINT64_C(3930062848),	// t2ORRrs
    UINT64_C(4088365085),	// t2PAC
    UINT64_C(4088365069),	// t2PACBTI
    UINT64_C(4217434112),	// t2PACG
    UINT64_C(3938451456),	// t2PKHBT
    UINT64_C(3938451488),	// t2PKHTB
    UINT64_C(4172345344),	// t2PLDWi12
    UINT64_C(4163959808),	// t2PLDWi8
    UINT64_C(4163956736),	// t2PLDWs
    UINT64_C(4170248192),	// t2PLDi12
    UINT64_C(4161862656),	// t2PLDi8
    UINT64_C(4162842624),	// t2PLDpci
    UINT64_C(4161859584),	// t2PLDs
    UINT64_C(4187025408),	// t2PLIi12
    UINT64_C(4178639872),	// t2PLIi8
    UINT64_C(4179619840),	// t2PLIpci
    UINT64_C(4178636800),	// t2PLIs
    UINT64_C(4202754176),	// t2QADD
    UINT64_C(4203802640),	// t2QADD16
    UINT64_C(4202754064),	// t2QADD8
    UINT64_C(4204851216),	// t2QASX
    UINT64_C(4202754192),	// t2QDADD
    UINT64_C(4202754224),	// t2QDSUB
    UINT64_C(4209045520),	// t2QSAX
    UINT64_C(4202754208),	// t2QSUB
    UINT64_C(4207996944),	// t2QSUB16
    UINT64_C(4206948368),	// t2QSUB8
    UINT64_C(4203802784),	// t2RBIT
    UINT64_C(4203802752),	// t2REV
    UINT64_C(4203802768),	// t2REV16
    UINT64_C(4203802800),	// t2REVSH
    UINT64_C(3893411840),	// t2RFEDB
    UINT64_C(3895508992),	// t2RFEDBW
    UINT64_C(3918577664),	// t2RFEIA
    UINT64_C(3920674816),	// t2RFEIAW
    UINT64_C(3931045936),	// t2RORri
    UINT64_C(4200656896),	// t2RORrr
    UINT64_C(3931045936),	// t2RRX
    UINT64_C(4055891968),	// t2RSBri
    UINT64_C(3955228672),	// t2RSBrr
    UINT64_C(3955228672),	// t2RSBrs
    UINT64_C(4203802624),	// t2SADD16
    UINT64_C(4202754048),	// t2SADD8
    UINT64_C(4204851200),	// t2SASX
    UINT64_C(4089417584),	// t2SB
    UINT64_C(4049600512),	// t2SBCri
    UINT64_C(3948937216),	// t2SBCrr
    UINT64_C(3948937216),	// t2SBCrs
    UINT64_C(4081057792),	// t2SBFX
    UINT64_C(4220580080),	// t2SDIV
    UINT64_C(4204851328),	// t2SEL
    UINT64_C(46608),	// t2SETPAN
    UINT64_C(3917474175),	// t2SG
    UINT64_C(4203802656),	// t2SHADD16
    UINT64_C(4202754080),	// t2SHADD8
    UINT64_C(4204851232),	// t2SHASX
    UINT64_C(4209045536),	// t2SHSAX
    UINT64_C(4207996960),	// t2SHSUB16
    UINT64_C(4206948384),	// t2SHSUB8
    UINT64_C(4159733760),	// t2SMC
    UINT64_C(4212129792),	// t2SMLABB
    UINT64_C(4212129808),	// t2SMLABT
    UINT64_C(4213178368),	// t2SMLAD
    UINT64_C(4213178384),	// t2SMLADX
    UINT64_C(4223664128),	// t2SMLAL
    UINT64_C(4223664256),	// t2SMLALBB
    UINT64_C(4223664272),	// t2SMLALBT
    UINT64_C(4223664320),	// t2SMLALD
    UINT64_C(4223664336),	// t2SMLALDX
    UINT64_C(4223664288),	// t2SMLALTB
    UINT64_C(4223664304),	// t2SMLALTT
    UINT64_C(4212129824),	// t2SMLATB
    UINT64_C(4212129840),	// t2SMLATT
    UINT64_C(4214226944),	// t2SMLAWB
    UINT64_C(4214226960),	// t2SMLAWT
    UINT64_C(4215275520),	// t2SMLSD
    UINT64_C(4215275536),	// t2SMLSDX
    UINT64_C(4224712896),	// t2SMLSLD
    UINT64_C(4224712912),	// t2SMLSLDX
    UINT64_C(4216324096),	// t2SMMLA
    UINT64_C(4216324112),	// t2SMMLAR
    UINT64_C(4217372672),	// t2SMMLS
    UINT64_C(4217372688),	// t2SMMLSR
    UINT64_C(4216385536),	// t2SMMUL
    UINT64_C(4216385552),	// t2SMMULR
    UINT64_C(4213239808),	// t2SMUAD
    UINT64_C(4213239824),	// t2SMUADX
    UINT64_C(4212191232),	// t2SMULBB
    UINT64_C(4212191248),	// t2SMULBT
    UINT64_C(4219469824),	// t2SMULL
    UINT64_C(4212191264),	// t2SMULTB
    UINT64_C(4212191280),	// t2SMULTT
    UINT64_C(4214288384),	// t2SMULWB
    UINT64_C(4214288400),	// t2SMULWT
    UINT64_C(4215336960),	// t2SMUSD
    UINT64_C(4215336976),	// t2SMUSDX
    UINT64_C(3893215232),	// t2SRSDB
    UINT64_C(3895312384),	// t2SRSDB_UPD
    UINT64_C(3918381056),	// t2SRSIA
    UINT64_C(3920478208),	// t2SRSIA_UPD
    UINT64_C(4076863488),	// t2SSAT
    UINT64_C(4078960640),	// t2SSAT16
    UINT64_C(4209045504),	// t2SSAX
    UINT64_C(4207996928),	// t2SSUB16
    UINT64_C(4206948352),	// t2SSUB8
    UINT64_C(4248829952),	// t2STC2L_OFFSET
    UINT64_C(4240441344),	// t2STC2L_OPTION
    UINT64_C(4234149888),	// t2STC2L_POST
    UINT64_C(4250927104),	// t2STC2L_PRE
    UINT64_C(4244635648),	// t2STC2_OFFSET
    UINT64_C(4236247040),	// t2STC2_OPTION
    UINT64_C(4229955584),	// t2STC2_POST
    UINT64_C(4246732800),	// t2STC2_PRE
    UINT64_C(3980394496),	// t2STCL_OFFSET
    UINT64_C(3972005888),	// t2STCL_OPTION
    UINT64_C(3965714432),	// t2STCL_POST
    UINT64_C(3982491648),	// t2STCL_PRE
    UINT64_C(3976200192),	// t2STC_OFFSET
    UINT64_C(3967811584),	// t2STC_OPTION
    UINT64_C(3961520128),	// t2STC_POST
    UINT64_C(3978297344),	// t2STC_PRE
    UINT64_C(3904901039),	// t2STL
    UINT64_C(3904901007),	// t2STLB
    UINT64_C(3904901088),	// t2STLEX
    UINT64_C(3904901056),	// t2STLEXB
    UINT64_C(3904897264),	// t2STLEXD
    UINT64_C(3904901072),	// t2STLEXH
    UINT64_C(3904901023),	// t2STLH
    UINT64_C(3909091328),	// t2STMDB
    UINT64_C(3911188480),	// t2STMDB_UPD
    UINT64_C(3900702720),	// t2STMIA
    UINT64_C(3902799872),	// t2STMIA_UPD
    UINT64_C(4160753152),	// t2STRBT
    UINT64_C(4160751872),	// t2STRB_POST
    UINT64_C(4160752896),	// t2STRB_PRE
    UINT64_C(4169138176),	// t2STRBi12
    UINT64_C(4160752640),	// t2STRBi8
    UINT64_C(4160749568),	// t2STRBs
    UINT64_C(3898605568),	// t2STRD_POST
    UINT64_C(3915382784),	// t2STRD_PRE
    UINT64_C(3913285632),	// t2STRDi8
    UINT64_C(3896508416),	// t2STREX
    UINT64_C(3904900928),	// t2STREXB
    UINT64_C(3904897136),	// t2STREXD
    UINT64_C(3904900944),	// t2STREXH
    UINT64_C(4162850304),	// t2STRHT
    UINT64_C(4162849024),	// t2STRH_POST
    UINT64_C(4162850048),	// t2STRH_PRE
    UINT64_C(4171235328),	// t2STRHi12
    UINT64_C(4162849792),	// t2STRHi8
    UINT64_C(4162846720),	// t2STRHs
    UINT64_C(4164947456),	// t2STRT
    UINT64_C(4164946176),	// t2STR_POST
    UINT64_C(4164947200),	// t2STR_PRE
    UINT64_C(4173332480),	// t2STRi12
    UINT64_C(4164946944),	// t2STRi8
    UINT64_C(4164943872),	// t2STRs
    UINT64_C(4091449088),	// t2SUBS_PC_LR
    UINT64_C(4053794816),	// t2SUBri
    UINT64_C(4070572032),	// t2SUBri12
    UINT64_C(3953131520),	// t2SUBrr
    UINT64_C(3953131520),	// t2SUBrs
    UINT64_C(4054650112),	// t2SUBspImm
    UINT64_C(4071427328),	// t2SUBspImm12
    UINT64_C(4198559872),	// t2SXTAB
    UINT64_C(4196462720),	// t2SXTAB16
    UINT64_C(4194365568),	// t2SXTAH
    UINT64_C(4199542912),	// t2SXTB
    UINT64_C(4197445760),	// t2SXTB16
    UINT64_C(4195348608),	// t2SXTH
    UINT64_C(3906007040),	// t2TBB
    UINT64_C(3906007056),	// t2TBH
    UINT64_C(4035972864),	// t2TEQri
    UINT64_C(3935309568),	// t2TEQrr
    UINT64_C(3935309568),	// t2TEQrs
    UINT64_C(4088365074),	// t2TSB
    UINT64_C(4027584256),	// t2TSTri
    UINT64_C(3926920960),	// t2TSTrr
    UINT64_C(3926920960),	// t2TSTrs
    UINT64_C(3896569856),	// t2TT
    UINT64_C(3896569984),	// t2TTA
    UINT64_C(3896570048),	// t2TTAT
    UINT64_C(3896569920),	// t2TTT
    UINT64_C(4203802688),	// t2UADD16
    UINT64_C(4202754112),	// t2UADD8
    UINT64_C(4204851264),	// t2UASX
    UINT64_C(4089446400),	// t2UBFX
    UINT64_C(4159741952),	// t2UDF
    UINT64_C(4222677232),	// t2UDIV
    UINT64_C(4203802720),	// t2UHADD16
    UINT64_C(4202754144),	// t2UHADD8
    UINT64_C(4204851296),	// t2UHASX
    UINT64_C(4209045600),	// t2UHSAX
    UINT64_C(4207997024),	// t2UHSUB16
    UINT64_C(4206948448),	// t2UHSUB8
    UINT64_C(4225761376),	// t2UMAAL
    UINT64_C(4225761280),	// t2UMLAL
    UINT64_C(4221566976),	// t2UMULL
    UINT64_C(4203802704),	// t2UQADD16
    UINT64_C(4202754128),	// t2UQADD8
    UINT64_C(4204851280),	// t2UQASX
    UINT64_C(4209045584),	// t2UQSAX
    UINT64_C(4207997008),	// t2UQSUB16
    UINT64_C(4206948432),	// t2UQSUB8
    UINT64_C(4218482688),	// t2USAD8
    UINT64_C(4218421248),	// t2USADA8
    UINT64_C(4085252096),	// t2USAT
    UINT64_C(4087349248),	// t2USAT16
    UINT64_C(4209045568),	// t2USAX
    UINT64_C(4207996992),	// t2USUB16
    UINT64_C(4206948416),	// t2USUB8
    UINT64_C(4199608448),	// t2UXTAB
    UINT64_C(4197511296),	// t2UXTAB16
    UINT64_C(4195414144),	// t2UXTAH
    UINT64_C(4200591488),	// t2UXTB
    UINT64_C(4198494336),	// t2UXTB16
    UINT64_C(4196397184),	// t2UXTH
    UINT64_C(4030775297),	// t2WLS
    UINT64_C(16704),	// tADC
    UINT64_C(17408),	// tADDhirr
    UINT64_C(7168),	// tADDi3
    UINT64_C(12288),	// tADDi8
    UINT64_C(17512),	// tADDrSP
    UINT64_C(43008),	// tADDrSPi
    UINT64_C(6144),	// tADDrr
    UINT64_C(45056),	// tADDspi
    UINT64_C(17541),	// tADDspr
    UINT64_C(40960),	// tADR
    UINT64_C(16384),	// tAND
    UINT64_C(4096),	// tASRri
    UINT64_C(16640),	// tASRrr
    UINT64_C(57344),	// tB
    UINT64_C(17280),	// tBIC
    UINT64_C(48640),	// tBKPT
    UINT64_C(4026585088),	// tBL
    UINT64_C(18308),	// tBLXNSr
    UINT64_C(4026580992),	// tBLXi
    UINT64_C(18304),	// tBLXr
    UINT64_C(18176),	// tBX
    UINT64_C(18180),	// tBXNS
    UINT64_C(53248),	// tBcc
    UINT64_C(47360),	// tCBNZ
    UINT64_C(45312),	// tCBZ
    UINT64_C(17088),	// tCMNz
    UINT64_C(17664),	// tCMPhir
    UINT64_C(10240),	// tCMPi8
    UINT64_C(17024),	// tCMPr
    UINT64_C(46688),	// tCPS
    UINT64_C(16448),	// tEOR
    UINT64_C(48896),	// tHINT
    UINT64_C(47744),	// tHLT
    UINT64_C(0),	// tInt_WIN_eh_sjlj_longjmp
    UINT64_C(0),	// tInt_eh_sjlj_longjmp
    UINT64_C(0),	// tInt_eh_sjlj_setjmp
    UINT64_C(51200),	// tLDMIA
    UINT64_C(30720),	// tLDRBi
    UINT64_C(23552),	// tLDRBr
    UINT64_C(34816),	// tLDRHi
    UINT64_C(23040),	// tLDRHr
    UINT64_C(22016),	// tLDRSB
    UINT64_C(24064),	// tLDRSH
    UINT64_C(26624),	// tLDRi
    UINT64_C(18432),	// tLDRpci
    UINT64_C(22528),	// tLDRr
    UINT64_C(38912),	// tLDRspi
    UINT64_C(0),	// tLSLri
    UINT64_C(16512),	// tLSLrr
    UINT64_C(2048),	// tLSRri
    UINT64_C(16576),	// tLSRrr
    UINT64_C(0),	// tMOVSr
    UINT64_C(8192),	// tMOVi8
    UINT64_C(17920),	// tMOVr
    UINT64_C(17216),	// tMUL
    UINT64_C(17344),	// tMVN
    UINT64_C(17152),	// tORR
    UINT64_C(17528),	// tPICADD
    UINT64_C(48128),	// tPOP
    UINT64_C(46080),	// tPUSH
    UINT64_C(47616),	// tREV
    UINT64_C(47680),	// tREV16
    UINT64_C(47808),	// tREVSH
    UINT64_C(16832),	// tROR
    UINT64_C(16960),	// tRSB
    UINT64_C(16768),	// tSBC
    UINT64_C(46672),	// tSETEND
    UINT64_C(49152),	// tSTMIA_UPD
    UINT64_C(28672),	// tSTRBi
    UINT64_C(21504),	// tSTRBr
    UINT64_C(32768),	// tSTRHi
    UINT64_C(20992),	// tSTRHr
    UINT64_C(24576),	// tSTRi
    UINT64_C(20480),	// tSTRr
    UINT64_C(36864),	// tSTRspi
    UINT64_C(7680),	// tSUBi3
    UINT64_C(14336),	// tSUBi8
    UINT64_C(6656),	// tSUBrr
    UINT64_C(45184),	// tSUBspi
    UINT64_C(57088),	// tSVC
    UINT64_C(45632),	// tSXTB
    UINT64_C(45568),	// tSXTH
    UINT64_C(57086),	// tTRAP
    UINT64_C(16896),	// tTST
    UINT64_C(56832),	// tUDF
    UINT64_C(45760),	// tUXTB
    UINT64_C(45696),	// tUXTH
    UINT64_C(57081),	// t__brkdiv0
    UINT64_C(0)
  };
  const unsigned opcode = MI.getOpcode();
  uint64_t Value = InstBits[opcode];
  uint64_t op = 0;
  (void)op;  // suppress warning
  switch (opcode) {
    case ARM::CLREX:
    case ARM::MVE_LCTP:
    case ARM::MVE_VPNOT:
    case ARM::SB:
    case ARM::TRAP:
    case ARM::TRAPNaCl:
    case ARM::TSB:
    case ARM::VBSPd:
    case ARM::VBSPq:
    case ARM::VLD1LNq16Pseudo:
    case ARM::VLD1LNq16Pseudo_UPD:
    case ARM::VLD1LNq32Pseudo:
    case ARM::VLD1LNq32Pseudo_UPD:
    case ARM::VLD1LNq8Pseudo:
    case ARM::VLD1LNq8Pseudo_UPD:
    case ARM::VLD1d16QPseudo:
    case ARM::VLD1d16QPseudoWB_fixed:
    case ARM::VLD1d16QPseudoWB_register:
    case ARM::VLD1d16TPseudo:
    case ARM::VLD1d16TPseudoWB_fixed:
    case ARM::VLD1d16TPseudoWB_register:
    case ARM::VLD1d32QPseudo:
    case ARM::VLD1d32QPseudoWB_fixed:
    case ARM::VLD1d32QPseudoWB_register:
    case ARM::VLD1d32TPseudo:
    case ARM::VLD1d32TPseudoWB_fixed:
    case ARM::VLD1d32TPseudoWB_register:
    case ARM::VLD1d64QPseudo:
    case ARM::VLD1d64QPseudoWB_fixed:
    case ARM::VLD1d64QPseudoWB_register:
    case ARM::VLD1d64TPseudo:
    case ARM::VLD1d64TPseudoWB_fixed:
    case ARM::VLD1d64TPseudoWB_register:
    case ARM::VLD1d8QPseudo:
    case ARM::VLD1d8QPseudoWB_fixed:
    case ARM::VLD1d8QPseudoWB_register:
    case ARM::VLD1d8TPseudo:
    case ARM::VLD1d8TPseudoWB_fixed:
    case ARM::VLD1d8TPseudoWB_register:
    case ARM::VLD1q16HighQPseudo:
    case ARM::VLD1q16HighQPseudo_UPD:
    case ARM::VLD1q16HighTPseudo:
    case ARM::VLD1q16HighTPseudo_UPD:
    case ARM::VLD1q16LowQPseudo_UPD:
    case ARM::VLD1q16LowTPseudo_UPD:
    case ARM::VLD1q32HighQPseudo:
    case ARM::VLD1q32HighQPseudo_UPD:
    case ARM::VLD1q32HighTPseudo:
    case ARM::VLD1q32HighTPseudo_UPD:
    case ARM::VLD1q32LowQPseudo_UPD:
    case ARM::VLD1q32LowTPseudo_UPD:
    case ARM::VLD1q64HighQPseudo:
    case ARM::VLD1q64HighQPseudo_UPD:
    case ARM::VLD1q64HighTPseudo:
    case ARM::VLD1q64HighTPseudo_UPD:
    case ARM::VLD1q64LowQPseudo_UPD:
    case ARM::VLD1q64LowTPseudo_UPD:
    case ARM::VLD1q8HighQPseudo:
    case ARM::VLD1q8HighQPseudo_UPD:
    case ARM::VLD1q8HighTPseudo:
    case ARM::VLD1q8HighTPseudo_UPD:
    case ARM::VLD1q8LowQPseudo_UPD:
    case ARM::VLD1q8LowTPseudo_UPD:
    case ARM::VLD2DUPq16EvenPseudo:
    case ARM::VLD2DUPq16OddPseudo:
    case ARM::VLD2DUPq16OddPseudoWB_fixed:
    case ARM::VLD2DUPq16OddPseudoWB_register:
    case ARM::VLD2DUPq32EvenPseudo:
    case ARM::VLD2DUPq32OddPseudo:
    case ARM::VLD2DUPq32OddPseudoWB_fixed:
    case ARM::VLD2DUPq32OddPseudoWB_register:
    case ARM::VLD2DUPq8EvenPseudo:
    case ARM::VLD2DUPq8OddPseudo:
    case ARM::VLD2DUPq8OddPseudoWB_fixed:
    case ARM::VLD2DUPq8OddPseudoWB_register:
    case ARM::VLD2LNd16Pseudo:
    case ARM::VLD2LNd16Pseudo_UPD:
    case ARM::VLD2LNd32Pseudo:
    case ARM::VLD2LNd32Pseudo_UPD:
    case ARM::VLD2LNd8Pseudo:
    case ARM::VLD2LNd8Pseudo_UPD:
    case ARM::VLD2LNq16Pseudo:
    case ARM::VLD2LNq16Pseudo_UPD:
    case ARM::VLD2LNq32Pseudo:
    case ARM::VLD2LNq32Pseudo_UPD:
    case ARM::VLD2q16Pseudo:
    case ARM::VLD2q16PseudoWB_fixed:
    case ARM::VLD2q16PseudoWB_register:
    case ARM::VLD2q32Pseudo:
    case ARM::VLD2q32PseudoWB_fixed:
    case ARM::VLD2q32PseudoWB_register:
    case ARM::VLD2q8Pseudo:
    case ARM::VLD2q8PseudoWB_fixed:
    case ARM::VLD2q8PseudoWB_register:
    case ARM::VLD3DUPd16Pseudo:
    case ARM::VLD3DUPd16Pseudo_UPD:
    case ARM::VLD3DUPd32Pseudo:
    case ARM::VLD3DUPd32Pseudo_UPD:
    case ARM::VLD3DUPd8Pseudo:
    case ARM::VLD3DUPd8Pseudo_UPD:
    case ARM::VLD3DUPq16EvenPseudo:
    case ARM::VLD3DUPq16OddPseudo:
    case ARM::VLD3DUPq16OddPseudo_UPD:
    case ARM::VLD3DUPq32EvenPseudo:
    case ARM::VLD3DUPq32OddPseudo:
    case ARM::VLD3DUPq32OddPseudo_UPD:
    case ARM::VLD3DUPq8EvenPseudo:
    case ARM::VLD3DUPq8OddPseudo:
    case ARM::VLD3DUPq8OddPseudo_UPD:
    case ARM::VLD3LNd16Pseudo:
    case ARM::VLD3LNd16Pseudo_UPD:
    case ARM::VLD3LNd32Pseudo:
    case ARM::VLD3LNd32Pseudo_UPD:
    case ARM::VLD3LNd8Pseudo:
    case ARM::VLD3LNd8Pseudo_UPD:
    case ARM::VLD3LNq16Pseudo:
    case ARM::VLD3LNq16Pseudo_UPD:
    case ARM::VLD3LNq32Pseudo:
    case ARM::VLD3LNq32Pseudo_UPD:
    case ARM::VLD3d16Pseudo:
    case ARM::VLD3d16Pseudo_UPD:
    case ARM::VLD3d32Pseudo:
    case ARM::VLD3d32Pseudo_UPD:
    case ARM::VLD3d8Pseudo:
    case ARM::VLD3d8Pseudo_UPD:
    case ARM::VLD3q16Pseudo_UPD:
    case ARM::VLD3q16oddPseudo:
    case ARM::VLD3q16oddPseudo_UPD:
    case ARM::VLD3q32Pseudo_UPD:
    case ARM::VLD3q32oddPseudo:
    case ARM::VLD3q32oddPseudo_UPD:
    case ARM::VLD3q8Pseudo_UPD:
    case ARM::VLD3q8oddPseudo:
    case ARM::VLD3q8oddPseudo_UPD:
    case ARM::VLD4DUPd16Pseudo:
    case ARM::VLD4DUPd16Pseudo_UPD:
    case ARM::VLD4DUPd32Pseudo:
    case ARM::VLD4DUPd32Pseudo_UPD:
    case ARM::VLD4DUPd8Pseudo:
    case ARM::VLD4DUPd8Pseudo_UPD:
    case ARM::VLD4DUPq16EvenPseudo:
    case ARM::VLD4DUPq16OddPseudo:
    case ARM::VLD4DUPq16OddPseudo_UPD:
    case ARM::VLD4DUPq32EvenPseudo:
    case ARM::VLD4DUPq32OddPseudo:
    case ARM::VLD4DUPq32OddPseudo_UPD:
    case ARM::VLD4DUPq8EvenPseudo:
    case ARM::VLD4DUPq8OddPseudo:
    case ARM::VLD4DUPq8OddPseudo_UPD:
    case ARM::VLD4LNd16Pseudo:
    case ARM::VLD4LNd16Pseudo_UPD:
    case ARM::VLD4LNd32Pseudo:
    case ARM::VLD4LNd32Pseudo_UPD:
    case ARM::VLD4LNd8Pseudo:
    case ARM::VLD4LNd8Pseudo_UPD:
    case ARM::VLD4LNq16Pseudo:
    case ARM::VLD4LNq16Pseudo_UPD:
    case ARM::VLD4LNq32Pseudo:
    case ARM::VLD4LNq32Pseudo_UPD:
    case ARM::VLD4d16Pseudo:
    case ARM::VLD4d16Pseudo_UPD:
    case ARM::VLD4d32Pseudo:
    case ARM::VLD4d32Pseudo_UPD:
    case ARM::VLD4d8Pseudo:
    case ARM::VLD4d8Pseudo_UPD:
    case ARM::VLD4q16Pseudo_UPD:
    case ARM::VLD4q16oddPseudo:
    case ARM::VLD4q16oddPseudo_UPD:
    case ARM::VLD4q32Pseudo_UPD:
    case ARM::VLD4q32oddPseudo:
    case ARM::VLD4q32oddPseudo_UPD:
    case ARM::VLD4q8Pseudo_UPD:
    case ARM::VLD4q8oddPseudo:
    case ARM::VLD4q8oddPseudo_UPD:
    case ARM::VLDMQIA:
    case ARM::VST1LNq16Pseudo:
    case ARM::VST1LNq16Pseudo_UPD:
    case ARM::VST1LNq32Pseudo:
    case ARM::VST1LNq32Pseudo_UPD:
    case ARM::VST1LNq8Pseudo:
    case ARM::VST1LNq8Pseudo_UPD:
    case ARM::VST1d16QPseudo:
    case ARM::VST1d16QPseudoWB_fixed:
    case ARM::VST1d16QPseudoWB_register:
    case ARM::VST1d16TPseudo:
    case ARM::VST1d16TPseudoWB_fixed:
    case ARM::VST1d16TPseudoWB_register:
    case ARM::VST1d32QPseudo:
    case ARM::VST1d32QPseudoWB_fixed:
    case ARM::VST1d32QPseudoWB_register:
    case ARM::VST1d32TPseudo:
    case ARM::VST1d32TPseudoWB_fixed:
    case ARM::VST1d32TPseudoWB_register:
    case ARM::VST1d64QPseudo:
    case ARM::VST1d64QPseudoWB_fixed:
    case ARM::VST1d64QPseudoWB_register:
    case ARM::VST1d64TPseudo:
    case ARM::VST1d64TPseudoWB_fixed:
    case ARM::VST1d64TPseudoWB_register:
    case ARM::VST1d8QPseudo:
    case ARM::VST1d8QPseudoWB_fixed:
    case ARM::VST1d8QPseudoWB_register:
    case ARM::VST1d8TPseudo:
    case ARM::VST1d8TPseudoWB_fixed:
    case ARM::VST1d8TPseudoWB_register:
    case ARM::VST1q16HighQPseudo:
    case ARM::VST1q16HighQPseudo_UPD:
    case ARM::VST1q16HighTPseudo:
    case ARM::VST1q16HighTPseudo_UPD:
    case ARM::VST1q16LowQPseudo_UPD:
    case ARM::VST1q16LowTPseudo_UPD:
    case ARM::VST1q32HighQPseudo:
    case ARM::VST1q32HighQPseudo_UPD:
    case ARM::VST1q32HighTPseudo:
    case ARM::VST1q32HighTPseudo_UPD:
    case ARM::VST1q32LowQPseudo_UPD:
    case ARM::VST1q32LowTPseudo_UPD:
    case ARM::VST1q64HighQPseudo:
    case ARM::VST1q64HighQPseudo_UPD:
    case ARM::VST1q64HighTPseudo:
    case ARM::VST1q64HighTPseudo_UPD:
    case ARM::VST1q64LowQPseudo_UPD:
    case ARM::VST1q64LowTPseudo_UPD:
    case ARM::VST1q8HighQPseudo:
    case ARM::VST1q8HighQPseudo_UPD:
    case ARM::VST1q8HighTPseudo:
    case ARM::VST1q8HighTPseudo_UPD:
    case ARM::VST1q8LowQPseudo_UPD:
    case ARM::VST1q8LowTPseudo_UPD:
    case ARM::VST2LNd16Pseudo:
    case ARM::VST2LNd16Pseudo_UPD:
    case ARM::VST2LNd32Pseudo:
    case ARM::VST2LNd32Pseudo_UPD:
    case ARM::VST2LNd8Pseudo:
    case ARM::VST2LNd8Pseudo_UPD:
    case ARM::VST2LNq16Pseudo:
    case ARM::VST2LNq16Pseudo_UPD:
    case ARM::VST2LNq32Pseudo:
    case ARM::VST2LNq32Pseudo_UPD:
    case ARM::VST2q16Pseudo:
    case ARM::VST2q16PseudoWB_fixed:
    case ARM::VST2q16PseudoWB_register:
    case ARM::VST2q32Pseudo:
    case ARM::VST2q32PseudoWB_fixed:
    case ARM::VST2q32PseudoWB_register:
    case ARM::VST2q8Pseudo:
    case ARM::VST2q8PseudoWB_fixed:
    case ARM::VST2q8PseudoWB_register:
    case ARM::VST3LNd16Pseudo:
    case ARM::VST3LNd16Pseudo_UPD:
    case ARM::VST3LNd32Pseudo:
    case ARM::VST3LNd32Pseudo_UPD:
    case ARM::VST3LNd8Pseudo:
    case ARM::VST3LNd8Pseudo_UPD:
    case ARM::VST3LNq16Pseudo:
    case ARM::VST3LNq16Pseudo_UPD:
    case ARM::VST3LNq32Pseudo:
    case ARM::VST3LNq32Pseudo_UPD:
    case ARM::VST3d16Pseudo:
    case ARM::VST3d16Pseudo_UPD:
    case ARM::VST3d32Pseudo:
    case ARM::VST3d32Pseudo_UPD:
    case ARM::VST3d8Pseudo:
    case ARM::VST3d8Pseudo_UPD:
    case ARM::VST3q16Pseudo_UPD:
    case ARM::VST3q16oddPseudo:
    case ARM::VST3q16oddPseudo_UPD:
    case ARM::VST3q32Pseudo_UPD:
    case ARM::VST3q32oddPseudo:
    case ARM::VST3q32oddPseudo_UPD:
    case ARM::VST3q8Pseudo_UPD:
    case ARM::VST3q8oddPseudo:
    case ARM::VST3q8oddPseudo_UPD:
    case ARM::VST4LNd16Pseudo:
    case ARM::VST4LNd16Pseudo_UPD:
    case ARM::VST4LNd32Pseudo:
    case ARM::VST4LNd32Pseudo_UPD:
    case ARM::VST4LNd8Pseudo:
    case ARM::VST4LNd8Pseudo_UPD:
    case ARM::VST4LNq16Pseudo:
    case ARM::VST4LNq16Pseudo_UPD:
    case ARM::VST4LNq32Pseudo:
    case ARM::VST4LNq32Pseudo_UPD:
    case ARM::VST4d16Pseudo:
    case ARM::VST4d16Pseudo_UPD:
    case ARM::VST4d32Pseudo:
    case ARM::VST4d32Pseudo_UPD:
    case ARM::VST4d8Pseudo:
    case ARM::VST4d8Pseudo_UPD:
    case ARM::VST4q16Pseudo_UPD:
    case ARM::VST4q16oddPseudo:
    case ARM::VST4q16oddPseudo_UPD:
    case ARM::VST4q32Pseudo_UPD:
    case ARM::VST4q32oddPseudo:
    case ARM::VST4q32oddPseudo_UPD:
    case ARM::VST4q8Pseudo_UPD:
    case ARM::VST4q8oddPseudo:
    case ARM::VST4q8oddPseudo_UPD:
    case ARM::VSTMQIA:
    case ARM::VTBL3Pseudo:
    case ARM::VTBL4Pseudo:
    case ARM::VTBX3Pseudo:
    case ARM::VTBX4Pseudo:
    case ARM::t2AUT:
    case ARM::t2BTI:
    case ARM::t2CLREX:
    case ARM::t2DCPS1:
    case ARM::t2DCPS2:
    case ARM::t2DCPS3:
    case ARM::t2Int_eh_sjlj_setjmp:
    case ARM::t2Int_eh_sjlj_setjmp_nofp:
    case ARM::t2PAC:
    case ARM::t2PACBTI:
    case ARM::t2SB:
    case ARM::t2SG:
    case ARM::t2TSB:
    case ARM::tInt_WIN_eh_sjlj_longjmp:
    case ARM::tInt_eh_sjlj_longjmp:
    case ARM::tInt_eh_sjlj_setjmp:
    case ARM::tTRAP:
    case ARM::t__brkdiv0: {
      break;
    }
    case ARM::VRINTAD:
    case ARM::VRINTMD:
    case ARM::VRINTND:
    case ARM::VRINTPD: {
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::VFP_VMAXNMD:
    case ARM::VFP_VMINNMD:
    case ARM::VSELEQD:
    case ARM::VSELGED:
    case ARM::VSELGTD:
    case ARM::VSELVSD: {
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Dn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MVE_VPST: {
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VDUP16:
    case ARM::MVE_VDUP32:
    case ARM::MVE_VDUP8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VMOV_to_lane_32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 21;
      Value |= (op & UINT64_C(2)) << 15;
      break;
    }
    case ARM::MVE_VMOV_to_lane_16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 20;
      Value |= (op & UINT64_C(4)) << 14;
      Value |= (op & UINT64_C(1)) << 6;
      break;
    }
    case ARM::MVE_VMOV_to_lane_8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(4)) << 19;
      Value |= (op & UINT64_C(8)) << 13;
      Value |= (op & UINT64_C(3)) << 5;
      break;
    }
    case ARM::MVE_VABSs16:
    case ARM::MVE_VABSs32:
    case ARM::MVE_VABSs8:
    case ARM::MVE_VCLSs16:
    case ARM::MVE_VCLSs32:
    case ARM::MVE_VCLSs8:
    case ARM::MVE_VCLZs16:
    case ARM::MVE_VCLZs32:
    case ARM::MVE_VCLZs8:
    case ARM::MVE_VCVTf32f16bh:
    case ARM::MVE_VCVTf32f16th:
    case ARM::MVE_VMOVLs16bh:
    case ARM::MVE_VMOVLs16th:
    case ARM::MVE_VMOVLs8bh:
    case ARM::MVE_VMOVLs8th:
    case ARM::MVE_VMOVLu16bh:
    case ARM::MVE_VMOVLu16th:
    case ARM::MVE_VMOVLu8bh:
    case ARM::MVE_VMOVLu8th:
    case ARM::MVE_VMVN:
    case ARM::MVE_VNEGs16:
    case ARM::MVE_VNEGs32:
    case ARM::MVE_VNEGs8:
    case ARM::MVE_VQABSs16:
    case ARM::MVE_VQABSs32:
    case ARM::MVE_VQABSs8:
    case ARM::MVE_VQNEGs16:
    case ARM::MVE_VQNEGs32:
    case ARM::MVE_VQNEGs8:
    case ARM::MVE_VREV16_8:
    case ARM::MVE_VREV32_16:
    case ARM::MVE_VREV32_8:
    case ARM::MVE_VREV64_16:
    case ARM::MVE_VREV64_32:
    case ARM::MVE_VREV64_8:
    case ARM::MVE_VSHLL_lws16bh:
    case ARM::MVE_VSHLL_lws16th:
    case ARM::MVE_VSHLL_lws8bh:
    case ARM::MVE_VSHLL_lws8th:
    case ARM::MVE_VSHLL_lwu16bh:
    case ARM::MVE_VSHLL_lwu16th:
    case ARM::MVE_VSHLL_lwu8bh:
    case ARM::MVE_VSHLL_lwu8th: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VQRSHL_by_vecs16:
    case ARM::MVE_VQRSHL_by_vecs32:
    case ARM::MVE_VQRSHL_by_vecs8:
    case ARM::MVE_VQRSHL_by_vecu16:
    case ARM::MVE_VQRSHL_by_vecu32:
    case ARM::MVE_VQRSHL_by_vecu8:
    case ARM::MVE_VQSHL_by_vecs16:
    case ARM::MVE_VQSHL_by_vecs32:
    case ARM::MVE_VQSHL_by_vecs8:
    case ARM::MVE_VQSHL_by_vecu16:
    case ARM::MVE_VQSHL_by_vecu32:
    case ARM::MVE_VQSHL_by_vecu8:
    case ARM::MVE_VRSHL_by_vecs16:
    case ARM::MVE_VRSHL_by_vecs32:
    case ARM::MVE_VRSHL_by_vecs8:
    case ARM::MVE_VRSHL_by_vecu16:
    case ARM::MVE_VRSHL_by_vecu32:
    case ARM::MVE_VRSHL_by_vecu8:
    case ARM::MVE_VSHL_by_vecs16:
    case ARM::MVE_VSHL_by_vecs32:
    case ARM::MVE_VSHL_by_vecs8:
    case ARM::MVE_VSHL_by_vecu16:
    case ARM::MVE_VSHL_by_vecu32:
    case ARM::MVE_VSHL_by_vecu8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      break;
    }
    case ARM::MVE_VSHLL_imms16bh:
    case ARM::MVE_VSHLL_imms16th:
    case ARM::MVE_VSHLL_immu16bh:
    case ARM::MVE_VSHLL_immu16th: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMVEShiftImmOpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VSHLL_imms8bh:
    case ARM::MVE_VSHLL_imms8th:
    case ARM::MVE_VSHLL_immu8bh:
    case ARM::MVE_VSHLL_immu8th: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMVEShiftImmOpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VQSHLU_imms16:
    case ARM::MVE_VQSHLimms16:
    case ARM::MVE_VQSHLimmu16:
    case ARM::MVE_VSHL_immi16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VQSHLU_imms32:
    case ARM::MVE_VQSHLimms32:
    case ARM::MVE_VQSHLimmu32:
    case ARM::MVE_VSHL_immi32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VQSHLU_imms8:
    case ARM::MVE_VQSHLimms8:
    case ARM::MVE_VQSHLimmu8:
    case ARM::MVE_VSHL_immi8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VRSHR_imms16:
    case ARM::MVE_VRSHR_immu16:
    case ARM::MVE_VSHR_imms16:
    case ARM::MVE_VSHR_immu16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight16Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VRSHR_imms32:
    case ARM::MVE_VRSHR_immu32:
    case ARM::MVE_VSHR_imms32:
    case ARM::MVE_VSHR_immu32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight32Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VRSHR_imms8:
    case ARM::MVE_VRSHR_immu8:
    case ARM::MVE_VSHR_imms8:
    case ARM::MVE_VSHR_immu8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight8Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VCVTf16f32bh:
    case ARM::MVE_VCVTf16f32th:
    case ARM::MVE_VMAXAs16:
    case ARM::MVE_VMAXAs32:
    case ARM::MVE_VMAXAs8:
    case ARM::MVE_VMAXNMAf16:
    case ARM::MVE_VMAXNMAf32:
    case ARM::MVE_VMINAs16:
    case ARM::MVE_VMINAs32:
    case ARM::MVE_VMINAs8:
    case ARM::MVE_VMINNMAf16:
    case ARM::MVE_VMINNMAf32:
    case ARM::MVE_VMOVNi16bh:
    case ARM::MVE_VMOVNi16th:
    case ARM::MVE_VMOVNi32bh:
    case ARM::MVE_VMOVNi32th:
    case ARM::MVE_VQMOVNs16bh:
    case ARM::MVE_VQMOVNs16th:
    case ARM::MVE_VQMOVNs32bh:
    case ARM::MVE_VQMOVNs32th:
    case ARM::MVE_VQMOVNu16bh:
    case ARM::MVE_VQMOVNu16th:
    case ARM::MVE_VQMOVNu32bh:
    case ARM::MVE_VQMOVNu32th:
    case ARM::MVE_VQMOVUNs16bh:
    case ARM::MVE_VQMOVUNs16th:
    case ARM::MVE_VQMOVUNs32bh:
    case ARM::MVE_VQMOVUNs32th: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VAND:
    case ARM::MVE_VBIC:
    case ARM::MVE_VEOR:
    case ARM::MVE_VMULHs16:
    case ARM::MVE_VMULHs32:
    case ARM::MVE_VMULHs8:
    case ARM::MVE_VMULHu16:
    case ARM::MVE_VMULHu32:
    case ARM::MVE_VMULHu8:
    case ARM::MVE_VMULLBp16:
    case ARM::MVE_VMULLBp8:
    case ARM::MVE_VMULLBs16:
    case ARM::MVE_VMULLBs32:
    case ARM::MVE_VMULLBs8:
    case ARM::MVE_VMULLBu16:
    case ARM::MVE_VMULLBu32:
    case ARM::MVE_VMULLBu8:
    case ARM::MVE_VMULLTp16:
    case ARM::MVE_VMULLTp8:
    case ARM::MVE_VMULLTs16:
    case ARM::MVE_VMULLTs32:
    case ARM::MVE_VMULLTs8:
    case ARM::MVE_VMULLTu16:
    case ARM::MVE_VMULLTu32:
    case ARM::MVE_VMULLTu8:
    case ARM::MVE_VORN:
    case ARM::MVE_VORR:
    case ARM::MVE_VQDMULLs16bh:
    case ARM::MVE_VQDMULLs16th:
    case ARM::MVE_VQDMULLs32bh:
    case ARM::MVE_VQDMULLs32th:
    case ARM::MVE_VRMULHs16:
    case ARM::MVE_VRMULHs32:
    case ARM::MVE_VRMULHs8:
    case ARM::MVE_VRMULHu16:
    case ARM::MVE_VRMULHu32:
    case ARM::MVE_VRMULHu8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      break;
    }
    case ARM::MVE_VCMULf16:
    case ARM::MVE_VCMULf32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 11;
      Value |= (op & UINT64_C(1));
      break;
    }
    case ARM::MVE_VCADDi16:
    case ARM::MVE_VCADDi32:
    case ARM::MVE_VCADDi8:
    case ARM::MVE_VHCADDs16:
    case ARM::MVE_VHCADDs32:
    case ARM::MVE_VHCADDs8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VSLIimm16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VSLIimm32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VSLIimm8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VQRSHRNbhs32:
    case ARM::MVE_VQRSHRNbhu32:
    case ARM::MVE_VQRSHRNths32:
    case ARM::MVE_VQRSHRNthu32:
    case ARM::MVE_VQRSHRUNs32bh:
    case ARM::MVE_VQRSHRUNs32th:
    case ARM::MVE_VQSHRNbhs32:
    case ARM::MVE_VQSHRNbhu32:
    case ARM::MVE_VQSHRNths32:
    case ARM::MVE_VQSHRNthu32:
    case ARM::MVE_VQSHRUNs32bh:
    case ARM::MVE_VQSHRUNs32th:
    case ARM::MVE_VRSHRNi32bh:
    case ARM::MVE_VRSHRNi32th:
    case ARM::MVE_VSHRNi32bh:
    case ARM::MVE_VSHRNi32th:
    case ARM::MVE_VSRIimm16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight16Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VSRIimm32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight32Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VQRSHRNbhs16:
    case ARM::MVE_VQRSHRNbhu16:
    case ARM::MVE_VQRSHRNths16:
    case ARM::MVE_VQRSHRNthu16:
    case ARM::MVE_VQRSHRUNs16bh:
    case ARM::MVE_VQRSHRUNs16th:
    case ARM::MVE_VQSHRNbhs16:
    case ARM::MVE_VQSHRNbhu16:
    case ARM::MVE_VQSHRNths16:
    case ARM::MVE_VQSHRNthu16:
    case ARM::MVE_VQSHRUNs16bh:
    case ARM::MVE_VQSHRUNs16th:
    case ARM::MVE_VRSHRNi16bh:
    case ARM::MVE_VRSHRNi16th:
    case ARM::MVE_VSHRNi16bh:
    case ARM::MVE_VSHRNi16th:
    case ARM::MVE_VSRIimm8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: imm
      op = getShiftRight8Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VADC:
    case ARM::MVE_VADCI:
    case ARM::MVE_VQDMLADHXs16:
    case ARM::MVE_VQDMLADHXs32:
    case ARM::MVE_VQDMLADHXs8:
    case ARM::MVE_VQDMLADHs16:
    case ARM::MVE_VQDMLADHs32:
    case ARM::MVE_VQDMLADHs8:
    case ARM::MVE_VQDMLSDHXs16:
    case ARM::MVE_VQDMLSDHXs32:
    case ARM::MVE_VQDMLSDHXs8:
    case ARM::MVE_VQDMLSDHs16:
    case ARM::MVE_VQDMLSDHs32:
    case ARM::MVE_VQDMLSDHs8:
    case ARM::MVE_VQRDMLADHXs16:
    case ARM::MVE_VQRDMLADHXs32:
    case ARM::MVE_VQRDMLADHXs8:
    case ARM::MVE_VQRDMLADHs16:
    case ARM::MVE_VQRDMLADHs32:
    case ARM::MVE_VQRDMLADHs8:
    case ARM::MVE_VQRDMLSDHXs16:
    case ARM::MVE_VQRDMLSDHXs32:
    case ARM::MVE_VQRDMLSDHXs8:
    case ARM::MVE_VQRDMLSDHs16:
    case ARM::MVE_VQRDMLSDHs32:
    case ARM::MVE_VQRDMLSDHs8:
    case ARM::MVE_VSBC:
    case ARM::MVE_VSBCI: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      break;
    }
    case ARM::MVE_VABDs16:
    case ARM::MVE_VABDs32:
    case ARM::MVE_VABDs8:
    case ARM::MVE_VABDu16:
    case ARM::MVE_VABDu32:
    case ARM::MVE_VABDu8:
    case ARM::MVE_VADDi16:
    case ARM::MVE_VADDi32:
    case ARM::MVE_VADDi8:
    case ARM::MVE_VHADDs16:
    case ARM::MVE_VHADDs32:
    case ARM::MVE_VHADDs8:
    case ARM::MVE_VHADDu16:
    case ARM::MVE_VHADDu32:
    case ARM::MVE_VHADDu8:
    case ARM::MVE_VHSUBs16:
    case ARM::MVE_VHSUBs32:
    case ARM::MVE_VHSUBs8:
    case ARM::MVE_VHSUBu16:
    case ARM::MVE_VHSUBu32:
    case ARM::MVE_VHSUBu8:
    case ARM::MVE_VMAXNMf16:
    case ARM::MVE_VMAXNMf32:
    case ARM::MVE_VMAXs16:
    case ARM::MVE_VMAXs32:
    case ARM::MVE_VMAXs8:
    case ARM::MVE_VMAXu16:
    case ARM::MVE_VMAXu32:
    case ARM::MVE_VMAXu8:
    case ARM::MVE_VMINNMf16:
    case ARM::MVE_VMINNMf32:
    case ARM::MVE_VMINs16:
    case ARM::MVE_VMINs32:
    case ARM::MVE_VMINs8:
    case ARM::MVE_VMINu16:
    case ARM::MVE_VMINu32:
    case ARM::MVE_VMINu8:
    case ARM::MVE_VMULi16:
    case ARM::MVE_VMULi32:
    case ARM::MVE_VMULi8:
    case ARM::MVE_VQADDs16:
    case ARM::MVE_VQADDs32:
    case ARM::MVE_VQADDs8:
    case ARM::MVE_VQADDu16:
    case ARM::MVE_VQADDu32:
    case ARM::MVE_VQADDu8:
    case ARM::MVE_VQDMULHi16:
    case ARM::MVE_VQDMULHi32:
    case ARM::MVE_VQDMULHi8:
    case ARM::MVE_VQRDMULHi16:
    case ARM::MVE_VQRDMULHi32:
    case ARM::MVE_VQRDMULHi8:
    case ARM::MVE_VQSUBs16:
    case ARM::MVE_VQSUBs32:
    case ARM::MVE_VQSUBs8:
    case ARM::MVE_VQSUBu16:
    case ARM::MVE_VQSUBu32:
    case ARM::MVE_VQSUBu8:
    case ARM::MVE_VRHADDs16:
    case ARM::MVE_VRHADDs32:
    case ARM::MVE_VRHADDs8:
    case ARM::MVE_VRHADDu16:
    case ARM::MVE_VRHADDu32:
    case ARM::MVE_VRHADDu8:
    case ARM::MVE_VSUBi16:
    case ARM::MVE_VSUBi32:
    case ARM::MVE_VSUBi8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VADD_qr_f16:
    case ARM::MVE_VADD_qr_f32:
    case ARM::MVE_VADD_qr_i16:
    case ARM::MVE_VADD_qr_i32:
    case ARM::MVE_VADD_qr_i8:
    case ARM::MVE_VBRSR16:
    case ARM::MVE_VBRSR32:
    case ARM::MVE_VBRSR8:
    case ARM::MVE_VHADD_qr_s16:
    case ARM::MVE_VHADD_qr_s32:
    case ARM::MVE_VHADD_qr_s8:
    case ARM::MVE_VHADD_qr_u16:
    case ARM::MVE_VHADD_qr_u32:
    case ARM::MVE_VHADD_qr_u8:
    case ARM::MVE_VHSUB_qr_s16:
    case ARM::MVE_VHSUB_qr_s32:
    case ARM::MVE_VHSUB_qr_s8:
    case ARM::MVE_VHSUB_qr_u16:
    case ARM::MVE_VHSUB_qr_u32:
    case ARM::MVE_VHSUB_qr_u8:
    case ARM::MVE_VMUL_qr_f16:
    case ARM::MVE_VMUL_qr_f32:
    case ARM::MVE_VMUL_qr_i16:
    case ARM::MVE_VMUL_qr_i32:
    case ARM::MVE_VMUL_qr_i8:
    case ARM::MVE_VQADD_qr_s16:
    case ARM::MVE_VQADD_qr_s32:
    case ARM::MVE_VQADD_qr_s8:
    case ARM::MVE_VQADD_qr_u16:
    case ARM::MVE_VQADD_qr_u32:
    case ARM::MVE_VQADD_qr_u8:
    case ARM::MVE_VQDMULH_qr_s16:
    case ARM::MVE_VQDMULH_qr_s32:
    case ARM::MVE_VQDMULH_qr_s8:
    case ARM::MVE_VQDMULL_qr_s16bh:
    case ARM::MVE_VQDMULL_qr_s16th:
    case ARM::MVE_VQDMULL_qr_s32bh:
    case ARM::MVE_VQDMULL_qr_s32th:
    case ARM::MVE_VQRDMULH_qr_s16:
    case ARM::MVE_VQRDMULH_qr_s32:
    case ARM::MVE_VQRDMULH_qr_s8:
    case ARM::MVE_VQSUB_qr_s16:
    case ARM::MVE_VQSUB_qr_s32:
    case ARM::MVE_VQSUB_qr_s8:
    case ARM::MVE_VQSUB_qr_u16:
    case ARM::MVE_VQSUB_qr_u32:
    case ARM::MVE_VQSUB_qr_u8:
    case ARM::MVE_VSUB_qr_f16:
    case ARM::MVE_VSUB_qr_f32:
    case ARM::MVE_VSUB_qr_i16:
    case ARM::MVE_VSUB_qr_i32:
    case ARM::MVE_VSUB_qr_i8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VFMA_qr_Sf16:
    case ARM::MVE_VFMA_qr_Sf32:
    case ARM::MVE_VFMA_qr_f16:
    case ARM::MVE_VFMA_qr_f32:
    case ARM::MVE_VMLAS_qr_i16:
    case ARM::MVE_VMLAS_qr_i32:
    case ARM::MVE_VMLAS_qr_i8:
    case ARM::MVE_VMLA_qr_i16:
    case ARM::MVE_VMLA_qr_i32:
    case ARM::MVE_VMLA_qr_i8:
    case ARM::MVE_VQDMLAH_qrs16:
    case ARM::MVE_VQDMLAH_qrs32:
    case ARM::MVE_VQDMLAH_qrs8:
    case ARM::MVE_VQDMLASH_qrs16:
    case ARM::MVE_VQDMLASH_qrs32:
    case ARM::MVE_VQDMLASH_qrs8:
    case ARM::MVE_VQRDMLAH_qrs16:
    case ARM::MVE_VQRDMLAH_qrs32:
    case ARM::MVE_VQRDMLAH_qrs8:
    case ARM::MVE_VQRDMLASH_qrs16:
    case ARM::MVE_VQRDMLASH_qrs32:
    case ARM::MVE_VQRDMLASH_qrs8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VQRSHL_qrs16:
    case ARM::MVE_VQRSHL_qrs32:
    case ARM::MVE_VQRSHL_qrs8:
    case ARM::MVE_VQRSHL_qru16:
    case ARM::MVE_VQRSHL_qru32:
    case ARM::MVE_VQRSHL_qru8:
    case ARM::MVE_VQSHL_qrs16:
    case ARM::MVE_VQSHL_qrs32:
    case ARM::MVE_VQSHL_qrs8:
    case ARM::MVE_VQSHL_qru16:
    case ARM::MVE_VQSHL_qru32:
    case ARM::MVE_VQSHL_qru8:
    case ARM::MVE_VRSHL_qrs16:
    case ARM::MVE_VRSHL_qrs32:
    case ARM::MVE_VRSHL_qrs8:
    case ARM::MVE_VRSHL_qru16:
    case ARM::MVE_VRSHL_qru32:
    case ARM::MVE_VRSHL_qru8:
    case ARM::MVE_VSHL_qrs16:
    case ARM::MVE_VSHL_qrs32:
    case ARM::MVE_VSHL_qrs8:
    case ARM::MVE_VSHL_qru16:
    case ARM::MVE_VSHL_qru32:
    case ARM::MVE_VSHL_qru8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VDWDUPu16:
    case ARM::MVE_VDWDUPu32:
    case ARM::MVE_VDWDUPu8:
    case ARM::MVE_VIWDUPu16:
    case ARM::MVE_VIWDUPu32:
    case ARM::MVE_VIWDUPu8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(14);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getPowerTwoOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1));
      break;
    }
    case ARM::MVE_VDDUPu16:
    case ARM::MVE_VDDUPu32:
    case ARM::MVE_VDDUPu8:
    case ARM::MVE_VIDUPu16:
    case ARM::MVE_VIDUPu32:
    case ARM::MVE_VIDUPu8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getPowerTwoOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1));
      break;
    }
    case ARM::MVE_VLDRWU32_qi:
    case ARM::MVE_VSTRW32_qi: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getMveAddrModeQOpValue<2>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 9;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRDU64_qi:
    case ARM::MVE_VSTRD64_qi: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getMveAddrModeQOpValue<3>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 9;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRBS16_rq:
    case ARM::MVE_VLDRBS32_rq:
    case ARM::MVE_VLDRBU16_rq:
    case ARM::MVE_VLDRBU32_rq:
    case ARM::MVE_VLDRBU8_rq:
    case ARM::MVE_VLDRDU64_rq:
    case ARM::MVE_VLDRDU64_rq_u:
    case ARM::MVE_VLDRHS32_rq:
    case ARM::MVE_VLDRHS32_rq_u:
    case ARM::MVE_VLDRHU16_rq:
    case ARM::MVE_VLDRHU16_rq_u:
    case ARM::MVE_VLDRHU32_rq:
    case ARM::MVE_VLDRHU32_rq_u:
    case ARM::MVE_VLDRWU32_rq:
    case ARM::MVE_VLDRWU32_rq_u:
    case ARM::MVE_VSTRB16_rq:
    case ARM::MVE_VSTRB32_rq:
    case ARM::MVE_VSTRB8_rq:
    case ARM::MVE_VSTRD64_rq:
    case ARM::MVE_VSTRD64_rq_u:
    case ARM::MVE_VSTRH16_rq:
    case ARM::MVE_VSTRH16_rq_u:
    case ARM::MVE_VSTRH32_rq:
    case ARM::MVE_VSTRH32_rq_u:
    case ARM::MVE_VSTRW32_rq:
    case ARM::MVE_VSTRW32_rq_u: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getMveAddrModeRQOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(120)) << 13;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VLDRBS16:
    case ARM::MVE_VLDRBS32:
    case ARM::MVE_VLDRBU16:
    case ARM::MVE_VLDRBU32:
    case ARM::MVE_VSTRB16:
    case ARM::MVE_VSTRB32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,0>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRBU8:
    case ARM::MVE_VSTRBU8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,0>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRHS32:
    case ARM::MVE_VLDRHU32:
    case ARM::MVE_VSTRH32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,1>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRHU16:
    case ARM::MVE_VSTRHU16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,1>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRWU32:
    case ARM::MVE_VSTRWU32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,2>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VMOV_from_lane_32: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 21;
      Value |= (op & UINT64_C(2)) << 15;
      break;
    }
    case ARM::MVE_VMOV_from_lane_s16:
    case ARM::MVE_VMOV_from_lane_u16: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 20;
      Value |= (op & UINT64_C(4)) << 14;
      Value |= (op & UINT64_C(1)) << 6;
      break;
    }
    case ARM::MVE_VMOV_from_lane_s8:
    case ARM::MVE_VMOV_from_lane_u8: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Idx
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(4)) << 19;
      Value |= (op & UINT64_C(8)) << 13;
      Value |= (op & UINT64_C(3)) << 5;
      break;
    }
    case ARM::MVE_VLDRWU32_qi_pre:
    case ARM::MVE_VSTRW32_qi_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getMveAddrModeQOpValue<2>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 9;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRDU64_qi_pre:
    case ARM::MVE_VSTRD64_qi_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getMveAddrModeQOpValue<3>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 9;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRBS16_pre:
    case ARM::MVE_VLDRBS32_pre:
    case ARM::MVE_VLDRBU16_pre:
    case ARM::MVE_VLDRBU32_pre:
    case ARM::MVE_VSTRB16_pre:
    case ARM::MVE_VSTRB32_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,0>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRBU8_pre:
    case ARM::MVE_VSTRBU8_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,0>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRHS32_pre:
    case ARM::MVE_VLDRHU32_pre:
    case ARM::MVE_VSTRH32_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,1>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(1792)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRHU16_pre:
    case ARM::MVE_VSTRHU16_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,1>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRWU32_pre:
    case ARM::MVE_VSTRWU32_pre: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<7,2>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      break;
    }
    case ARM::MVE_VLDRBU8_post:
    case ARM::MVE_VSTRBU8_post: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,0>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLDRBS16_post:
    case ARM::MVE_VLDRBS32_post:
    case ARM::MVE_VLDRBU16_post:
    case ARM::MVE_VLDRBU32_post:
    case ARM::MVE_VSTRB16_post:
    case ARM::MVE_VSTRB32_post: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,0>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLDRHU16_post:
    case ARM::MVE_VSTRHU16_post: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,1>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLDRHS32_post:
    case ARM::MVE_VLDRHU32_post:
    case ARM::MVE_VSTRH32_post: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,1>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLDRWU32_post:
    case ARM::MVE_VSTRWU32_post: {
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,2>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VABSf16:
    case ARM::MVE_VABSf32:
    case ARM::MVE_VCVTf16s16n:
    case ARM::MVE_VCVTf16u16n:
    case ARM::MVE_VCVTf32s32n:
    case ARM::MVE_VCVTf32u32n:
    case ARM::MVE_VCVTs16f16a:
    case ARM::MVE_VCVTs16f16m:
    case ARM::MVE_VCVTs16f16n:
    case ARM::MVE_VCVTs16f16p:
    case ARM::MVE_VCVTs16f16z:
    case ARM::MVE_VCVTs32f32a:
    case ARM::MVE_VCVTs32f32m:
    case ARM::MVE_VCVTs32f32n:
    case ARM::MVE_VCVTs32f32p:
    case ARM::MVE_VCVTs32f32z:
    case ARM::MVE_VCVTu16f16a:
    case ARM::MVE_VCVTu16f16m:
    case ARM::MVE_VCVTu16f16n:
    case ARM::MVE_VCVTu16f16p:
    case ARM::MVE_VCVTu16f16z:
    case ARM::MVE_VCVTu32f32a:
    case ARM::MVE_VCVTu32f32m:
    case ARM::MVE_VCVTu32f32n:
    case ARM::MVE_VCVTu32f32p:
    case ARM::MVE_VCVTu32f32z:
    case ARM::MVE_VNEGf16:
    case ARM::MVE_VNEGf32:
    case ARM::MVE_VRINTf16A:
    case ARM::MVE_VRINTf16M:
    case ARM::MVE_VRINTf16N:
    case ARM::MVE_VRINTf16P:
    case ARM::MVE_VRINTf16X:
    case ARM::MVE_VRINTf16Z:
    case ARM::MVE_VRINTf32A:
    case ARM::MVE_VRINTf32M:
    case ARM::MVE_VRINTf32N:
    case ARM::MVE_VRINTf32P:
    case ARM::MVE_VRINTf32X:
    case ARM::MVE_VRINTf32Z: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VCVTf16s16_fix:
    case ARM::MVE_VCVTf16u16_fix:
    case ARM::MVE_VCVTs16f16_fix:
    case ARM::MVE_VCVTu16f16_fix: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: imm6
      op = getNEONVcvtImm32OpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VCVTf32s32_fix:
    case ARM::MVE_VCVTf32u32_fix:
    case ARM::MVE_VCVTs32f32_fix:
    case ARM::MVE_VCVTu32f32_fix: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: imm6
      op = getNEONVcvtImm32OpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VADDVs16no_acc:
    case ARM::MVE_VADDVs32no_acc:
    case ARM::MVE_VADDVs8no_acc:
    case ARM::MVE_VADDVu16no_acc:
    case ARM::MVE_VADDVu32no_acc:
    case ARM::MVE_VADDVu8no_acc: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Rda
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VABDf16:
    case ARM::MVE_VABDf32:
    case ARM::MVE_VADDf16:
    case ARM::MVE_VADDf32:
    case ARM::MVE_VMULf16:
    case ARM::MVE_VMULf32:
    case ARM::MVE_VSUBf16:
    case ARM::MVE_VSUBf32: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      break;
    }
    case ARM::MVE_VCADDf16:
    case ARM::MVE_VCADDf32: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 24;
      Value |= op;
      break;
    }
    case ARM::MVE_VADDVs16acc:
    case ARM::MVE_VADDVs32acc:
    case ARM::MVE_VADDVs8acc:
    case ARM::MVE_VADDVu16acc:
    case ARM::MVE_VADDVu32acc:
    case ARM::MVE_VADDVu8acc: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Rda
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VMAXAVs16:
    case ARM::MVE_VMAXAVs32:
    case ARM::MVE_VMAXAVs8:
    case ARM::MVE_VMAXNMAVf16:
    case ARM::MVE_VMAXNMAVf32:
    case ARM::MVE_VMAXNMVf16:
    case ARM::MVE_VMAXNMVf32:
    case ARM::MVE_VMAXVs16:
    case ARM::MVE_VMAXVs32:
    case ARM::MVE_VMAXVs8:
    case ARM::MVE_VMAXVu16:
    case ARM::MVE_VMAXVu32:
    case ARM::MVE_VMAXVu8:
    case ARM::MVE_VMINAVs16:
    case ARM::MVE_VMINAVs32:
    case ARM::MVE_VMINAVs8:
    case ARM::MVE_VMINNMAVf16:
    case ARM::MVE_VMINNMAVf32:
    case ARM::MVE_VMINNMVf16:
    case ARM::MVE_VMINNMVf32:
    case ARM::MVE_VMINVs16:
    case ARM::MVE_VMINVs32:
    case ARM::MVE_VMINVs8:
    case ARM::MVE_VMINVu16:
    case ARM::MVE_VMINVu32:
    case ARM::MVE_VMINVu8: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: RdaDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VADDLVs32no_acc:
    case ARM::MVE_VADDLVu32no_acc: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: RdaLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: RdaHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 19;
      Value |= op;
      break;
    }
    case ARM::MVE_VFMAf16:
    case ARM::MVE_VFMAf32:
    case ARM::MVE_VFMSf16:
    case ARM::MVE_VFMSf32: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      break;
    }
    case ARM::MVE_VCMLAf16:
    case ARM::MVE_VCMLAf32: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 23;
      Value |= op;
      break;
    }
    case ARM::MVE_VABAVs16:
    case ARM::MVE_VABAVs32:
    case ARM::MVE_VABAVs8:
    case ARM::MVE_VABAVu16:
    case ARM::MVE_VABAVu32:
    case ARM::MVE_VABAVu8: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Rda
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_VADDLVs32acc:
    case ARM::MVE_VADDLVu32acc: {
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: RdaLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: RdaHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 19;
      Value |= op;
      break;
    }
    case ARM::MVE_VPSEL: {
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(7)) << 17;
      Value |= (op & UINT64_C(8)) << 4;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::t2AUTG:
    case ARM::t2BXAUT: {
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::tMOVr: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 4;
      Value |= (op & UINT64_C(7));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::t2STLEX: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2STLEXB:
    case ARM::t2STLEXH:
    case ARM::t2STREXB:
    case ARM::t2STREXH: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::t2STLEXD:
    case ARM::t2STREXD: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::CRC32B:
    case ARM::CRC32CB:
    case ARM::CRC32CH:
    case ARM::CRC32CW:
    case ARM::CRC32H:
    case ARM::CRC32W: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2MRS_AR:
    case ARM::t2MRSsys_AR: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::t2CLZ:
    case ARM::t2RBIT:
    case ARM::t2REV:
    case ARM::t2REV16:
    case ARM::t2REVSH: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::t2MOVsra_flag:
    case ARM::t2MOVsrl_flag: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2SXTB:
    case ARM::t2SXTB16:
    case ARM::t2SXTH:
    case ARM::t2UXTB:
    case ARM::t2UXTB16:
    case ARM::t2UXTH: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::t2CSEL:
    case ARM::t2CSINC:
    case ARM::t2CSINV:
    case ARM::t2CSNEG: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: fcond
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::t2CRC32B:
    case ARM::t2CRC32CB:
    case ARM::t2CRC32CH:
    case ARM::t2CRC32CW:
    case ARM::t2CRC32H:
    case ARM::t2CRC32W:
    case ARM::t2MUL:
    case ARM::t2QADD16:
    case ARM::t2QADD8:
    case ARM::t2QASX:
    case ARM::t2QSAX:
    case ARM::t2QSUB16:
    case ARM::t2QSUB8:
    case ARM::t2SADD16:
    case ARM::t2SADD8:
    case ARM::t2SASX:
    case ARM::t2SDIV:
    case ARM::t2SEL:
    case ARM::t2SHADD16:
    case ARM::t2SHADD8:
    case ARM::t2SHASX:
    case ARM::t2SHSAX:
    case ARM::t2SHSUB16:
    case ARM::t2SHSUB8:
    case ARM::t2SMMUL:
    case ARM::t2SMMULR:
    case ARM::t2SMUAD:
    case ARM::t2SMUADX:
    case ARM::t2SMULBB:
    case ARM::t2SMULBT:
    case ARM::t2SMULTB:
    case ARM::t2SMULTT:
    case ARM::t2SMULWB:
    case ARM::t2SMULWT:
    case ARM::t2SMUSD:
    case ARM::t2SMUSDX:
    case ARM::t2SSAX:
    case ARM::t2SSUB16:
    case ARM::t2SSUB8:
    case ARM::t2UADD16:
    case ARM::t2UADD8:
    case ARM::t2UASX:
    case ARM::t2UDIV:
    case ARM::t2UHADD16:
    case ARM::t2UHADD8:
    case ARM::t2UHASX:
    case ARM::t2UHSAX:
    case ARM::t2UHSUB16:
    case ARM::t2UHSUB8:
    case ARM::t2UQADD16:
    case ARM::t2UQADD8:
    case ARM::t2UQASX:
    case ARM::t2UQSAX:
    case ARM::t2UQSUB16:
    case ARM::t2UQSUB8:
    case ARM::t2USAD8:
    case ARM::t2USAX:
    case ARM::t2USUB16:
    case ARM::t2USUB8: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2MLA:
    case ARM::t2MLS:
    case ARM::t2SMLABB:
    case ARM::t2SMLABT:
    case ARM::t2SMLAD:
    case ARM::t2SMLADX:
    case ARM::t2SMLATB:
    case ARM::t2SMLATT:
    case ARM::t2SMLAWB:
    case ARM::t2SMLAWT:
    case ARM::t2SMLSD:
    case ARM::t2SMLSDX:
    case ARM::t2SMMLA:
    case ARM::t2SMMLAR:
    case ARM::t2SMMLS:
    case ARM::t2SMMLSR:
    case ARM::t2USADA8: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::t2SXTAB:
    case ARM::t2SXTAB16:
    case ARM::t2SXTAH:
    case ARM::t2UXTAB:
    case ARM::t2UXTAB16:
    case ARM::t2UXTAH: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::t2PKHBT:
    case ARM::t2PKHTB: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: sh
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      break;
    }
    case ARM::t2ADDri12:
    case ARM::t2SUBri12: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2QADD:
    case ARM::t2QDADD:
    case ARM::t2QDSUB:
    case ARM::t2QSUB: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2BFI: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getBitfieldInvertedMaskOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      Value |= (op & UINT64_C(992)) >> 5;
      break;
    }
    case ARM::t2SSAT16:
    case ARM::t2USAT16: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: sat_imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2SSAT:
    case ARM::t2USAT: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: sat_imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(31);
      Value |= op;
      // op: sh
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(32)) << 16;
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      break;
    }
    case ARM::t2PACG: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2STREX: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm0_1020s4OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2MRS_M: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: SYSm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::t2ADR: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getT2AdrLabelOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4096)) << 9;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2BFC: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getBitfieldInvertedMaskOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      Value |= (op & UINT64_C(992)) >> 5;
      break;
    }
    case ARM::t2MOVi16: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getHiLo16ImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(61440)) << 4;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2MOVTi16: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getHiLo16ImmOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(61440)) << 4;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2SBFX:
    case ARM::t2UBFX: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: msb
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      Value |= op;
      // op: lsb
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::tMOVSr: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tADDi3:
    case ARM::tSUBi3: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      // op: imm3
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 6;
      Value |= op;
      break;
    }
    case ARM::tASRri:
    case ARM::tLSLri:
    case ARM::tLSRri: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      // op: imm5
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 6;
      Value |= op;
      break;
    }
    case ARM::tMUL:
    case ARM::tMVN:
    case ARM::tRSB: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tADR: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getThumbAdrLabelOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tMOVi8: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm8
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::t2SMLALD:
    case ARM::t2SMLALDX:
    case ARM::t2SMLSLD:
    case ARM::t2SMLSLDX: {
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::t2SMLAL:
    case ARM::t2SMLALBB:
    case ARM::t2SMLALBT:
    case ARM::t2SMLALTB:
    case ARM::t2SMLALTT:
    case ARM::t2SMULL:
    case ARM::t2UMAAL:
    case ARM::t2UMLAL:
    case ARM::t2UMULL: {
      // op: RdLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: RdHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VMLADAVs16:
    case ARM::MVE_VMLADAVs32:
    case ARM::MVE_VMLADAVs8:
    case ARM::MVE_VMLADAVu16:
    case ARM::MVE_VMLADAVu32:
    case ARM::MVE_VMLADAVu8:
    case ARM::MVE_VMLADAVxs16:
    case ARM::MVE_VMLADAVxs32:
    case ARM::MVE_VMLADAVxs8:
    case ARM::MVE_VMLSDAVs16:
    case ARM::MVE_VMLSDAVs32:
    case ARM::MVE_VMLSDAVs8:
    case ARM::MVE_VMLSDAVxs16:
    case ARM::MVE_VMLSDAVxs32:
    case ARM::MVE_VMLSDAVxs8: {
      // op: RdaDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::MVE_VMLADAVas16:
    case ARM::MVE_VMLADAVas32:
    case ARM::MVE_VMLADAVas8:
    case ARM::MVE_VMLADAVau16:
    case ARM::MVE_VMLADAVau32:
    case ARM::MVE_VMLADAVau8:
    case ARM::MVE_VMLADAVaxs16:
    case ARM::MVE_VMLADAVaxs32:
    case ARM::MVE_VMLADAVaxs8:
    case ARM::MVE_VMLSDAVas16:
    case ARM::MVE_VMLSDAVas32:
    case ARM::MVE_VMLSDAVas8:
    case ARM::MVE_VMLSDAVaxs16:
    case ARM::MVE_VMLSDAVaxs32:
    case ARM::MVE_VMLSDAVaxs8: {
      // op: RdaDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::MVE_SQRSHR:
    case ARM::MVE_UQRSHL: {
      // op: RdaDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_SQSHL:
    case ARM::MVE_SRSHR:
    case ARM::MVE_UQSHL:
    case ARM::MVE_URSHR: {
      // op: RdaDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      break;
    }
    case ARM::MVE_ASRLr:
    case ARM::MVE_LSLLr: {
      // op: RdaLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 16;
      Value |= op;
      // op: RdaHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MVE_SQRSHRL:
    case ARM::MVE_UQRSHLL: {
      // op: RdaLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 16;
      Value |= op;
      // op: RdaHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: sat
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      break;
    }
    case ARM::MVE_ASRLi:
    case ARM::MVE_LSLLi:
    case ARM::MVE_LSRL:
    case ARM::MVE_SQSHLL:
    case ARM::MVE_SRSHRL:
    case ARM::MVE_UQSHLL:
    case ARM::MVE_URSHRL: {
      // op: RdaLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 16;
      Value |= op;
      // op: RdaHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      break;
    }
    case ARM::MVE_VMLALDAVs16:
    case ARM::MVE_VMLALDAVs32:
    case ARM::MVE_VMLALDAVu16:
    case ARM::MVE_VMLALDAVu32:
    case ARM::MVE_VMLALDAVxs16:
    case ARM::MVE_VMLALDAVxs32:
    case ARM::MVE_VMLSLDAVs16:
    case ARM::MVE_VMLSLDAVs32:
    case ARM::MVE_VMLSLDAVxs16:
    case ARM::MVE_VMLSLDAVxs32:
    case ARM::MVE_VRMLALDAVHs32:
    case ARM::MVE_VRMLALDAVHu32:
    case ARM::MVE_VRMLALDAVHxs32:
    case ARM::MVE_VRMLSLDAVHs32:
    case ARM::MVE_VRMLSLDAVHxs32: {
      // op: RdaLoDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: RdaHiDest
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 19;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::MVE_VMLALDAVas16:
    case ARM::MVE_VMLALDAVas32:
    case ARM::MVE_VMLALDAVau16:
    case ARM::MVE_VMLALDAVau32:
    case ARM::MVE_VMLALDAVaxs16:
    case ARM::MVE_VMLALDAVaxs32:
    case ARM::MVE_VMLSLDAVas16:
    case ARM::MVE_VMLSLDAVas32:
    case ARM::MVE_VMLSLDAVaxs16:
    case ARM::MVE_VMLSLDAVaxs32:
    case ARM::MVE_VRMLALDAVHas32:
    case ARM::MVE_VRMLALDAVHau32:
    case ARM::MVE_VRMLALDAVHaxs32:
    case ARM::MVE_VRMLSLDAVHas32:
    case ARM::MVE_VRMLSLDAVHaxs32: {
      // op: RdaLoDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 12;
      Value |= op;
      // op: RdaHiDest
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(14);
      op <<= 19;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::tADDrSP: {
      // op: Rdn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 4;
      Value |= (op & UINT64_C(7));
      break;
    }
    case ARM::tADDhirr: {
      // op: Rdn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 4;
      Value |= (op & UINT64_C(7));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tADC:
    case ARM::tAND:
    case ARM::tASRrr:
    case ARM::tBIC:
    case ARM::tEOR:
    case ARM::tLSLrr:
    case ARM::tLSRrr:
    case ARM::tORR:
    case ARM::tROR:
    case ARM::tSBC: {
      // op: Rdn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tADDi8:
    case ARM::tSUBi8: {
      // op: Rdn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm8
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tBX:
    case ARM::tBXNS: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tCMPhir: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 4;
      Value |= (op & UINT64_C(7));
      break;
    }
    case ARM::tREV:
    case ARM::tREV16:
    case ARM::tREVSH:
    case ARM::tSXTB:
    case ARM::tSXTH:
    case ARM::tUXTB:
    case ARM::tUXTH: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::tCMNz:
    case ARM::tCMPr:
    case ARM::tTST: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::tADDspr: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tADDrr:
    case ARM::tSUBrr: {
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 6;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 3;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::RFEDA:
    case ARM::RFEDA_UPD:
    case ARM::RFEDB:
    case ARM::RFEDB_UPD:
    case ARM::RFEIA:
    case ARM::RFEIA_UPD:
    case ARM::RFEIB:
    case ARM::RFEIB_UPD:
    case ARM::t2RFEDB:
    case ARM::t2RFEDBW:
    case ARM::t2RFEIA:
    case ARM::t2RFEIAW: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2CMNzrr:
    case ARM::t2CMPrr:
    case ARM::t2TBB:
    case ARM::t2TBH:
    case ARM::t2TEQrr:
    case ARM::t2TSTrr: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2CMNzrs:
    case ARM::t2CMPrs:
    case ARM::t2TEQrs:
    case ARM::t2TSTrs: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: ShiftedRm
      op = getT2SORegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3584)) << 3;
      Value |= (op & UINT64_C(480)) >> 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::t2CMNri:
    case ARM::t2CMPri:
    case ARM::t2TEQri:
    case ARM::t2TSTri: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getT2SOImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2STMDB:
    case ARM::t2STMIA: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(16384));
      Value |= (op & UINT64_C(8191));
      break;
    }
    case ARM::t2LDMDB:
    case ARM::t2LDMIA: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(65535);
      Value |= op;
      break;
    }
    case ARM::tCMPi8: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm8
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tLDMIA: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::MVE_DLSTP_16:
    case ARM::MVE_DLSTP_32:
    case ARM::MVE_DLSTP_64:
    case ARM::MVE_DLSTP_8:
    case ARM::MVE_VCTP16:
    case ARM::MVE_VCTP32:
    case ARM::MVE_VCTP64:
    case ARM::MVE_VCTP8:
    case ARM::t2DLS: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2TT:
    case ARM::t2TTA:
    case ARM::t2TTAT:
    case ARM::t2TTT: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::MVE_WLSTP_16:
    case ARM::MVE_WLSTP_32:
    case ARM::MVE_WLSTP_64:
    case ARM::MVE_WLSTP_8:
    case ARM::t2WLS: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: label
      op = getBFTargetOpValue<false, ARM::fixup_wls>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::t2STMDB_UPD:
    case ARM::t2STMIA_UPD: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(16384));
      Value |= (op & UINT64_C(8191));
      break;
    }
    case ARM::t2LDMDB_UPD:
    case ARM::t2LDMIA_UPD: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(65535);
      Value |= op;
      break;
    }
    case ARM::tSTMIA_UPD: {
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::MVE_VMOV_rr_q: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: idx2
      op = getMVEPairVectorIndexOpValue<0>(MI, 4, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::t2LDRB_POST:
    case ARM::t2LDRH_POST:
    case ARM::t2LDRSB_POST:
    case ARM::t2LDRSH_POST:
    case ARM::t2LDR_POST: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: offset
      op = getT2AddrModeImm8OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 1;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::MRRC2:
    case ARM::t2MRRC:
    case ARM::t2MRRC2: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2LDRD_POST: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getT2ScaledImmOpValue<8,2>(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRDi8:
    case ARM::t2STRDi8: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm8s4OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRD_PRE: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm8s4OpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRBi12:
    case ARM::t2LDRHi12:
    case ARM::t2LDRSBi12:
    case ARM::t2LDRSHi12:
    case ARM::t2LDRi12:
    case ARM::t2STRBi12:
    case ARM::t2STRHi12:
    case ARM::t2STRi12: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::t2LDRBpci:
    case ARM::t2LDRHpci:
    case ARM::t2LDRSBpci:
    case ARM::t2LDRSHpci:
    case ARM::t2LDRpci: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::t2LDA:
    case ARM::t2LDAB:
    case ARM::t2LDAEX:
    case ARM::t2LDAH:
    case ARM::t2STL:
    case ARM::t2STLB:
    case ARM::t2STLH: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2LDREX: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm0_1020s4OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRBT:
    case ARM::t2LDRHT:
    case ARM::t2LDRSBT:
    case ARM::t2LDRSHT:
    case ARM::t2LDRT:
    case ARM::t2STRBT:
    case ARM::t2STRHT:
    case ARM::t2STRT: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<8,0>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRBi8:
    case ARM::t2LDRHi8:
    case ARM::t2LDRSBi8:
    case ARM::t2LDRSHi8:
    case ARM::t2LDRi8:
    case ARM::t2STRBi8:
    case ARM::t2STRHi8:
    case ARM::t2STRi8: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<8,0>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(256)) << 1;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRB_PRE:
    case ARM::t2LDRH_PRE:
    case ARM::t2LDRSB_PRE:
    case ARM::t2LDRSH_PRE:
    case ARM::t2LDR_PRE: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<8,0>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(256)) << 1;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2LDRBs:
    case ARM::t2LDRHs:
    case ARM::t2LDRSBs:
    case ARM::t2LDRSHs:
    case ARM::t2LDRs:
    case ARM::t2STRBs:
    case ARM::t2STRHs:
    case ARM::t2STRs: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeSORegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(960)) << 10;
      Value |= (op & UINT64_C(3)) << 4;
      Value |= (op & UINT64_C(60)) >> 2;
      break;
    }
    case ARM::MRC2:
    case ARM::t2MRC:
    case ARM::t2MRC2: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 21;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::tLDRBi:
    case ARM::tLDRHi:
    case ARM::tLDRi:
    case ARM::tSTRBi:
    case ARM::tSTRHi:
    case ARM::tSTRi: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: addr
      op = getAddrModeISOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(255);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tLDRBr:
    case ARM::tLDRHr:
    case ARM::tLDRSB:
    case ARM::tLDRSH:
    case ARM::tLDRr:
    case ARM::tSTRBr:
    case ARM::tSTRHr:
    case ARM::tSTRr: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: addr
      op = getThumbAddrModeRegRegOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(63);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tLDRpci: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getAddrModePCOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tLDRspi:
    case ARM::tSTRspi: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getAddrModeThumbSPOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::t2STRB_POST:
    case ARM::t2STRH_POST:
    case ARM::t2STR_POST: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: offset
      op = getT2AddrModeImm8OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 1;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2STRD_POST: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getT2ScaledImmOpValue<8,2>(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2STRD_PRE: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm8s4OpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2STRB_PRE:
    case ARM::t2STRH_PRE:
    case ARM::t2STR_PRE: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getT2AddrModeImmOpValue<8,0>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(256)) << 1;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::MVE_VMOV_q_rr: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: idx2
      op = getMVEPairVectorIndexOpValue<0>(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::MCRR2:
    case ARM::t2MCRR:
    case ARM::t2MCRR2: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MCR2:
    case ARM::t2MCR:
    case ARM::t2MCR2: {
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 21;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2MSR_M: {
      // op: SYSm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(3072));
      Value |= (op & UINT64_C(255));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::VCVTASD:
    case ARM::VCVTAUD:
    case ARM::VCVTMSD:
    case ARM::VCVTMUD:
    case ARM::VCVTNSD:
    case ARM::VCVTNUD:
    case ARM::VCVTPSD:
    case ARM::VCVTPUD: {
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::VCVTASH:
    case ARM::VCVTASS:
    case ARM::VCVTAUH:
    case ARM::VCVTAUS:
    case ARM::VCVTMSH:
    case ARM::VCVTMSS:
    case ARM::VCVTMUH:
    case ARM::VCVTMUS:
    case ARM::VCVTNSH:
    case ARM::VCVTNSS:
    case ARM::VCVTNUH:
    case ARM::VCVTNUS:
    case ARM::VCVTPSH:
    case ARM::VCVTPSS:
    case ARM::VCVTPUH:
    case ARM::VCVTPUS:
    case ARM::VMOVH:
    case ARM::VRINTAH:
    case ARM::VRINTAS:
    case ARM::VRINTMH:
    case ARM::VRINTMS:
    case ARM::VRINTNH:
    case ARM::VRINTNS:
    case ARM::VRINTPH:
    case ARM::VRINTPS: {
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::VINSH: {
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::VFP_VMAXNMH:
    case ARM::VFP_VMAXNMS:
    case ARM::VFP_VMINNMH:
    case ARM::VFP_VMINNMS:
    case ARM::VSELEQH:
    case ARM::VSELEQS:
    case ARM::VSELGEH:
    case ARM::VSELGES:
    case ARM::VSELGTH:
    case ARM::VSELGTS:
    case ARM::VSELVSH:
    case ARM::VSELVSS: {
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::VDUP16d:
    case ARM::VDUP16q:
    case ARM::VDUP32d:
    case ARM::VDUP32q:
    case ARM::VDUP8d:
    case ARM::VDUP8q: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSETLNi16: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 20;
      Value |= (op & UINT64_C(1)) << 6;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSETLNi8: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(4)) << 19;
      Value |= (op & UINT64_C(3)) << 5;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSETLNi32: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 21;
      Value |= op;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VGETLNs16:
    case ARM::VGETLNu16: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 20;
      Value |= (op & UINT64_C(1)) << 6;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VGETLNs8:
    case ARM::VGETLNu8: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(4)) << 19;
      Value |= (op & UINT64_C(3)) << 5;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VGETLNi32: {
      // op: V
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: R
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 21;
      Value |= op;
      Value = NEONThumb2DupPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::MVE_VST20_16:
    case ARM::MVE_VST20_32:
    case ARM::MVE_VST20_8:
    case ARM::MVE_VST21_16:
    case ARM::MVE_VST21_32:
    case ARM::MVE_VST21_8:
    case ARM::MVE_VST40_16:
    case ARM::MVE_VST40_32:
    case ARM::MVE_VST40_8:
    case ARM::MVE_VST41_16:
    case ARM::MVE_VST41_32:
    case ARM::MVE_VST41_8:
    case ARM::MVE_VST42_16:
    case ARM::MVE_VST42_32:
    case ARM::MVE_VST42_8:
    case ARM::MVE_VST43_16:
    case ARM::MVE_VST43_32:
    case ARM::MVE_VST43_8: {
      // op: VQd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLD20_16:
    case ARM::MVE_VLD20_32:
    case ARM::MVE_VLD20_8:
    case ARM::MVE_VLD21_16:
    case ARM::MVE_VLD21_32:
    case ARM::MVE_VLD21_8:
    case ARM::MVE_VLD40_16:
    case ARM::MVE_VLD40_32:
    case ARM::MVE_VLD40_8:
    case ARM::MVE_VLD41_16:
    case ARM::MVE_VLD41_32:
    case ARM::MVE_VLD41_8:
    case ARM::MVE_VLD42_16:
    case ARM::MVE_VLD42_32:
    case ARM::MVE_VLD42_8:
    case ARM::MVE_VLD43_16:
    case ARM::MVE_VLD43_32:
    case ARM::MVE_VLD43_8: {
      // op: VQd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VLD20_16_wb:
    case ARM::MVE_VLD20_32_wb:
    case ARM::MVE_VLD20_8_wb:
    case ARM::MVE_VLD21_16_wb:
    case ARM::MVE_VLD21_32_wb:
    case ARM::MVE_VLD21_8_wb:
    case ARM::MVE_VLD40_16_wb:
    case ARM::MVE_VLD40_32_wb:
    case ARM::MVE_VLD40_8_wb:
    case ARM::MVE_VLD41_16_wb:
    case ARM::MVE_VLD41_32_wb:
    case ARM::MVE_VLD41_8_wb:
    case ARM::MVE_VLD42_16_wb:
    case ARM::MVE_VLD42_32_wb:
    case ARM::MVE_VLD42_8_wb:
    case ARM::MVE_VLD43_16_wb:
    case ARM::MVE_VLD43_32_wb:
    case ARM::MVE_VLD43_8_wb: {
      // op: VQd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MVE_VST20_16_wb:
    case ARM::MVE_VST20_32_wb:
    case ARM::MVE_VST20_8_wb:
    case ARM::MVE_VST21_16_wb:
    case ARM::MVE_VST21_32_wb:
    case ARM::MVE_VST21_8_wb:
    case ARM::MVE_VST40_16_wb:
    case ARM::MVE_VST40_32_wb:
    case ARM::MVE_VST40_8_wb:
    case ARM::MVE_VST41_16_wb:
    case ARM::MVE_VST41_32_wb:
    case ARM::MVE_VST41_8_wb:
    case ARM::MVE_VST42_16_wb:
    case ARM::MVE_VST42_32_wb:
    case ARM::MVE_VST42_8_wb:
    case ARM::MVE_VST43_16_wb:
    case ARM::MVE_VST43_32_wb:
    case ARM::MVE_VST43_8_wb: {
      // op: VQd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::VLD1d16:
    case ARM::VLD1d16T:
    case ARM::VLD1d32:
    case ARM::VLD1d32T:
    case ARM::VLD1d64:
    case ARM::VLD1d64T:
    case ARM::VLD1d8:
    case ARM::VLD1d8T: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1d16Q:
    case ARM::VLD1d32Q:
    case ARM::VLD1d64Q:
    case ARM::VLD1d8Q:
    case ARM::VLD1q16:
    case ARM::VLD1q32:
    case ARM::VLD1q64:
    case ARM::VLD1q8:
    case ARM::VLD2b16:
    case ARM::VLD2b32:
    case ARM::VLD2b8:
    case ARM::VLD2d16:
    case ARM::VLD2d32:
    case ARM::VLD2d8:
    case ARM::VLD2q16:
    case ARM::VLD2q32:
    case ARM::VLD2q8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1d16Twb_register:
    case ARM::VLD1d16wb_register:
    case ARM::VLD1d32Twb_register:
    case ARM::VLD1d32wb_register:
    case ARM::VLD1d64Twb_register:
    case ARM::VLD1d64wb_register:
    case ARM::VLD1d8Twb_register:
    case ARM::VLD1d8wb_register: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd32:
    case ARM::VLD2LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd16:
    case ARM::VLD2LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1d16Twb_fixed:
    case ARM::VLD1d16wb_fixed:
    case ARM::VLD1d32Twb_fixed:
    case ARM::VLD1d32wb_fixed:
    case ARM::VLD1d64Twb_fixed:
    case ARM::VLD1d64wb_fixed:
    case ARM::VLD1d8Twb_fixed:
    case ARM::VLD1d8wb_fixed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1d16Qwb_register:
    case ARM::VLD1d32Qwb_register:
    case ARM::VLD1d64Qwb_register:
    case ARM::VLD1d8Qwb_register:
    case ARM::VLD1q16wb_register:
    case ARM::VLD1q32wb_register:
    case ARM::VLD1q64wb_register:
    case ARM::VLD1q8wb_register:
    case ARM::VLD2b16wb_register:
    case ARM::VLD2b32wb_register:
    case ARM::VLD2b8wb_register:
    case ARM::VLD2d16wb_register:
    case ARM::VLD2d32wb_register:
    case ARM::VLD2d8wb_register:
    case ARM::VLD2q16wb_register:
    case ARM::VLD2q32wb_register:
    case ARM::VLD2q8wb_register: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1d16Qwb_fixed:
    case ARM::VLD1d32Qwb_fixed:
    case ARM::VLD1d64Qwb_fixed:
    case ARM::VLD1d8Qwb_fixed:
    case ARM::VLD1q16wb_fixed:
    case ARM::VLD1q32wb_fixed:
    case ARM::VLD1q64wb_fixed:
    case ARM::VLD1q8wb_fixed:
    case ARM::VLD2b16wb_fixed:
    case ARM::VLD2b32wb_fixed:
    case ARM::VLD2b8wb_fixed:
    case ARM::VLD2d16wb_fixed:
    case ARM::VLD2d32wb_fixed:
    case ARM::VLD2d8wb_fixed:
    case ARM::VLD2q16wb_fixed:
    case ARM::VLD2q32wb_fixed:
    case ARM::VLD2q8wb_fixed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd32_UPD:
    case ARM::VLD2LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd16_UPD:
    case ARM::VLD2LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD2LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3d16:
    case ARM::VLD3d32:
    case ARM::VLD3d8:
    case ARM::VLD3q16:
    case ARM::VLD3q32:
    case ARM::VLD3q8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd32:
    case ARM::VLD3LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd16:
    case ARM::VLD3LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3d16_UPD:
    case ARM::VLD3d32_UPD:
    case ARM::VLD3d8_UPD:
    case ARM::VLD3q16_UPD:
    case ARM::VLD3q32_UPD:
    case ARM::VLD3q8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd16:
    case ARM::VLD4LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd32:
    case ARM::VLD4LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4d16:
    case ARM::VLD4d32:
    case ARM::VLD4d8:
    case ARM::VLD4q16:
    case ARM::VLD4q32:
    case ARM::VLD4q8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd32_UPD:
    case ARM::VLD3LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd16_UPD:
    case ARM::VLD3LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd16_UPD:
    case ARM::VLD4LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4LNd32_UPD:
    case ARM::VLD4LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4d16_UPD:
    case ARM::VLD4d32_UPD:
    case ARM::VLD4d8_UPD:
    case ARM::VLD4q16_UPD:
    case ARM::VLD4q32_UPD:
    case ARM::VLD4q8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1DUPd16:
    case ARM::VLD1DUPd32:
    case ARM::VLD1DUPd8:
    case ARM::VLD1DUPq16:
    case ARM::VLD1DUPq32:
    case ARM::VLD1DUPq8:
    case ARM::VLD2DUPd16:
    case ARM::VLD2DUPd16x2:
    case ARM::VLD2DUPd32:
    case ARM::VLD2DUPd32x2:
    case ARM::VLD2DUPd8:
    case ARM::VLD2DUPd8x2: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1DUPd16wb_register:
    case ARM::VLD1DUPd32wb_register:
    case ARM::VLD1DUPd8wb_register:
    case ARM::VLD1DUPq16wb_register:
    case ARM::VLD1DUPq32wb_register:
    case ARM::VLD1DUPq8wb_register:
    case ARM::VLD2DUPd16wb_register:
    case ARM::VLD2DUPd16x2wb_register:
    case ARM::VLD2DUPd32wb_register:
    case ARM::VLD2DUPd32x2wb_register:
    case ARM::VLD2DUPd8wb_register:
    case ARM::VLD2DUPd8x2wb_register: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1DUPd16wb_fixed:
    case ARM::VLD1DUPd32wb_fixed:
    case ARM::VLD1DUPd8wb_fixed:
    case ARM::VLD1DUPq16wb_fixed:
    case ARM::VLD1DUPq32wb_fixed:
    case ARM::VLD1DUPq8wb_fixed:
    case ARM::VLD2DUPd16wb_fixed:
    case ARM::VLD2DUPd16x2wb_fixed:
    case ARM::VLD2DUPd32wb_fixed:
    case ARM::VLD2DUPd32x2wb_fixed:
    case ARM::VLD2DUPd8wb_fixed:
    case ARM::VLD2DUPd8x2wb_fixed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3DUPd16:
    case ARM::VLD3DUPd32:
    case ARM::VLD3DUPd8:
    case ARM::VLD3DUPq16:
    case ARM::VLD3DUPq32:
    case ARM::VLD3DUPq8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4DUPd16:
    case ARM::VLD4DUPd8:
    case ARM::VLD4DUPq16:
    case ARM::VLD4DUPq8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4DUPd32:
    case ARM::VLD4DUPq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(32)) << 1;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD3DUPd16_UPD:
    case ARM::VLD3DUPd32_UPD:
    case ARM::VLD3DUPd8_UPD:
    case ARM::VLD3DUPq16_UPD:
    case ARM::VLD3DUPq32_UPD:
    case ARM::VLD3DUPq8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4DUPd16_UPD:
    case ARM::VLD4DUPd8_UPD:
    case ARM::VLD4DUPq16_UPD:
    case ARM::VLD4DUPq8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD4DUPd32_UPD:
    case ARM::VLD4DUPq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6DupAddressOpValue(MI, 5, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(32)) << 1;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLD1LNd32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6OneLane32AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVv16i8:
    case ARM::VMOVv1i64:
    case ARM::VMOVv2f32:
    case ARM::VMOVv2i64:
    case ARM::VMOVv4f32:
    case ARM::VMOVv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 17;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VBICiv2i32:
    case ARM::VBICiv4i32:
    case ARM::VORRiv2i32:
    case ARM::VORRiv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 17;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(1536));
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVv2i32:
    case ARM::VMOVv4i32:
    case ARM::VMVNv2i32:
    case ARM::VMVNv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 17;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VBICiv4i16:
    case ARM::VBICiv8i16:
    case ARM::VMOVv4i16:
    case ARM::VMOVv8i16:
    case ARM::VMVNv4i16:
    case ARM::VMVNv8i16:
    case ARM::VORRiv4i16:
    case ARM::VORRiv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 17;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(512));
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQSHLsiv4i16:
    case ARM::VQSHLsiv8i16:
    case ARM::VQSHLsuv4i16:
    case ARM::VQSHLsuv8i16:
    case ARM::VQSHLuiv4i16:
    case ARM::VQSHLuiv8i16:
    case ARM::VSHLLsv4i32:
    case ARM::VSHLLuv4i32:
    case ARM::VSHLiv4i16:
    case ARM::VSHLiv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQSHLsiv2i32:
    case ARM::VQSHLsiv4i32:
    case ARM::VQSHLsuv2i32:
    case ARM::VQSHLsuv4i32:
    case ARM::VQSHLuiv2i32:
    case ARM::VQSHLuiv4i32:
    case ARM::VSHLLsv2i64:
    case ARM::VSHLLuv2i64:
    case ARM::VSHLiv2i32:
    case ARM::VSHLiv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQSHLsiv1i64:
    case ARM::VQSHLsiv2i64:
    case ARM::VQSHLsuv1i64:
    case ARM::VQSHLsuv2i64:
    case ARM::VQSHLuiv1i64:
    case ARM::VQSHLuiv2i64:
    case ARM::VSHLiv1i64:
    case ARM::VSHLiv2i64: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(63);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQSHLsiv16i8:
    case ARM::VQSHLsiv8i8:
    case ARM::VQSHLsuv16i8:
    case ARM::VQSHLsuv8i8:
    case ARM::VQSHLuiv16i8:
    case ARM::VQSHLuiv8i8:
    case ARM::VSHLLsv8i16:
    case ARM::VSHLLuv8i16:
    case ARM::VSHLiv16i8:
    case ARM::VSHLiv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTf2xsd:
    case ARM::VCVTf2xsq:
    case ARM::VCVTf2xud:
    case ARM::VCVTf2xuq:
    case ARM::VCVTh2xsd:
    case ARM::VCVTh2xsq:
    case ARM::VCVTh2xud:
    case ARM::VCVTh2xuq:
    case ARM::VCVTxs2fd:
    case ARM::VCVTxs2fq:
    case ARM::VCVTxs2hd:
    case ARM::VCVTxs2hq:
    case ARM::VCVTxu2fd:
    case ARM::VCVTxu2fq:
    case ARM::VCVTxu2hd:
    case ARM::VCVTxu2hq: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getNEONVcvtImm32OpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(63);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQRSHRNsv4i16:
    case ARM::VQRSHRNuv4i16:
    case ARM::VQRSHRUNv4i16:
    case ARM::VQSHRNsv4i16:
    case ARM::VQSHRNuv4i16:
    case ARM::VQSHRUNv4i16:
    case ARM::VRSHRNv4i16:
    case ARM::VRSHRsv4i16:
    case ARM::VRSHRsv8i16:
    case ARM::VRSHRuv4i16:
    case ARM::VRSHRuv8i16:
    case ARM::VSHRNv4i16:
    case ARM::VSHRsv4i16:
    case ARM::VSHRsv8i16:
    case ARM::VSHRuv4i16:
    case ARM::VSHRuv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight16Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQRSHRNsv2i32:
    case ARM::VQRSHRNuv2i32:
    case ARM::VQRSHRUNv2i32:
    case ARM::VQSHRNsv2i32:
    case ARM::VQSHRNuv2i32:
    case ARM::VQSHRUNv2i32:
    case ARM::VRSHRNv2i32:
    case ARM::VRSHRsv2i32:
    case ARM::VRSHRsv4i32:
    case ARM::VRSHRuv2i32:
    case ARM::VRSHRuv4i32:
    case ARM::VSHRNv2i32:
    case ARM::VSHRsv2i32:
    case ARM::VSHRsv4i32:
    case ARM::VSHRuv2i32:
    case ARM::VSHRuv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight32Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VRSHRsv1i64:
    case ARM::VRSHRsv2i64:
    case ARM::VRSHRuv1i64:
    case ARM::VRSHRuv2i64:
    case ARM::VSHRsv1i64:
    case ARM::VSHRsv2i64:
    case ARM::VSHRuv1i64:
    case ARM::VSHRuv2i64: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight64Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(63);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VQRSHRNsv8i8:
    case ARM::VQRSHRNuv8i8:
    case ARM::VQRSHRUNv8i8:
    case ARM::VQSHRNsv8i8:
    case ARM::VQSHRNuv8i8:
    case ARM::VQSHRUNv8i8:
    case ARM::VRSHRNv8i8:
    case ARM::VRSHRsv16i8:
    case ARM::VRSHRsv8i8:
    case ARM::VRSHRuv16i8:
    case ARM::VRSHRuv8i8:
    case ARM::VSHRNv8i8:
    case ARM::VSHRsv16i8:
    case ARM::VSHRsv8i8:
    case ARM::VSHRuv16i8:
    case ARM::VSHRuv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight8Imm(MI, 2, Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VDUPLN32d:
    case ARM::VDUPLN32q: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 19;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VDUPLN16d:
    case ARM::VDUPLN16q: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 18;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VDUPLN8d:
    case ARM::VDUPLN8q: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::AESIMC:
    case ARM::AESMC:
    case ARM::BF16_VCVT:
    case ARM::SHA1H:
    case ARM::VABSfd:
    case ARM::VABSfq:
    case ARM::VABShd:
    case ARM::VABShq:
    case ARM::VABSv16i8:
    case ARM::VABSv2i32:
    case ARM::VABSv4i16:
    case ARM::VABSv4i32:
    case ARM::VABSv8i16:
    case ARM::VABSv8i8:
    case ARM::VCEQzv16i8:
    case ARM::VCEQzv2f32:
    case ARM::VCEQzv2i32:
    case ARM::VCEQzv4f16:
    case ARM::VCEQzv4f32:
    case ARM::VCEQzv4i16:
    case ARM::VCEQzv4i32:
    case ARM::VCEQzv8f16:
    case ARM::VCEQzv8i16:
    case ARM::VCEQzv8i8:
    case ARM::VCGEzv16i8:
    case ARM::VCGEzv2f32:
    case ARM::VCGEzv2i32:
    case ARM::VCGEzv4f16:
    case ARM::VCGEzv4f32:
    case ARM::VCGEzv4i16:
    case ARM::VCGEzv4i32:
    case ARM::VCGEzv8f16:
    case ARM::VCGEzv8i16:
    case ARM::VCGEzv8i8:
    case ARM::VCGTzv16i8:
    case ARM::VCGTzv2f32:
    case ARM::VCGTzv2i32:
    case ARM::VCGTzv4f16:
    case ARM::VCGTzv4f32:
    case ARM::VCGTzv4i16:
    case ARM::VCGTzv4i32:
    case ARM::VCGTzv8f16:
    case ARM::VCGTzv8i16:
    case ARM::VCGTzv8i8:
    case ARM::VCLEzv16i8:
    case ARM::VCLEzv2f32:
    case ARM::VCLEzv2i32:
    case ARM::VCLEzv4f16:
    case ARM::VCLEzv4f32:
    case ARM::VCLEzv4i16:
    case ARM::VCLEzv4i32:
    case ARM::VCLEzv8f16:
    case ARM::VCLEzv8i16:
    case ARM::VCLEzv8i8:
    case ARM::VCLSv16i8:
    case ARM::VCLSv2i32:
    case ARM::VCLSv4i16:
    case ARM::VCLSv4i32:
    case ARM::VCLSv8i16:
    case ARM::VCLSv8i8:
    case ARM::VCLTzv16i8:
    case ARM::VCLTzv2f32:
    case ARM::VCLTzv2i32:
    case ARM::VCLTzv4f16:
    case ARM::VCLTzv4f32:
    case ARM::VCLTzv4i16:
    case ARM::VCLTzv4i32:
    case ARM::VCLTzv8f16:
    case ARM::VCLTzv8i16:
    case ARM::VCLTzv8i8:
    case ARM::VCLZv16i8:
    case ARM::VCLZv2i32:
    case ARM::VCLZv4i16:
    case ARM::VCLZv4i32:
    case ARM::VCLZv8i16:
    case ARM::VCLZv8i8:
    case ARM::VCNTd:
    case ARM::VCNTq:
    case ARM::VCVTf2h:
    case ARM::VCVTf2sd:
    case ARM::VCVTf2sq:
    case ARM::VCVTf2ud:
    case ARM::VCVTf2uq:
    case ARM::VCVTh2f:
    case ARM::VCVTh2sd:
    case ARM::VCVTh2sq:
    case ARM::VCVTh2ud:
    case ARM::VCVTh2uq:
    case ARM::VCVTs2fd:
    case ARM::VCVTs2fq:
    case ARM::VCVTs2hd:
    case ARM::VCVTs2hq:
    case ARM::VCVTu2fd:
    case ARM::VCVTu2fq:
    case ARM::VCVTu2hd:
    case ARM::VCVTu2hq:
    case ARM::VMOVLsv2i64:
    case ARM::VMOVLsv4i32:
    case ARM::VMOVLsv8i16:
    case ARM::VMOVLuv2i64:
    case ARM::VMOVLuv4i32:
    case ARM::VMOVLuv8i16:
    case ARM::VMOVNv2i32:
    case ARM::VMOVNv4i16:
    case ARM::VMOVNv8i8:
    case ARM::VMVNd:
    case ARM::VMVNq:
    case ARM::VNEGf32q:
    case ARM::VNEGfd:
    case ARM::VNEGhd:
    case ARM::VNEGhq:
    case ARM::VNEGs16d:
    case ARM::VNEGs16q:
    case ARM::VNEGs32d:
    case ARM::VNEGs32q:
    case ARM::VNEGs8d:
    case ARM::VNEGs8q:
    case ARM::VPADDLsv16i8:
    case ARM::VPADDLsv2i32:
    case ARM::VPADDLsv4i16:
    case ARM::VPADDLsv4i32:
    case ARM::VPADDLsv8i16:
    case ARM::VPADDLsv8i8:
    case ARM::VPADDLuv16i8:
    case ARM::VPADDLuv2i32:
    case ARM::VPADDLuv4i16:
    case ARM::VPADDLuv4i32:
    case ARM::VPADDLuv8i16:
    case ARM::VPADDLuv8i8:
    case ARM::VQABSv16i8:
    case ARM::VQABSv2i32:
    case ARM::VQABSv4i16:
    case ARM::VQABSv4i32:
    case ARM::VQABSv8i16:
    case ARM::VQABSv8i8:
    case ARM::VQMOVNsuv2i32:
    case ARM::VQMOVNsuv4i16:
    case ARM::VQMOVNsuv8i8:
    case ARM::VQMOVNsv2i32:
    case ARM::VQMOVNsv4i16:
    case ARM::VQMOVNsv8i8:
    case ARM::VQMOVNuv2i32:
    case ARM::VQMOVNuv4i16:
    case ARM::VQMOVNuv8i8:
    case ARM::VQNEGv16i8:
    case ARM::VQNEGv2i32:
    case ARM::VQNEGv4i16:
    case ARM::VQNEGv4i32:
    case ARM::VQNEGv8i16:
    case ARM::VQNEGv8i8:
    case ARM::VRECPEd:
    case ARM::VRECPEfd:
    case ARM::VRECPEfq:
    case ARM::VRECPEhd:
    case ARM::VRECPEhq:
    case ARM::VRECPEq:
    case ARM::VREV16d8:
    case ARM::VREV16q8:
    case ARM::VREV32d16:
    case ARM::VREV32d8:
    case ARM::VREV32q16:
    case ARM::VREV32q8:
    case ARM::VREV64d16:
    case ARM::VREV64d32:
    case ARM::VREV64d8:
    case ARM::VREV64q16:
    case ARM::VREV64q32:
    case ARM::VREV64q8:
    case ARM::VRSQRTEd:
    case ARM::VRSQRTEfd:
    case ARM::VRSQRTEfq:
    case ARM::VRSQRTEhd:
    case ARM::VRSQRTEhq:
    case ARM::VRSQRTEq:
    case ARM::VSHLLi16:
    case ARM::VSHLLi32:
    case ARM::VSHLLi8:
    case ARM::VSWPd:
    case ARM::VSWPq:
    case ARM::VTRNd16:
    case ARM::VTRNd32:
    case ARM::VTRNd8:
    case ARM::VTRNq16:
    case ARM::VTRNq32:
    case ARM::VTRNq8:
    case ARM::VUZPd16:
    case ARM::VUZPd8:
    case ARM::VUZPq16:
    case ARM::VUZPq32:
    case ARM::VUZPq8:
    case ARM::VZIPd16:
    case ARM::VZIPd8:
    case ARM::VZIPq16:
    case ARM::VZIPq32:
    case ARM::VZIPq8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTANSDf:
    case ARM::VCVTANSDh:
    case ARM::VCVTANSQf:
    case ARM::VCVTANSQh:
    case ARM::VCVTANUDf:
    case ARM::VCVTANUDh:
    case ARM::VCVTANUQf:
    case ARM::VCVTANUQh:
    case ARM::VCVTMNSDf:
    case ARM::VCVTMNSDh:
    case ARM::VCVTMNSQf:
    case ARM::VCVTMNSQh:
    case ARM::VCVTMNUDf:
    case ARM::VCVTMNUDh:
    case ARM::VCVTMNUQf:
    case ARM::VCVTMNUQh:
    case ARM::VCVTNNSDf:
    case ARM::VCVTNNSDh:
    case ARM::VCVTNNSQf:
    case ARM::VCVTNNSQh:
    case ARM::VCVTNNUDf:
    case ARM::VCVTNNUDh:
    case ARM::VCVTNNUQf:
    case ARM::VCVTNNUQh:
    case ARM::VCVTPNSDf:
    case ARM::VCVTPNSDh:
    case ARM::VCVTPNSQf:
    case ARM::VCVTPNSQh:
    case ARM::VCVTPNUDf:
    case ARM::VCVTPNUDh:
    case ARM::VCVTPNUQf:
    case ARM::VCVTPNUQh:
    case ARM::VRINTANDf:
    case ARM::VRINTANDh:
    case ARM::VRINTANQf:
    case ARM::VRINTANQh:
    case ARM::VRINTMNDf:
    case ARM::VRINTMNDh:
    case ARM::VRINTMNQf:
    case ARM::VRINTMNQh:
    case ARM::VRINTNNDf:
    case ARM::VRINTNNDh:
    case ARM::VRINTNNQf:
    case ARM::VRINTNNQh:
    case ARM::VRINTPNDf:
    case ARM::VRINTPNDh:
    case ARM::VRINTPNQf:
    case ARM::VRINTPNQh:
    case ARM::VRINTXNDf:
    case ARM::VRINTXNDh:
    case ARM::VRINTXNQf:
    case ARM::VRINTXNQh:
    case ARM::VRINTZNDf:
    case ARM::VRINTZNDh:
    case ARM::VRINTZNQf:
    case ARM::VRINTZNQh: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2V8PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSLIv4i16:
    case ARM::VSLIv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSLIv2i32:
    case ARM::VSLIv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSLIv1i64:
    case ARM::VSLIv2i64: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(63);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSLIv16i8:
    case ARM::VSLIv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VRSRAsv4i16:
    case ARM::VRSRAsv8i16:
    case ARM::VRSRAuv4i16:
    case ARM::VRSRAuv8i16:
    case ARM::VSRAsv4i16:
    case ARM::VSRAsv8i16:
    case ARM::VSRAuv4i16:
    case ARM::VSRAuv8i16:
    case ARM::VSRIv4i16:
    case ARM::VSRIv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight16Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VRSRAsv2i32:
    case ARM::VRSRAsv4i32:
    case ARM::VRSRAuv2i32:
    case ARM::VRSRAuv4i32:
    case ARM::VSRAsv2i32:
    case ARM::VSRAsv4i32:
    case ARM::VSRAuv2i32:
    case ARM::VSRAuv4i32:
    case ARM::VSRIv2i32:
    case ARM::VSRIv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight32Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VRSRAsv1i64:
    case ARM::VRSRAsv2i64:
    case ARM::VRSRAuv1i64:
    case ARM::VRSRAuv2i64:
    case ARM::VSRAsv1i64:
    case ARM::VSRAsv2i64:
    case ARM::VSRAuv1i64:
    case ARM::VSRAuv2i64:
    case ARM::VSRIv1i64:
    case ARM::VSRIv2i64: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight64Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(63);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VRSRAsv16i8:
    case ARM::VRSRAsv8i8:
    case ARM::VRSRAuv16i8:
    case ARM::VRSRAuv8i8:
    case ARM::VSRAsv16i8:
    case ARM::VSRAsv8i8:
    case ARM::VSRAuv16i8:
    case ARM::VSRAuv8i8:
    case ARM::VSRIv16i8:
    case ARM::VSRIv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: SIMM
      op = getShiftRight8Imm(MI, 3, Fixups, STI);
      op &= UINT64_C(7);
      op <<= 16;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::AESD:
    case ARM::AESE:
    case ARM::SHA1SU1:
    case ARM::SHA256SU0:
    case ARM::VPADALsv16i8:
    case ARM::VPADALsv2i32:
    case ARM::VPADALsv4i16:
    case ARM::VPADALsv4i32:
    case ARM::VPADALsv8i16:
    case ARM::VPADALsv8i8:
    case ARM::VPADALuv16i8:
    case ARM::VPADALuv2i32:
    case ARM::VPADALuv4i16:
    case ARM::VPADALuv4i32:
    case ARM::VPADALuv8i16:
    case ARM::VPADALuv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VFMALQ:
    case ARM::VFMSLQ: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::VEXTd32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 10;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTq64: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 11;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTq8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 10;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTd16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 9;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VEXTq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: index
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 9;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCADDv2f32:
    case ARM::VCADDv4f16:
    case ARM::VCADDv4f32:
    case ARM::VCADDv8f16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 24;
      Value |= op;
      break;
    }
    case ARM::VABDLsv2i64:
    case ARM::VABDLsv4i32:
    case ARM::VABDLsv8i16:
    case ARM::VABDLuv2i64:
    case ARM::VABDLuv4i32:
    case ARM::VABDLuv8i16:
    case ARM::VABDfd:
    case ARM::VABDfq:
    case ARM::VABDhd:
    case ARM::VABDhq:
    case ARM::VABDsv16i8:
    case ARM::VABDsv2i32:
    case ARM::VABDsv4i16:
    case ARM::VABDsv4i32:
    case ARM::VABDsv8i16:
    case ARM::VABDsv8i8:
    case ARM::VABDuv16i8:
    case ARM::VABDuv2i32:
    case ARM::VABDuv4i16:
    case ARM::VABDuv4i32:
    case ARM::VABDuv8i16:
    case ARM::VABDuv8i8:
    case ARM::VACGEfd:
    case ARM::VACGEfq:
    case ARM::VACGEhd:
    case ARM::VACGEhq:
    case ARM::VACGTfd:
    case ARM::VACGTfq:
    case ARM::VACGThd:
    case ARM::VACGThq:
    case ARM::VADDHNv2i32:
    case ARM::VADDHNv4i16:
    case ARM::VADDHNv8i8:
    case ARM::VADDLsv2i64:
    case ARM::VADDLsv4i32:
    case ARM::VADDLsv8i16:
    case ARM::VADDLuv2i64:
    case ARM::VADDLuv4i32:
    case ARM::VADDLuv8i16:
    case ARM::VADDWsv2i64:
    case ARM::VADDWsv4i32:
    case ARM::VADDWsv8i16:
    case ARM::VADDWuv2i64:
    case ARM::VADDWuv4i32:
    case ARM::VADDWuv8i16:
    case ARM::VADDfd:
    case ARM::VADDfq:
    case ARM::VADDhd:
    case ARM::VADDhq:
    case ARM::VADDv16i8:
    case ARM::VADDv1i64:
    case ARM::VADDv2i32:
    case ARM::VADDv2i64:
    case ARM::VADDv4i16:
    case ARM::VADDv4i32:
    case ARM::VADDv8i16:
    case ARM::VADDv8i8:
    case ARM::VANDd:
    case ARM::VANDq:
    case ARM::VBICd:
    case ARM::VBICq:
    case ARM::VCEQfd:
    case ARM::VCEQfq:
    case ARM::VCEQhd:
    case ARM::VCEQhq:
    case ARM::VCEQv16i8:
    case ARM::VCEQv2i32:
    case ARM::VCEQv4i16:
    case ARM::VCEQv4i32:
    case ARM::VCEQv8i16:
    case ARM::VCEQv8i8:
    case ARM::VCGEfd:
    case ARM::VCGEfq:
    case ARM::VCGEhd:
    case ARM::VCGEhq:
    case ARM::VCGEsv16i8:
    case ARM::VCGEsv2i32:
    case ARM::VCGEsv4i16:
    case ARM::VCGEsv4i32:
    case ARM::VCGEsv8i16:
    case ARM::VCGEsv8i8:
    case ARM::VCGEuv16i8:
    case ARM::VCGEuv2i32:
    case ARM::VCGEuv4i16:
    case ARM::VCGEuv4i32:
    case ARM::VCGEuv8i16:
    case ARM::VCGEuv8i8:
    case ARM::VCGTfd:
    case ARM::VCGTfq:
    case ARM::VCGThd:
    case ARM::VCGThq:
    case ARM::VCGTsv16i8:
    case ARM::VCGTsv2i32:
    case ARM::VCGTsv4i16:
    case ARM::VCGTsv4i32:
    case ARM::VCGTsv8i16:
    case ARM::VCGTsv8i8:
    case ARM::VCGTuv16i8:
    case ARM::VCGTuv2i32:
    case ARM::VCGTuv4i16:
    case ARM::VCGTuv4i32:
    case ARM::VCGTuv8i16:
    case ARM::VCGTuv8i8:
    case ARM::VEORd:
    case ARM::VEORq:
    case ARM::VHADDsv16i8:
    case ARM::VHADDsv2i32:
    case ARM::VHADDsv4i16:
    case ARM::VHADDsv4i32:
    case ARM::VHADDsv8i16:
    case ARM::VHADDsv8i8:
    case ARM::VHADDuv16i8:
    case ARM::VHADDuv2i32:
    case ARM::VHADDuv4i16:
    case ARM::VHADDuv4i32:
    case ARM::VHADDuv8i16:
    case ARM::VHADDuv8i8:
    case ARM::VHSUBsv16i8:
    case ARM::VHSUBsv2i32:
    case ARM::VHSUBsv4i16:
    case ARM::VHSUBsv4i32:
    case ARM::VHSUBsv8i16:
    case ARM::VHSUBsv8i8:
    case ARM::VHSUBuv16i8:
    case ARM::VHSUBuv2i32:
    case ARM::VHSUBuv4i16:
    case ARM::VHSUBuv4i32:
    case ARM::VHSUBuv8i16:
    case ARM::VHSUBuv8i8:
    case ARM::VMAXfd:
    case ARM::VMAXfq:
    case ARM::VMAXhd:
    case ARM::VMAXhq:
    case ARM::VMAXsv16i8:
    case ARM::VMAXsv2i32:
    case ARM::VMAXsv4i16:
    case ARM::VMAXsv4i32:
    case ARM::VMAXsv8i16:
    case ARM::VMAXsv8i8:
    case ARM::VMAXuv16i8:
    case ARM::VMAXuv2i32:
    case ARM::VMAXuv4i16:
    case ARM::VMAXuv4i32:
    case ARM::VMAXuv8i16:
    case ARM::VMAXuv8i8:
    case ARM::VMINfd:
    case ARM::VMINfq:
    case ARM::VMINhd:
    case ARM::VMINhq:
    case ARM::VMINsv16i8:
    case ARM::VMINsv2i32:
    case ARM::VMINsv4i16:
    case ARM::VMINsv4i32:
    case ARM::VMINsv8i16:
    case ARM::VMINsv8i8:
    case ARM::VMINuv16i8:
    case ARM::VMINuv2i32:
    case ARM::VMINuv4i16:
    case ARM::VMINuv4i32:
    case ARM::VMINuv8i16:
    case ARM::VMINuv8i8:
    case ARM::VMULLp64:
    case ARM::VMULLp8:
    case ARM::VMULLsv2i64:
    case ARM::VMULLsv4i32:
    case ARM::VMULLsv8i16:
    case ARM::VMULLuv2i64:
    case ARM::VMULLuv4i32:
    case ARM::VMULLuv8i16:
    case ARM::VMULfd:
    case ARM::VMULfq:
    case ARM::VMULhd:
    case ARM::VMULhq:
    case ARM::VMULpd:
    case ARM::VMULpq:
    case ARM::VMULv16i8:
    case ARM::VMULv2i32:
    case ARM::VMULv4i16:
    case ARM::VMULv4i32:
    case ARM::VMULv8i16:
    case ARM::VMULv8i8:
    case ARM::VORNd:
    case ARM::VORNq:
    case ARM::VORRd:
    case ARM::VORRq:
    case ARM::VPADDf:
    case ARM::VPADDh:
    case ARM::VPADDi16:
    case ARM::VPADDi32:
    case ARM::VPADDi8:
    case ARM::VPMAXf:
    case ARM::VPMAXh:
    case ARM::VPMAXs16:
    case ARM::VPMAXs32:
    case ARM::VPMAXs8:
    case ARM::VPMAXu16:
    case ARM::VPMAXu32:
    case ARM::VPMAXu8:
    case ARM::VPMINf:
    case ARM::VPMINh:
    case ARM::VPMINs16:
    case ARM::VPMINs32:
    case ARM::VPMINs8:
    case ARM::VPMINu16:
    case ARM::VPMINu32:
    case ARM::VPMINu8:
    case ARM::VQADDsv16i8:
    case ARM::VQADDsv1i64:
    case ARM::VQADDsv2i32:
    case ARM::VQADDsv2i64:
    case ARM::VQADDsv4i16:
    case ARM::VQADDsv4i32:
    case ARM::VQADDsv8i16:
    case ARM::VQADDsv8i8:
    case ARM::VQADDuv16i8:
    case ARM::VQADDuv1i64:
    case ARM::VQADDuv2i32:
    case ARM::VQADDuv2i64:
    case ARM::VQADDuv4i16:
    case ARM::VQADDuv4i32:
    case ARM::VQADDuv8i16:
    case ARM::VQADDuv8i8:
    case ARM::VQDMULHv2i32:
    case ARM::VQDMULHv4i16:
    case ARM::VQDMULHv4i32:
    case ARM::VQDMULHv8i16:
    case ARM::VQDMULLv2i64:
    case ARM::VQDMULLv4i32:
    case ARM::VQRDMULHv2i32:
    case ARM::VQRDMULHv4i16:
    case ARM::VQRDMULHv4i32:
    case ARM::VQRDMULHv8i16:
    case ARM::VQSUBsv16i8:
    case ARM::VQSUBsv1i64:
    case ARM::VQSUBsv2i32:
    case ARM::VQSUBsv2i64:
    case ARM::VQSUBsv4i16:
    case ARM::VQSUBsv4i32:
    case ARM::VQSUBsv8i16:
    case ARM::VQSUBsv8i8:
    case ARM::VQSUBuv16i8:
    case ARM::VQSUBuv1i64:
    case ARM::VQSUBuv2i32:
    case ARM::VQSUBuv2i64:
    case ARM::VQSUBuv4i16:
    case ARM::VQSUBuv4i32:
    case ARM::VQSUBuv8i16:
    case ARM::VQSUBuv8i8:
    case ARM::VRADDHNv2i32:
    case ARM::VRADDHNv4i16:
    case ARM::VRADDHNv8i8:
    case ARM::VRECPSfd:
    case ARM::VRECPSfq:
    case ARM::VRECPShd:
    case ARM::VRECPShq:
    case ARM::VRHADDsv16i8:
    case ARM::VRHADDsv2i32:
    case ARM::VRHADDsv4i16:
    case ARM::VRHADDsv4i32:
    case ARM::VRHADDsv8i16:
    case ARM::VRHADDsv8i8:
    case ARM::VRHADDuv16i8:
    case ARM::VRHADDuv2i32:
    case ARM::VRHADDuv4i16:
    case ARM::VRHADDuv4i32:
    case ARM::VRHADDuv8i16:
    case ARM::VRHADDuv8i8:
    case ARM::VRSQRTSfd:
    case ARM::VRSQRTSfq:
    case ARM::VRSQRTShd:
    case ARM::VRSQRTShq:
    case ARM::VRSUBHNv2i32:
    case ARM::VRSUBHNv4i16:
    case ARM::VRSUBHNv8i8:
    case ARM::VSUBHNv2i32:
    case ARM::VSUBHNv4i16:
    case ARM::VSUBHNv8i8:
    case ARM::VSUBLsv2i64:
    case ARM::VSUBLsv4i32:
    case ARM::VSUBLsv8i16:
    case ARM::VSUBLuv2i64:
    case ARM::VSUBLuv4i32:
    case ARM::VSUBLuv8i16:
    case ARM::VSUBWsv2i64:
    case ARM::VSUBWsv4i32:
    case ARM::VSUBWsv8i16:
    case ARM::VSUBWuv2i64:
    case ARM::VSUBWuv4i32:
    case ARM::VSUBWuv8i16:
    case ARM::VSUBfd:
    case ARM::VSUBfq:
    case ARM::VSUBhd:
    case ARM::VSUBhq:
    case ARM::VSUBv16i8:
    case ARM::VSUBv1i64:
    case ARM::VSUBv2i32:
    case ARM::VSUBv2i64:
    case ARM::VSUBv4i16:
    case ARM::VSUBv4i32:
    case ARM::VSUBv8i16:
    case ARM::VSUBv8i8:
    case ARM::VTBL1:
    case ARM::VTBL2:
    case ARM::VTBL3:
    case ARM::VTBL4:
    case ARM::VTSTv16i8:
    case ARM::VTSTv2i32:
    case ARM::VTSTv4i16:
    case ARM::VTSTv4i32:
    case ARM::VTSTv8i16:
    case ARM::VTSTv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::NEON_VMAXNMNDf:
    case ARM::NEON_VMAXNMNDh:
    case ARM::NEON_VMAXNMNQf:
    case ARM::NEON_VMAXNMNQh:
    case ARM::NEON_VMINNMNDf:
    case ARM::NEON_VMINNMNDh:
    case ARM::NEON_VMINNMNQf:
    case ARM::NEON_VMINNMNQh: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2V8PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMULLslsv2i32:
    case ARM::VMULLsluv2i32:
    case ARM::VMULslfd:
    case ARM::VMULslfq:
    case ARM::VMULslv2i32:
    case ARM::VMULslv4i32:
    case ARM::VQDMULHslv2i32:
    case ARM::VQDMULHslv4i32:
    case ARM::VQDMULLslv2i32:
    case ARM::VQRDMULHslv2i32:
    case ARM::VQRDMULHslv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VFMALQI:
    case ARM::VFMSLQI: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: idx
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 4;
      Value |= (op & UINT64_C(1)) << 3;
      break;
    }
    case ARM::VMULLslsv4i16:
    case ARM::VMULLsluv4i16:
    case ARM::VMULslhd:
    case ARM::VMULslhq:
    case ARM::VMULslv4i16:
    case ARM::VMULslv8i16:
    case ARM::VQDMULHslv4i16:
    case ARM::VQDMULHslv8i16:
    case ARM::VQDMULLslv4i16:
    case ARM::VQRDMULHslv4i16:
    case ARM::VQRDMULHslv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 4;
      Value |= (op & UINT64_C(1)) << 3;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VFMALDI:
    case ARM::VFMSLDI: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(14)) >> 1;
      // op: idx
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::VFMALD:
    case ARM::VFMSLD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::VQRSHLsv16i8:
    case ARM::VQRSHLsv1i64:
    case ARM::VQRSHLsv2i32:
    case ARM::VQRSHLsv2i64:
    case ARM::VQRSHLsv4i16:
    case ARM::VQRSHLsv4i32:
    case ARM::VQRSHLsv8i16:
    case ARM::VQRSHLsv8i8:
    case ARM::VQRSHLuv16i8:
    case ARM::VQRSHLuv1i64:
    case ARM::VQRSHLuv2i32:
    case ARM::VQRSHLuv2i64:
    case ARM::VQRSHLuv4i16:
    case ARM::VQRSHLuv4i32:
    case ARM::VQRSHLuv8i16:
    case ARM::VQRSHLuv8i8:
    case ARM::VQSHLsv16i8:
    case ARM::VQSHLsv1i64:
    case ARM::VQSHLsv2i32:
    case ARM::VQSHLsv2i64:
    case ARM::VQSHLsv4i16:
    case ARM::VQSHLsv4i32:
    case ARM::VQSHLsv8i16:
    case ARM::VQSHLsv8i8:
    case ARM::VQSHLuv16i8:
    case ARM::VQSHLuv1i64:
    case ARM::VQSHLuv2i32:
    case ARM::VQSHLuv2i64:
    case ARM::VQSHLuv4i16:
    case ARM::VQSHLuv4i32:
    case ARM::VQSHLuv8i16:
    case ARM::VQSHLuv8i8:
    case ARM::VRSHLsv16i8:
    case ARM::VRSHLsv1i64:
    case ARM::VRSHLsv2i32:
    case ARM::VRSHLsv2i64:
    case ARM::VRSHLsv4i16:
    case ARM::VRSHLsv4i32:
    case ARM::VRSHLsv8i16:
    case ARM::VRSHLsv8i8:
    case ARM::VRSHLuv16i8:
    case ARM::VRSHLuv1i64:
    case ARM::VRSHLuv2i32:
    case ARM::VRSHLuv2i64:
    case ARM::VRSHLuv4i16:
    case ARM::VRSHLuv4i32:
    case ARM::VRSHLuv8i16:
    case ARM::VRSHLuv8i8:
    case ARM::VSHLsv16i8:
    case ARM::VSHLsv1i64:
    case ARM::VSHLsv2i32:
    case ARM::VSHLsv2i64:
    case ARM::VSHLsv4i16:
    case ARM::VSHLsv4i32:
    case ARM::VSHLsv8i16:
    case ARM::VSHLsv8i8:
    case ARM::VSHLuv16i8:
    case ARM::VSHLuv1i64:
    case ARM::VSHLuv2i32:
    case ARM::VSHLuv2i64:
    case ARM::VSHLuv4i16:
    case ARM::VSHLuv4i32:
    case ARM::VSHLuv8i16:
    case ARM::VSHLuv8i8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCMLAv2f32:
    case ARM::VCMLAv4f16:
    case ARM::VCMLAv4f32:
    case ARM::VCMLAv8f16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 23;
      Value |= op;
      break;
    }
    case ARM::VCMLAv2f32_indexed:
    case ARM::VCMLAv4f32_indexed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 20;
      Value |= op;
      break;
    }
    case ARM::SHA1C:
    case ARM::SHA1M:
    case ARM::SHA1P:
    case ARM::SHA1SU0:
    case ARM::SHA256H:
    case ARM::SHA256H2:
    case ARM::SHA256SU1:
    case ARM::VABALsv2i64:
    case ARM::VABALsv4i32:
    case ARM::VABALsv8i16:
    case ARM::VABALuv2i64:
    case ARM::VABALuv4i32:
    case ARM::VABALuv8i16:
    case ARM::VABAsv16i8:
    case ARM::VABAsv2i32:
    case ARM::VABAsv4i16:
    case ARM::VABAsv4i32:
    case ARM::VABAsv8i16:
    case ARM::VABAsv8i8:
    case ARM::VABAuv16i8:
    case ARM::VABAuv2i32:
    case ARM::VABAuv4i16:
    case ARM::VABAuv4i32:
    case ARM::VABAuv8i16:
    case ARM::VABAuv8i8:
    case ARM::VBIFd:
    case ARM::VBIFq:
    case ARM::VBITd:
    case ARM::VBITq:
    case ARM::VBSLd:
    case ARM::VBSLq:
    case ARM::VFMAfd:
    case ARM::VFMAfq:
    case ARM::VFMAhd:
    case ARM::VFMAhq:
    case ARM::VFMSfd:
    case ARM::VFMSfq:
    case ARM::VFMShd:
    case ARM::VFMShq:
    case ARM::VMLALsv2i64:
    case ARM::VMLALsv4i32:
    case ARM::VMLALsv8i16:
    case ARM::VMLALuv2i64:
    case ARM::VMLALuv4i32:
    case ARM::VMLALuv8i16:
    case ARM::VMLAfd:
    case ARM::VMLAfq:
    case ARM::VMLAhd:
    case ARM::VMLAhq:
    case ARM::VMLAv16i8:
    case ARM::VMLAv2i32:
    case ARM::VMLAv4i16:
    case ARM::VMLAv4i32:
    case ARM::VMLAv8i16:
    case ARM::VMLAv8i8:
    case ARM::VMLSLsv2i64:
    case ARM::VMLSLsv4i32:
    case ARM::VMLSLsv8i16:
    case ARM::VMLSLuv2i64:
    case ARM::VMLSLuv4i32:
    case ARM::VMLSLuv8i16:
    case ARM::VMLSfd:
    case ARM::VMLSfq:
    case ARM::VMLShd:
    case ARM::VMLShq:
    case ARM::VMLSv16i8:
    case ARM::VMLSv2i32:
    case ARM::VMLSv4i16:
    case ARM::VMLSv4i32:
    case ARM::VMLSv8i16:
    case ARM::VMLSv8i8:
    case ARM::VQDMLALv2i64:
    case ARM::VQDMLALv4i32:
    case ARM::VQDMLSLv2i64:
    case ARM::VQDMLSLv4i32:
    case ARM::VQRDMLAHv2i32:
    case ARM::VQRDMLAHv4i16:
    case ARM::VQRDMLAHv4i32:
    case ARM::VQRDMLAHv8i16:
    case ARM::VQRDMLSHv2i32:
    case ARM::VQRDMLSHv4i16:
    case ARM::VQRDMLSHv4i32:
    case ARM::VQRDMLSHv8i16:
    case ARM::VTBX1:
    case ARM::VTBX2:
    case ARM::VTBX3:
    case ARM::VTBX4: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMLALslsv2i32:
    case ARM::VMLALsluv2i32:
    case ARM::VMLAslfd:
    case ARM::VMLAslfq:
    case ARM::VMLAslv2i32:
    case ARM::VMLAslv4i32:
    case ARM::VMLSLslsv2i32:
    case ARM::VMLSLsluv2i32:
    case ARM::VMLSslfd:
    case ARM::VMLSslfq:
    case ARM::VMLSslv2i32:
    case ARM::VMLSslv4i32:
    case ARM::VQDMLALslv2i32:
    case ARM::VQDMLSLslv2i32:
    case ARM::VQRDMLAHslv2i32:
    case ARM::VQRDMLAHslv4i32:
    case ARM::VQRDMLSHslv2i32:
    case ARM::VQRDMLSHslv4i32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCMLAv4f16_indexed:
    case ARM::VCMLAv8f16_indexed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 20;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 5;
      Value |= op;
      break;
    }
    case ARM::VMLALslsv4i16:
    case ARM::VMLALsluv4i16:
    case ARM::VMLAslhd:
    case ARM::VMLAslhq:
    case ARM::VMLAslv4i16:
    case ARM::VMLAslv8i16:
    case ARM::VMLSLslsv4i16:
    case ARM::VMLSLsluv4i16:
    case ARM::VMLSslhd:
    case ARM::VMLSslhq:
    case ARM::VMLSslv4i16:
    case ARM::VMLSslv8i16:
    case ARM::VQDMLALslv4i16:
    case ARM::VQDMLSLslv4i16:
    case ARM::VQRDMLAHslv4i16:
    case ARM::VQRDMLAHslv8i16:
    case ARM::VQRDMLSHslv4i16:
    case ARM::VQRDMLSHslv8i16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 4;
      Value |= (op & UINT64_C(1)) << 3;
      Value = NEONThumb2DataIPostEncoder(MI, Value, STI);
      break;
    }
    case ARM::BF16VDOTS_VDOTD:
    case ARM::BF16VDOTS_VDOTQ:
    case ARM::VBF16MALBQ:
    case ARM::VBF16MALTQ:
    case ARM::VMMLA:
    case ARM::VSDOTD:
    case ARM::VSDOTQ:
    case ARM::VSMMLA:
    case ARM::VUDOTD:
    case ARM::VUDOTQ:
    case ARM::VUMMLA:
    case ARM::VUSDOTD:
    case ARM::VUSDOTQ:
    case ARM::VUSMMLA: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::BF16VDOTI_VDOTD:
    case ARM::BF16VDOTI_VDOTQ:
    case ARM::VSDOTDI:
    case ARM::VSDOTQI:
    case ARM::VSUDOTDI:
    case ARM::VSUDOTQI:
    case ARM::VUDOTDI:
    case ARM::VUDOTQI:
    case ARM::VUSDOTDI:
    case ARM::VUSDOTQI: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 5;
      Value |= op;
      break;
    }
    case ARM::VBF16MALBQI:
    case ARM::VBF16MALTQI: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      // op: idx
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(2)) << 4;
      Value |= (op & UINT64_C(1)) << 3;
      break;
    }
    case ARM::VST1LNd16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd32:
    case ARM::VST2LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd16:
    case ARM::VST2LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd16:
    case ARM::VST4LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16:
    case ARM::VST1d16T:
    case ARM::VST1d32:
    case ARM::VST1d32T:
    case ARM::VST1d64:
    case ARM::VST1d64T:
    case ARM::VST1d8:
    case ARM::VST1d8T:
    case ARM::VST3d16:
    case ARM::VST3d32:
    case ARM::VST3d8:
    case ARM::VST3q16:
    case ARM::VST3q32:
    case ARM::VST3q8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd32:
    case ARM::VST4LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16Q:
    case ARM::VST1d32Q:
    case ARM::VST1d64Q:
    case ARM::VST1d8Q:
    case ARM::VST1q16:
    case ARM::VST1q32:
    case ARM::VST1q64:
    case ARM::VST1q8:
    case ARM::VST2b16:
    case ARM::VST2b32:
    case ARM::VST2b8:
    case ARM::VST2d16:
    case ARM::VST2d32:
    case ARM::VST2d8:
    case ARM::VST2q16:
    case ARM::VST2q32:
    case ARM::VST2q8:
    case ARM::VST4d16:
    case ARM::VST4d32:
    case ARM::VST4d8:
    case ARM::VST4q16:
    case ARM::VST4q32:
    case ARM::VST4q8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd32:
    case ARM::VST3LNq32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd16:
    case ARM::VST3LNq16: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd8: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1LNd32: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6OneLane32AddressOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16wb_fixed:
    case ARM::VST1d32wb_fixed:
    case ARM::VST1d64wb_fixed:
    case ARM::VST1d8wb_fixed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16Qwb_fixed:
    case ARM::VST1d16Twb_fixed:
    case ARM::VST1d32Qwb_fixed:
    case ARM::VST1d32Twb_fixed:
    case ARM::VST1d64Qwb_fixed:
    case ARM::VST1d64Twb_fixed:
    case ARM::VST1d8Qwb_fixed:
    case ARM::VST1d8Twb_fixed:
    case ARM::VST1q16wb_fixed:
    case ARM::VST1q32wb_fixed:
    case ARM::VST1q64wb_fixed:
    case ARM::VST1q8wb_fixed:
    case ARM::VST2b16wb_fixed:
    case ARM::VST2b32wb_fixed:
    case ARM::VST2b8wb_fixed:
    case ARM::VST2d16wb_fixed:
    case ARM::VST2d32wb_fixed:
    case ARM::VST2d8wb_fixed:
    case ARM::VST2q16wb_fixed:
    case ARM::VST2q32wb_fixed:
    case ARM::VST2q8wb_fixed: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1LNd16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd32_UPD:
    case ARM::VST2LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd16_UPD:
    case ARM::VST2LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST2LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd16_UPD:
    case ARM::VST4LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3d16_UPD:
    case ARM::VST3d32_UPD:
    case ARM::VST3d8_UPD:
    case ARM::VST3q16_UPD:
    case ARM::VST3q32_UPD:
    case ARM::VST3q8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16wb_register:
    case ARM::VST1d32wb_register:
    case ARM::VST1d64wb_register:
    case ARM::VST1d8wb_register: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4LNd32_UPD:
    case ARM::VST4LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST4d16_UPD:
    case ARM::VST4d32_UPD:
    case ARM::VST4d8_UPD:
    case ARM::VST4q16_UPD:
    case ARM::VST4q32_UPD:
    case ARM::VST4q8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1d16Qwb_register:
    case ARM::VST1d16Twb_register:
    case ARM::VST1d32Qwb_register:
    case ARM::VST1d32Twb_register:
    case ARM::VST1d64Qwb_register:
    case ARM::VST1d64Twb_register:
    case ARM::VST1d8Qwb_register:
    case ARM::VST1d8Twb_register:
    case ARM::VST1q16wb_register:
    case ARM::VST1q32wb_register:
    case ARM::VST1q64wb_register:
    case ARM::VST1q8wb_register:
    case ARM::VST2b16wb_register:
    case ARM::VST2b32wb_register:
    case ARM::VST2b8wb_register:
    case ARM::VST2d16wb_register:
    case ARM::VST2d32wb_register:
    case ARM::VST2d8wb_register:
    case ARM::VST2q16wb_register:
    case ARM::VST2q32wb_register:
    case ARM::VST2q8wb_register: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd32_UPD:
    case ARM::VST3LNq32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd16_UPD:
    case ARM::VST3LNq16_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 6;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST3LNd8_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6AddressOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VST1LNd32_UPD: {
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Rn
      op = getAddrMode6OneLane32AddressOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(48));
      // op: Rm
      op = getAddrMode6OffsetOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lane
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      Value = NEONThumb2LoadStorePostEncoder(MI, Value, STI);
      break;
    }
    case ARM::LDC2L_OFFSET:
    case ARM::LDC2L_PRE:
    case ARM::LDC2_OFFSET:
    case ARM::LDC2_PRE:
    case ARM::STC2L_OFFSET:
    case ARM::STC2L_PRE:
    case ARM::STC2_OFFSET:
    case ARM::STC2_PRE:
    case ARM::t2LDC2L_OFFSET:
    case ARM::t2LDC2L_PRE:
    case ARM::t2LDC2_OFFSET:
    case ARM::t2LDC2_PRE:
    case ARM::t2LDCL_OFFSET:
    case ARM::t2LDCL_PRE:
    case ARM::t2LDC_OFFSET:
    case ARM::t2LDC_PRE:
    case ARM::t2STC2L_OFFSET:
    case ARM::t2STC2L_PRE:
    case ARM::t2STC2_OFFSET:
    case ARM::t2STC2_PRE:
    case ARM::t2STCL_OFFSET:
    case ARM::t2STCL_PRE:
    case ARM::t2STC_OFFSET:
    case ARM::t2STC_PRE: {
      // op: addr
      op = getAddrMode5OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::t2PLDWi12:
    case ARM::t2PLDi12:
    case ARM::t2PLIi12: {
      // op: addr
      op = getAddrModeImm12OpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::PLDWi12:
    case ARM::PLDi12:
    case ARM::PLIi12: {
      // op: addr
      op = getAddrModeImm12OpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::t2PLDpci:
    case ARM::t2PLIpci: {
      // op: addr
      op = getAddrModeImm12OpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::t2LDAEXB:
    case ARM::t2LDAEXH:
    case ARM::t2LDREXB:
    case ARM::t2LDREXH: {
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::t2LDAEXD:
    case ARM::t2LDREXD: {
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::t2PLDWi8:
    case ARM::t2PLDi8:
    case ARM::t2PLIi8: {
      // op: addr
      op = getT2AddrModeImmOpValue<8,0>(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2PLDWs:
    case ARM::t2PLDs:
    case ARM::t2PLIs: {
      // op: addr
      op = getT2AddrModeSORegOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(960)) << 10;
      Value |= (op & UINT64_C(3)) << 4;
      Value |= (op & UINT64_C(60)) >> 2;
      break;
    }
    case ARM::t2BFLr:
    case ARM::t2BFr: {
      // op: b_label
      op = getBFTargetOpValue<false, ARM::fixup_bf_branch>(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 23;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2BFi: {
      // op: b_label
      op = getBFTargetOpValue<false, ARM::fixup_bf_branch>(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 23;
      Value |= op;
      // op: label
      op = getBFTargetOpValue<false, ARM::fixup_bf_target>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(63488)) << 5;
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::t2BFLi: {
      // op: b_label
      op = getBFTargetOpValue<false, ARM::fixup_bf_branch>(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 23;
      Value |= op;
      // op: label
      op = getBFTargetOpValue<false, ARM::fixup_bfl_target>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(260096)) << 5;
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::t2MSRbanked: {
      // op: banked
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(32)) << 15;
      Value |= (op & UINT64_C(15)) << 8;
      Value |= (op & UINT64_C(16));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::t2MRSbanked: {
      // op: banked
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(32)) << 15;
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16));
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::t2BFic: {
      // op: bcond
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 18;
      Value |= op;
      // op: label
      op = getBFTargetOpValue<false, ARM::fixup_bfc_target>(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 5;
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      // op: ba_label
      op = getBFAfterTargetOpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 17;
      Value |= op;
      // op: b_label
      op = getBFTargetOpValue<false, ARM::fixup_bf_branch>(MI, 0, Fixups, STI);
      op &= UINT64_C(15);
      op <<= 23;
      Value |= op;
      break;
    }
    case ARM::t2IT: {
      // op: cc
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      // op: mask
      op = getITMaskOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::CDE_VCX1_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      break;
    }
    case ARM::CDE_VCX1_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      break;
    }
    case ARM::CDE_VCX1_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 13;
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      break;
    }
    case ARM::CDE_CX1:
    case ARM::CDE_CX1D: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8064)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CDE_VCX1A_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      break;
    }
    case ARM::CDE_VCX1A_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      break;
    }
    case ARM::CDE_VCX1A_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 13;
      Value |= (op & UINT64_C(1920)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      break;
    }
    case ARM::CDE_CX2:
    case ARM::CDE_CX2D: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(384)) << 13;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::CDE_VCX2_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::CDE_VCX2_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::CDE_VCX2_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(64)) << 18;
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      break;
    }
    case ARM::CDE_CX1A:
    case ARM::CDE_CX1DA: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(8064)) << 9;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CDE_CX2A:
    case ARM::CDE_CX2DA: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(384)) << 13;
      Value |= (op & UINT64_C(64)) << 1;
      Value |= (op & UINT64_C(63));
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::CDE_CX3:
    case ARM::CDE_CX3D: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(56)) << 17;
      Value |= (op & UINT64_C(4)) << 5;
      Value |= (op & UINT64_C(3)) << 4;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CDE_VCX3_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      break;
    }
    case ARM::CDE_VCX3_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      break;
    }
    case ARM::CDE_VCX2A_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      break;
    }
    case ARM::CDE_VCX2A_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::CDE_VCX2A_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(64)) << 18;
      Value |= (op & UINT64_C(60)) << 14;
      Value |= (op & UINT64_C(2)) << 6;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      break;
    }
    case ARM::CDE_VCX3_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 21;
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::CDE_CX3A:
    case ARM::CDE_CX3DA: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      Value |= (op & UINT64_C(56)) << 17;
      Value |= (op & UINT64_C(4)) << 5;
      Value |= (op & UINT64_C(3)) << 4;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CDE_VCX3A_fpsp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      break;
    }
    case ARM::CDE_VCX3A_fpdp: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Vd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Vm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: Vn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      break;
    }
    case ARM::CDE_VCX3A_vec: {
      // op: coproc
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 21;
      Value |= (op & UINT64_C(6)) << 19;
      Value |= (op & UINT64_C(1)) << 4;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 13;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 1;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      break;
    }
    case ARM::BX: {
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::tPICADD: {
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::tADDrSPi: {
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tSETEND: {
      // op: end
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::SETEND: {
      // op: end
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 9;
      Value |= op;
      break;
    }
    case ARM::MVE_VPTv16s8r:
    case ARM::MVE_VPTv4s32r:
    case ARM::MVE_VPTv8s16r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) << 4;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VCMPs16r:
    case ARM::MVE_VCMPs32r:
    case ARM::MVE_VCMPs8r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) << 4;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VPTv16s8:
    case ARM::MVE_VPTv4s32:
    case ARM::MVE_VPTv8s16: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) >> 1;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VCMPs16:
    case ARM::MVE_VCMPs32:
    case ARM::MVE_VCMPs8: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) >> 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VPTv4f32r:
    case ARM::MVE_VPTv8f16r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4)) << 10;
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) << 4;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VCMPf16r:
    case ARM::MVE_VCMPf32r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4)) << 10;
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) << 4;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VPTv4f32:
    case ARM::MVE_VPTv8f16: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4)) << 10;
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) >> 1;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VCMPf16:
    case ARM::MVE_VCMPf32: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4)) << 10;
      Value |= (op & UINT64_C(1)) << 7;
      Value |= (op & UINT64_C(2)) >> 1;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VPTv16i8:
    case ARM::MVE_VPTv16u8:
    case ARM::MVE_VPTv4i32:
    case ARM::MVE_VPTv4u32:
    case ARM::MVE_VPTv8i16:
    case ARM::MVE_VPTv8u16: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VPTv16i8r:
    case ARM::MVE_VPTv16u8r:
    case ARM::MVE_VPTv4i32r:
    case ARM::MVE_VPTv4u32r:
    case ARM::MVE_VPTv8i16r:
    case ARM::MVE_VPTv8u16r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      // op: Mk
      op = getVPTMaskOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MVE_VCMPi16:
    case ARM::MVE_VCMPi32:
    case ARM::MVE_VCMPi8:
    case ARM::MVE_VCMPu16:
    case ARM::MVE_VCMPu32:
    case ARM::MVE_VCMPu8: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Qm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 2;
      Value |= (op & UINT64_C(7)) << 1;
      break;
    }
    case ARM::MVE_VCMPi16r:
    case ARM::MVE_VCMPi32r:
    case ARM::MVE_VCMPi8r:
    case ARM::MVE_VCMPu16r:
    case ARM::MVE_VCMPu32r:
    case ARM::MVE_VCMPu8r: {
      // op: fc
      op = getRestrictedCondCodeOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 7;
      Value |= op;
      // op: Qn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 17;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::BL: {
      // op: func
      op = getARMBLTargetOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(16777215);
      Value |= op;
      break;
    }
    case ARM::BLX: {
      // op: func
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2BXJ: {
      // op: func
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::tBLXNSr:
    case ARM::tBLXr: {
      // op: func
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::tBL: {
      // op: func
      op = getThumbBLTargetOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(8388608)) << 3;
      Value |= (op & UINT64_C(2095104)) << 5;
      Value |= (op & UINT64_C(4194304)) >> 9;
      Value |= (op & UINT64_C(2097152)) >> 10;
      Value |= (op & UINT64_C(2047));
      break;
    }
    case ARM::tBLXi: {
      // op: func
      op = getThumbBLXTargetOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(8388608)) << 3;
      Value |= (op & UINT64_C(2095104)) << 5;
      Value |= (op & UINT64_C(4194304)) >> 9;
      Value |= (op & UINT64_C(2097152)) >> 10;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::HVC: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(65520)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::t2SETPAN: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 3;
      Value |= op;
      break;
    }
    case ARM::SETPAN: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 9;
      Value |= op;
      break;
    }
    case ARM::tHINT: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      break;
    }
    case ARM::t2HINT:
    case ARM::t2SUBS_PC_LR:
    case ARM::tSVC: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::MVE_VMOVimmf32:
    case ARM::MVE_VMOVimmi64:
    case ARM::MVE_VMOVimmi8: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 21;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(15));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VMOVimmi32:
    case ARM::MVE_VMVNimmi32: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 21;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(15));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VMOVimmi16:
    case ARM::MVE_VMVNimmi16: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 21;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(512));
      Value |= (op & UINT64_C(15));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VBICimmi32:
    case ARM::MVE_VORRimmi32: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 21;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(1536));
      Value |= (op & UINT64_C(15));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::MVE_VBICimmi16:
    case ARM::MVE_VORRimmi16: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(128)) << 21;
      Value |= (op & UINT64_C(112)) << 12;
      Value |= (op & UINT64_C(512));
      Value |= (op & UINT64_C(15));
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      break;
    }
    case ARM::t2ADDspImm12:
    case ARM::t2SUBspImm12: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::tADDspi:
    case ARM::tSUBspi: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(127);
      Value |= op;
      break;
    }
    case ARM::MVE_VSHLC: {
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      // op: Qd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(8)) << 19;
      Value |= (op & UINT64_C(7)) << 13;
      // op: RdmDest
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2HVC:
    case ARM::t2UDF: {
      // op: imm16
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(61440)) << 4;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::UDF: {
      // op: imm16
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(65520)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::tUDF: {
      // op: imm8
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tCPS: {
      // op: imod
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(1);
      op <<= 4;
      Value |= op;
      // op: iflags
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::CPS2p: {
      // op: imod
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 18;
      Value |= op;
      // op: iflags
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 6;
      Value |= op;
      break;
    }
    case ARM::CPS3p: {
      // op: imod
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 18;
      Value |= op;
      // op: iflags
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 6;
      Value |= op;
      // op: mode
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(31);
      Value |= op;
      break;
    }
    case ARM::t2CPS2p: {
      // op: imod
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 9;
      Value |= op;
      // op: iflags
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      break;
    }
    case ARM::t2CPS3p: {
      // op: imod
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 9;
      Value |= op;
      // op: iflags
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: mode
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(31);
      Value |= op;
      break;
    }
    case ARM::t2LE: {
      // op: label
      op = getBFTargetOpValue<true, ARM::fixup_le>(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::MVE_LETP:
    case ARM::t2LEUpdate: {
      // op: label
      op = getBFTargetOpValue<true, ARM::fixup_le>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 11;
      Value |= (op & UINT64_C(2046));
      break;
    }
    case ARM::t2MSR_AR: {
      // op: mask
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 16;
      Value |= (op & UINT64_C(15)) << 8;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::CPS1p:
    case ARM::SRSDA:
    case ARM::SRSDA_UPD:
    case ARM::SRSDB:
    case ARM::SRSDB_UPD:
    case ARM::SRSIA:
    case ARM::SRSIA_UPD:
    case ARM::SRSIB:
    case ARM::SRSIB_UPD:
    case ARM::t2CPS1p:
    case ARM::t2SRSDB:
    case ARM::t2SRSDB_UPD:
    case ARM::t2SRSIA:
    case ARM::t2SRSIA_UPD: {
      // op: mode
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(31);
      Value |= op;
      break;
    }
    case ARM::LDC2L_POST:
    case ARM::LDC2_POST:
    case ARM::STC2L_POST:
    case ARM::STC2_POST:
    case ARM::t2LDC2L_POST:
    case ARM::t2LDC2_POST:
    case ARM::t2LDCL_POST:
    case ARM::t2LDC_POST:
    case ARM::t2STC2L_POST:
    case ARM::t2STC2_POST:
    case ARM::t2STCL_POST:
    case ARM::t2STC_POST: {
      // op: offset
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(255));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CDP2:
    case ARM::t2CDP:
    case ARM::t2CDP2: {
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 20;
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::DMB:
    case ARM::DSB:
    case ARM::ISB:
    case ARM::t2DBG:
    case ARM::t2DMB:
    case ARM::t2DSB:
    case ARM::t2ISB: {
      // op: opt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2SMC: {
      // op: opt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDC2L_OPTION:
    case ARM::LDC2_OPTION:
    case ARM::STC2L_OPTION:
    case ARM::STC2_OPTION:
    case ARM::t2LDC2L_OPTION:
    case ARM::t2LDC2_OPTION:
    case ARM::t2LDCL_OPTION:
    case ARM::t2LDC_OPTION:
    case ARM::t2STC2L_OPTION:
    case ARM::t2STC2_OPTION:
    case ARM::t2STCL_OPTION:
    case ARM::t2STC_OPTION: {
      // op: option
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::BX_RET:
    case ARM::ERET:
    case ARM::MOVPCLR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      break;
    }
    case ARM::FMSTAT: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::t2Bcc: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 22;
      Value |= op;
      // op: target
      op = getBranchTargetOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(1048576)) << 6;
      Value |= (op & UINT64_C(258048)) << 4;
      Value |= (op & UINT64_C(262144)) >> 5;
      Value |= (op & UINT64_C(524288)) >> 8;
      Value |= (op & UINT64_C(4094)) >> 1;
      break;
    }
    case ARM::VCMPEZD:
    case ARM::VCMPZD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::MRS:
    case ARM::MRSsys: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::VLDMSIA:
    case ARM::VSTMSIA: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 14;
      Value |= (op & UINT64_C(7680)) << 3;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::FLDMXIA:
    case ARM::FSTMXIA: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(3840)) << 4;
      Value |= (op & UINT64_C(254));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDMDIA:
    case ARM::VSTMDIA: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 10;
      Value |= (op & UINT64_C(3840)) << 4;
      Value |= (op & UINT64_C(254));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLLDM:
    case ARM::VLSTM: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMRS:
    case ARM::VMRS_FPCXTNS:
    case ARM::VMRS_FPCXTS:
    case ARM::VMRS_FPEXC:
    case ARM::VMRS_FPINST:
    case ARM::VMRS_FPINST2:
    case ARM::VMRS_FPSID:
    case ARM::VMRS_MVFR0:
    case ARM::VMRS_MVFR1:
    case ARM::VMRS_MVFR2:
    case ARM::VMRS_VPR:
    case ARM::VMSR:
    case ARM::VMSR_FPCXTNS:
    case ARM::VMSR_FPCXTS:
    case ARM::VMSR_FPEXC:
    case ARM::VMSR_FPINST:
    case ARM::VMSR_FPINST2:
    case ARM::VMSR_FPSID:
    case ARM::VMSR_VPR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCMPEZH:
    case ARM::VCMPEZS:
    case ARM::VCMPZH:
    case ARM::VCMPZS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::BX_pred: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::BL_pred: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: func
      op = getARMBLTargetOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(16777215);
      Value |= op;
      break;
    }
    case ARM::BLX_pred:
    case ARM::BXJ: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: func
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::HINT: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::DBG:
    case ARM::SMC: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: opt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::LDMDA:
    case ARM::LDMDB:
    case ARM::LDMIA:
    case ARM::LDMIB:
    case ARM::STMDA:
    case ARM::STMDB:
    case ARM::STMIA:
    case ARM::STMIB:
    case ARM::sysLDMDA:
    case ARM::sysLDMDB:
    case ARM::sysLDMIA:
    case ARM::sysLDMIB:
    case ARM::sysSTMDA:
    case ARM::sysSTMDB:
    case ARM::sysSTMIA:
    case ARM::sysSTMIB: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 3, Fixups, STI);
      op &= UINT64_C(65535);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::SVC: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: svc
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(16777215);
      Value |= op;
      break;
    }
    case ARM::Bcc: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: target
      op = getARMBranchTargetOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(16777215);
      Value |= op;
      break;
    }
    case ARM::tBcc: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: target
      op = getThumbBCCTargetOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::VABSD:
    case ARM::VCMPD:
    case ARM::VCMPED:
    case ARM::VMOVD:
    case ARM::VNEGD:
    case ARM::VRINTRD:
    case ARM::VRINTXD:
    case ARM::VRINTZD:
    case ARM::VSQRTD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTBHD:
    case ARM::VCVTTHD:
    case ARM::VSITOD:
    case ARM::VUITOD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::FCONSTD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(240)) << 12;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::CLZ:
    case ARM::RBIT:
    case ARM::REV:
    case ARM::REV16:
    case ARM::REVSH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MOVi16: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: imm
      op = getHiLo16ImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(61440)) << 4;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::ADR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: label
      op = getAdrLabelOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(12288)) << 10;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::CMNzrr:
    case ARM::CMPrr:
    case ARM::TEQrr:
    case ARM::TSTrr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::CMNri:
    case ARM::CMPri:
    case ARM::TEQri:
    case ARM::TSTri: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getModImmOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(4095);
      Value |= op;
      break;
    }
    case ARM::VLDMSDB_UPD:
    case ARM::VLDMSIA_UPD:
    case ARM::VSTMSDB_UPD:
    case ARM::VSTMSIA_UPD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 14;
      Value |= (op & UINT64_C(7680)) << 3;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::FLDMXDB_UPD:
    case ARM::FLDMXIA_UPD:
    case ARM::FSTMXDB_UPD:
    case ARM::FSTMXIA_UPD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(3840)) << 4;
      Value |= (op & UINT64_C(254));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDMDDB_UPD:
    case ARM::VLDMDIA_UPD:
    case ARM::VSTMDDB_UPD:
    case ARM::VSTMDIA_UPD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 10;
      Value |= (op & UINT64_C(3840)) << 4;
      Value |= (op & UINT64_C(254));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::STL:
    case ARM::STLB:
    case ARM::STLH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::VMOVRH:
    case ARM::VMOVRS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Sn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::LDA:
    case ARM::LDAB:
    case ARM::LDAEX:
    case ARM::LDAEXB:
    case ARM::LDAEXD:
    case ARM::LDAEXH:
    case ARM::LDAH:
    case ARM::LDREX:
    case ARM::LDREXB:
    case ARM::LDREXD:
    case ARM::LDREXH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::VMRS_FPSCR_NZCVQC:
    case ARM::VMRS_P0: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMSR_FPSCR_NZCVQC:
    case ARM::VMSR_P0: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTSD:
    case ARM::VJCVT:
    case ARM::VTOSIRD:
    case ARM::VTOSIZD:
    case ARM::VTOUIRD:
    case ARM::VTOUIZD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VABSH:
    case ARM::VABSS:
    case ARM::VCMPEH:
    case ARM::VCMPES:
    case ARM::VCMPH:
    case ARM::VCMPS:
    case ARM::VCVTBHS:
    case ARM::VCVTTHS:
    case ARM::VMOVS:
    case ARM::VNEGH:
    case ARM::VNEGS:
    case ARM::VRINTRH:
    case ARM::VRINTRS:
    case ARM::VRINTXH:
    case ARM::VRINTXS:
    case ARM::VRINTZH:
    case ARM::VRINTZS:
    case ARM::VSITOH:
    case ARM::VSITOS:
    case ARM::VSQRTH:
    case ARM::VSQRTS:
    case ARM::VTOSIRH:
    case ARM::VTOSIRS:
    case ARM::VTOSIZH:
    case ARM::VTOSIZS:
    case ARM::VTOUIRH:
    case ARM::VTOUIRS:
    case ARM::VTOUIZH:
    case ARM::VTOUIZS:
    case ARM::VUITOH:
    case ARM::VUITOS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::FCONSTH:
    case ARM::FCONSTS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(240)) << 12;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTDS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVHR:
    case ARM::VMOVSR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDR_FPCXTNS_off:
    case ARM::VLDR_FPCXTS_off:
    case ARM::VLDR_FPSCR_NZCVQC_off:
    case ARM::VLDR_FPSCR_off:
    case ARM::VLDR_VPR_off:
    case ARM::VSTR_FPCXTNS_off:
    case ARM::VSTR_FPCXTS_off:
    case ARM::VSTR_FPSCR_NZCVQC_off:
    case ARM::VSTR_FPSCR_off:
    case ARM::VSTR_VPR_off: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm7s4OpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::MSRbanked: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: banked
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(32)) << 17;
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 4;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MRSbanked: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: banked
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(32)) << 17;
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 4;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::MSR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: mask
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 16;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MSRi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: mask
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 16;
      // op: imm
      op = getModImmOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(4095);
      Value |= op;
      break;
    }
    case ARM::LDMDA_UPD:
    case ARM::LDMDB_UPD:
    case ARM::LDMIA_UPD:
    case ARM::LDMIB_UPD:
    case ARM::STMDA_UPD:
    case ARM::STMDB_UPD:
    case ARM::STMIA_UPD:
    case ARM::STMIB_UPD:
    case ARM::sysLDMDA_UPD:
    case ARM::sysLDMDB_UPD:
    case ARM::sysLDMIA_UPD:
    case ARM::sysLDMIB_UPD:
    case ARM::sysSTMDA_UPD:
    case ARM::sysSTMDB_UPD:
    case ARM::sysSTMIA_UPD:
    case ARM::sysSTMIB_UPD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: regs
      op = getRegisterListOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(65535);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MOVr:
    case ARM::MOVr_TC:
    case ARM::MVNr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::MOVi:
    case ARM::MVNi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: imm
      op = getModImmOpValue(MI, 1, Fixups, STI);
      op &= UINT64_C(4095);
      Value |= op;
      break;
    }
    case ARM::VADDD:
    case ARM::VDIVD:
    case ARM::VMULD:
    case ARM::VNMULD:
    case ARM::VSUBD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Dn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDRD:
    case ARM::VSTRD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: addr
      op = getAddrMode5OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVDRR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVRRD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VCVTBDH:
    case ARM::VCVTTDH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::SXTB:
    case ARM::SXTB16:
    case ARM::SXTH:
    case ARM::UXTB:
    case ARM::UXTB16:
    case ARM::UXTH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 10;
      Value |= op;
      break;
    }
    case ARM::SEL: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::BFC: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: imm
      op = getBitfieldInvertedMaskOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(992)) << 11;
      Value |= (op & UINT64_C(31)) << 7;
      break;
    }
    case ARM::MOVTi16: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: imm
      op = getHiLo16ImmOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(61440)) << 4;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::SSAT16:
    case ARM::USAT16: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: sat_imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::SDIV:
    case ARM::SMMUL:
    case ARM::SMMULR:
    case ARM::UDIV:
    case ARM::USAD8: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      break;
    }
    case ARM::CMNzrsi:
    case ARM::CMPrsi:
    case ARM::TEQrsi:
    case ARM::TSTrsi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: shift
      op = getSORegImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::SMUAD:
    case ARM::SMUADX:
    case ARM::SMULBB:
    case ARM::SMULBT:
    case ARM::SMULTB:
    case ARM::SMULTT:
    case ARM::SMULWB:
    case ARM::SMULWT:
    case ARM::SMUSD:
    case ARM::SMUSDX: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::QADD16:
    case ARM::QADD8:
    case ARM::QASX:
    case ARM::QSAX:
    case ARM::QSUB16:
    case ARM::QSUB8:
    case ARM::SADD16:
    case ARM::SADD8:
    case ARM::SASX:
    case ARM::SHADD16:
    case ARM::SHADD8:
    case ARM::SHASX:
    case ARM::SHSAX:
    case ARM::SHSUB16:
    case ARM::SHSUB8:
    case ARM::SSAX:
    case ARM::SSUB16:
    case ARM::SSUB8:
    case ARM::UADD16:
    case ARM::UADD8:
    case ARM::UASX:
    case ARM::UHADD16:
    case ARM::UHADD8:
    case ARM::UHASX:
    case ARM::UHSAX:
    case ARM::UHSUB16:
    case ARM::UHSUB8:
    case ARM::UQADD16:
    case ARM::UQADD8:
    case ARM::UQASX:
    case ARM::UQSAX:
    case ARM::UQSUB16:
    case ARM::UQSUB8:
    case ARM::USAX:
    case ARM::USUB16:
    case ARM::USUB8: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::QADD:
    case ARM::QDADD:
    case ARM::QDSUB:
    case ARM::QSUB: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::SWP:
    case ARM::SWPB: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDRBi12:
    case ARM::LDRi12:
    case ARM::STRBi12:
    case ARM::STRi12: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::LDRcp: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::STLEX:
    case ARM::STLEXB:
    case ARM::STLEXD:
    case ARM::STLEXH:
    case ARM::STREX:
    case ARM::STREXB:
    case ARM::STREXD:
    case ARM::STREXH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::BF16_VCVTB:
    case ARM::BF16_VCVTT:
    case ARM::VCVTBSH:
    case ARM::VCVTTSH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VADDH:
    case ARM::VADDS:
    case ARM::VDIVH:
    case ARM::VDIVS:
    case ARM::VMULH:
    case ARM::VMULS:
    case ARM::VNMULH:
    case ARM::VNMULS:
    case ARM::VSUBH:
    case ARM::VSUBS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDRH:
    case ARM::VSTRH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: addr
      op = getAddrMode5FP16OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDRS:
    case ARM::VSTRS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: addr
      op = getAddrMode5OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDR_FPCXTNS_pre:
    case ARM::VLDR_FPCXTS_pre:
    case ARM::VLDR_FPSCR_NZCVQC_pre:
    case ARM::VLDR_FPSCR_pre:
    case ARM::VLDR_P0_off:
    case ARM::VLDR_VPR_pre:
    case ARM::VSTR_FPCXTNS_pre:
    case ARM::VSTR_FPCXTS_pre:
    case ARM::VSTR_FPSCR_NZCVQC_pre:
    case ARM::VSTR_FPSCR_pre:
    case ARM::VSTR_P0_off:
    case ARM::VSTR_VPR_pre: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm7s4OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDR_FPCXTNS_post:
    case ARM::VLDR_FPCXTS_post:
    case ARM::VLDR_FPSCR_NZCVQC_post:
    case ARM::VLDR_FPSCR_post:
    case ARM::VLDR_VPR_post:
    case ARM::VSTR_FPCXTNS_post:
    case ARM::VSTR_FPCXTS_post:
    case ARM::VSTR_FPSCR_NZCVQC_post:
    case ARM::VSTR_FPSCR_post:
    case ARM::VSTR_VPR_post: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,2>(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSHTOH:
    case ARM::VSHTOS:
    case ARM::VSLTOH:
    case ARM::VSLTOS:
    case ARM::VTOSHH:
    case ARM::VTOSHS:
    case ARM::VTOSLH:
    case ARM::VTOSLS:
    case ARM::VTOUHH:
    case ARM::VTOUHS:
    case ARM::VTOULH:
    case ARM::VTOULS:
    case ARM::VUHTOH:
    case ARM::VUHTOS:
    case ARM::VULTOH:
    case ARM::VULTOS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: fbits
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VSHTOD:
    case ARM::VSLTOD:
    case ARM::VTOSHD:
    case ARM::VTOSLD:
    case ARM::VTOUHD:
    case ARM::VTOULD:
    case ARM::VUHTOD:
    case ARM::VULTOD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: fbits
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: dst
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::ADCrr:
    case ARM::ADDrr:
    case ARM::ANDrr:
    case ARM::BICrr:
    case ARM::EORrr:
    case ARM::ORRrr:
    case ARM::RSBrr:
    case ARM::RSCrr:
    case ARM::SBCrr:
    case ARM::SUBrr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::ADCri:
    case ARM::ADDri:
    case ARM::ANDri:
    case ARM::BICri:
    case ARM::EORri:
    case ARM::ORRri:
    case ARM::RSBri:
    case ARM::RSCri:
    case ARM::SBCri:
    case ARM::SUBri: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getModImmOpValue(MI, 2, Fixups, STI);
      op &= UINT64_C(4095);
      Value |= op;
      break;
    }
    case ARM::MVNsi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: shift
      op = getSORegImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MOVsi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: src
      op = getSORegImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MUL: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::VFMAD:
    case ARM::VFMSD:
    case ARM::VFNMAD:
    case ARM::VFNMSD:
    case ARM::VMLAD:
    case ARM::VMLSD:
    case ARM::VNMLAD:
    case ARM::VNMLSD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Dd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 18;
      Value |= (op & UINT64_C(15)) << 12;
      // op: Dn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(15)) << 16;
      Value |= (op & UINT64_C(16)) << 3;
      // op: Dm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(16)) << 1;
      Value |= (op & UINT64_C(15));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::SXTAB:
    case ARM::SXTAB16:
    case ARM::SXTAH:
    case ARM::UXTAB:
    case ARM::UXTAB16:
    case ARM::UXTAH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: rot
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(3);
      op <<= 10;
      Value |= op;
      break;
    }
    case ARM::SBFX:
    case ARM::UBFX: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: lsb
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 7;
      Value |= op;
      // op: width
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::PKHBT:
    case ARM::PKHTB: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: sh
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 7;
      Value |= op;
      break;
    }
    case ARM::BFI: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: imm
      op = getBitfieldInvertedMaskOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(992)) << 11;
      Value |= (op & UINT64_C(31)) << 7;
      break;
    }
    case ARM::SSAT:
    case ARM::USAT: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: sat_imm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(31);
      op <<= 16;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: sh
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(31)) << 7;
      Value |= (op & UINT64_C(32)) << 1;
      break;
    }
    case ARM::MLS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::SMMLA:
    case ARM::SMMLAR:
    case ARM::SMMLS:
    case ARM::SMMLSR:
    case ARM::USADA8: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::CMNzrsr:
    case ARM::CMPrsr:
    case ARM::TEQrsr:
    case ARM::TSTrsr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: shift
      op = getSORegRegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(96));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::SMLAD:
    case ARM::SMLADX:
    case ARM::SMLSD:
    case ARM::SMLSDX: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::SMLABB:
    case ARM::SMLABT:
    case ARM::SMLATB:
    case ARM::SMLATT:
    case ARM::SMLAWB:
    case ARM::SMLAWT: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::LDRB_PRE_IMM:
    case ARM::LDR_PRE_IMM: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::LDRBrs:
    case ARM::LDRrs:
    case ARM::STRBrs:
    case ARM::STRrs: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: shift
      op = getLdStSORegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRB_PRE_IMM:
    case ARM::STR_PRE_IMM: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrModeImm12OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4095));
      break;
    }
    case ARM::VFMAH:
    case ARM::VFMAS:
    case ARM::VFMSH:
    case ARM::VFMSS:
    case ARM::VFNMAH:
    case ARM::VFNMAS:
    case ARM::VFNMSH:
    case ARM::VFNMSS:
    case ARM::VMLAH:
    case ARM::VMLAS:
    case ARM::VMLSH:
    case ARM::VMLSS:
    case ARM::VNMLAH:
    case ARM::VNMLAS:
    case ARM::VNMLSH:
    case ARM::VNMLSS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Sd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 22;
      Value |= (op & UINT64_C(30)) << 11;
      // op: Sn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(30)) << 15;
      Value |= (op & UINT64_C(1)) << 7;
      // op: Sm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::LDRH:
    case ARM::LDRSB:
    case ARM::LDRSH:
    case ARM::STRH: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::LDCL_OFFSET:
    case ARM::LDCL_PRE:
    case ARM::LDC_OFFSET:
    case ARM::LDC_PRE:
    case ARM::STCL_OFFSET:
    case ARM::STCL_PRE:
    case ARM::STC_OFFSET:
    case ARM::STC_PRE: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getAddrMode5OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(255));
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::LDRHTi:
    case ARM::LDRSBTi:
    case ARM::LDRSHTi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRHTi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::VLDR_P0_pre:
    case ARM::VSTR_P0_pre: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getT2AddrModeImm7s4OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(3840)) << 8;
      Value |= (op & UINT64_C(127));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VLDR_P0_post:
    case ARM::VSTR_P0_post: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getT2ScaledImmOpValue<7,2>(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(128)) << 16;
      Value |= (op & UINT64_C(127));
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::VMOVSRR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: dst1
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: src1
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: src2
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::LDCL_POST:
    case ARM::LDC_POST:
    case ARM::STCL_POST:
    case ARM::STC_POST: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: offset
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(255));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::LDCL_OPTION:
    case ARM::LDC_OPTION:
    case ARM::STCL_OPTION:
    case ARM::STC_OPTION: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: option
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::ADCrsi:
    case ARM::ADDrsi:
    case ARM::ANDrsi:
    case ARM::BICrsi:
    case ARM::EORrsi:
    case ARM::ORRrsi:
    case ARM::RSBrsi:
    case ARM::RSCrsi:
    case ARM::SBCrsi:
    case ARM::SUBrsi: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: shift
      op = getSORegImmOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MVNsr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: shift
      op = getSORegRegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(96));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MOVsr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: src
      op = getSORegRegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(96));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MLA: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Ra
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::SMULL:
    case ARM::UMULL: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: RdLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: RdHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::VMOVRRS: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: src1
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(1)) << 5;
      Value |= (op & UINT64_C(30)) >> 1;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::MRRC: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::LDRH_PRE:
    case ARM::LDRSB_PRE:
    case ARM::LDRSH_PRE: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::LDRB_PRE_REG:
    case ARM::LDR_PRE_REG: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getLdStSORegOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::LDRBT_POST_REG:
    case ARM::LDRB_POST_REG:
    case ARM::LDRT_POST_REG:
    case ARM::LDR_POST_REG: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode2OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDRBT_POST_IMM:
    case ARM::LDRB_POST_IMM:
    case ARM::LDRT_POST_IMM:
    case ARM::LDR_POST_IMM: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode2OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4095));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDRH_POST:
    case ARM::LDRSB_POST:
    case ARM::LDRSH_POST: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode3OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(512)) << 13;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::STRH_PRE: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRB_PRE_REG:
    case ARM::STR_PRE_REG: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getLdStSORegOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRBT_POST_REG:
    case ARM::STRB_POST_REG:
    case ARM::STRT_POST_REG:
    case ARM::STR_POST_REG: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode2OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::STRBT_POST_IMM:
    case ARM::STRB_POST_IMM:
    case ARM::STRT_POST_IMM:
    case ARM::STR_POST_IMM: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode2OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(4095));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::STRH_POST: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode3OffsetOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(512)) << 13;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MCRR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rt2
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 4;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::LDRD:
    case ARM::STRD: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      break;
    }
    case ARM::LDRHTr:
    case ARM::LDRSBTr:
    case ARM::LDRSHTr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getPostIdxRegOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(16)) << 19;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRHTr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rm
      op = getPostIdxRegOpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(16)) << 19;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::ADCrsr:
    case ARM::ADDrsr:
    case ARM::ANDrsr:
    case ARM::BICrsr:
    case ARM::EORrsr:
    case ARM::ORRrsr:
    case ARM::RSBrsr:
    case ARM::RSCrsr:
    case ARM::SBCrsr:
    case ARM::SUBrsr: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 7, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: shift
      op = getSORegRegOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(3840));
      Value |= (op & UINT64_C(96));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::UMAAL: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: RdLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: RdHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::SMLALBB:
    case ARM::SMLALBT:
    case ARM::SMLALD:
    case ARM::SMLALDX:
    case ARM::SMLALTB:
    case ARM::SMLALTT:
    case ARM::SMLSLD:
    case ARM::SMLSLDX: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: RdLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: RdHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDRD_PRE: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::MRC: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 21;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::LDRD_POST: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode3OffsetOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(512)) << 13;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::STRD_PRE: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: addr
      op = getAddrMode3OpValue(MI, 3, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(8192)) << 9;
      Value |= (op & UINT64_C(7680)) << 7;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::STRD_POST: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: offset
      op = getAddrMode3OffsetOpValue(MI, 4, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 15;
      Value |= (op & UINT64_C(512)) << 13;
      Value |= (op & UINT64_C(240)) << 4;
      Value |= (op & UINT64_C(15));
      // op: addr
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::MCR: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: Rt
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 21;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      break;
    }
    case ARM::CDP: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: opc1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 20;
      Value |= op;
      // op: CRn
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: CRd
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: cop
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: opc2
      op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
      op &= UINT64_C(7);
      op <<= 5;
      Value |= op;
      // op: CRm
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::SMLAL:
    case ARM::UMLAL: {
      // op: p
      op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 28;
      Value |= op;
      // op: s
      op = getCCOutOpValue(MI, 8, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: RdLo
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 12;
      Value |= op;
      // op: RdHi
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::tPUSH: {
      // op: regs
      op = getRegisterListOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(16384)) >> 6;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::VSCCLRMS: {
      // op: regs
      op = getRegisterListOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(256)) << 14;
      Value |= (op & UINT64_C(7680)) << 3;
      Value |= (op & UINT64_C(255));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::tPOP: {
      // op: regs
      op = getRegisterListOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(32768)) >> 7;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::VSCCLRMD: {
      // op: regs
      op = getRegisterListOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 10;
      Value |= (op & UINT64_C(3840)) << 4;
      Value |= (op & UINT64_C(254));
      Value = VFPThumb2PostEncoder(MI, Value, STI);
      break;
    }
    case ARM::t2CLRM: {
      // op: regs
      op = getRegisterListOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(49152));
      Value |= (op & UINT64_C(8191));
      break;
    }
    case ARM::t2MOVr:
    case ARM::t2MVNr:
    case ARM::t2RRX: {
      // op: s
      op = getCCOutOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2MOVi:
    case ARM::t2MVNi: {
      // op: s
      op = getCCOutOpValue(MI, 4, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: imm
      op = getT2SOImmOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2ASRri:
    case ARM::t2LSLri:
    case ARM::t2LSRri:
    case ARM::t2RORri: {
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      // op: imm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      Value |= (op & UINT64_C(28)) << 10;
      Value |= (op & UINT64_C(3)) << 6;
      break;
    }
    case ARM::t2ADCrr:
    case ARM::t2ADDrr:
    case ARM::t2ANDrr:
    case ARM::t2ASRrr:
    case ARM::t2BICrr:
    case ARM::t2EORrr:
    case ARM::t2LSLrr:
    case ARM::t2LSRrr:
    case ARM::t2ORNrr:
    case ARM::t2ORRrr:
    case ARM::t2RORrr:
    case ARM::t2RSBrr:
    case ARM::t2SBCrr:
    case ARM::t2SUBrr: {
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: Rm
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
      op &= UINT64_C(15);
      Value |= op;
      break;
    }
    case ARM::t2ADCri:
    case ARM::t2ADDri:
    case ARM::t2ANDri:
    case ARM::t2BICri:
    case ARM::t2EORri:
    case ARM::t2ORNri:
    case ARM::t2ORRri:
    case ARM::t2RSBri:
    case ARM::t2SBCri:
    case ARM::t2SUBri: {
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: imm
      op = getT2SOImmOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2MVNs: {
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: ShiftedRm
      op = getT2SORegOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(3584)) << 3;
      Value |= (op & UINT64_C(480)) >> 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::t2ADDspImm:
    case ARM::t2SUBspImm: {
      // op: s
      op = getCCOutOpValue(MI, 5, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: imm
      op = getT2SOImmOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(2048)) << 15;
      Value |= (op & UINT64_C(1792)) << 4;
      Value |= (op & UINT64_C(255));
      break;
    }
    case ARM::t2ADCrs:
    case ARM::t2ADDrs:
    case ARM::t2ANDrs:
    case ARM::t2BICrs:
    case ARM::t2EORrs:
    case ARM::t2ORNrs:
    case ARM::t2ORRrs:
    case ARM::t2RSBrs:
    case ARM::t2SBCrs:
    case ARM::t2SUBrs: {
      // op: s
      op = getCCOutOpValue(MI, 6, Fixups, STI);
      op &= UINT64_C(1);
      op <<= 20;
      Value |= op;
      // op: Rd
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 8;
      Value |= op;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
      op &= UINT64_C(15);
      op <<= 16;
      Value |= op;
      // op: ShiftedRm
      op = getT2SORegOpValue(MI, 2, Fixups, STI);
      Value |= (op & UINT64_C(3584)) << 3;
      Value |= (op & UINT64_C(480)) >> 1;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::PLDWrs:
    case ARM::PLDrs:
    case ARM::PLIrs: {
      // op: shift
      op = getLdStSORegOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(4096)) << 11;
      Value |= (op & UINT64_C(122880)) << 3;
      Value |= (op & UINT64_C(4064));
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::BLXi: {
      // op: target
      op = getARMBLXTargetOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(1)) << 24;
      Value |= (op & UINT64_C(33554430)) >> 1;
      break;
    }
    case ARM::tB: {
      // op: target
      op = getThumbBRTargetOpValue(MI, 0, Fixups, STI);
      op &= UINT64_C(2047);
      Value |= op;
      break;
    }
    case ARM::t2B: {
      // op: target
      op = getThumbBranchTargetOpValue(MI, 0, Fixups, STI);
      Value |= (op & UINT64_C(8388608)) << 3;
      Value |= (op & UINT64_C(2095104)) << 5;
      Value |= (op & UINT64_C(4194304)) >> 9;
      Value |= (op & UINT64_C(2097152)) >> 10;
      Value |= (op & UINT64_C(2047));
      break;
    }
    case ARM::tCBNZ:
    case ARM::tCBZ: {
      // op: target
      op = getThumbCBTargetOpValue(MI, 1, Fixups, STI);
      Value |= (op & UINT64_C(32)) << 4;
      Value |= (op & UINT64_C(31)) << 3;
      // op: Rn
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(7);
      Value |= op;
      break;
    }
    case ARM::BKPT:
    case ARM::HLT: {
      // op: val
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      Value |= (op & UINT64_C(65520)) << 4;
      Value |= (op & UINT64_C(15));
      break;
    }
    case ARM::tBKPT: {
      // op: val
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(255);
      Value |= op;
      break;
    }
    case ARM::tHLT: {
      // op: val
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
      op &= UINT64_C(63);
      Value |= op;
      break;
    }
  default:
    std::string msg;
    raw_string_ostream Msg(msg);
    Msg << "Not supported instr: " << MI;
    report_fatal_error(Msg.str().c_str());
  }
  return Value;
}

