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

unsigned PPCCodeEmitter::getBinaryCodeForInstr(const MachineInstr &MI) {
  static const unsigned InstBits[] = {
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    0U,
    2080375316U,	// ADD4
    2080375316U,	// ADD8
    2080374804U,	// ADDC
    2080374804U,	// ADDC8
    2080375060U,	// ADDE
    2080375060U,	// ADDE8
    939524096U,	// ADDI
    939524096U,	// ADDI8
    805306368U,	// ADDIC
    805306368U,	// ADDIC8
    872415232U,	// ADDICo
    1006632960U,	// ADDIS
    1006632960U,	// ADDIS8
    2080375252U,	// ADDME
    2080375252U,	// ADDME8
    2080375188U,	// ADDZE
    2080375188U,	// ADDZE8
    0U,	// ADJCALLSTACKDOWN
    0U,	// ADJCALLSTACKUP
    2080374840U,	// AND
    2080374840U,	// AND8
    2080374904U,	// ANDC
    2080374904U,	// ANDC8
    1946157056U,	// ANDISo
    1946157056U,	// ANDISo8
    1879048192U,	// ANDIo
    1879048192U,	// ANDIo8
    0U,	// ATOMIC_CMP_SWAP_I16
    0U,	// ATOMIC_CMP_SWAP_I32
    0U,	// ATOMIC_CMP_SWAP_I64
    0U,	// ATOMIC_CMP_SWAP_I8
    0U,	// ATOMIC_LOAD_ADD_I16
    0U,	// ATOMIC_LOAD_ADD_I32
    0U,	// ATOMIC_LOAD_ADD_I64
    0U,	// ATOMIC_LOAD_ADD_I8
    0U,	// ATOMIC_LOAD_AND_I16
    0U,	// ATOMIC_LOAD_AND_I32
    0U,	// ATOMIC_LOAD_AND_I64
    0U,	// ATOMIC_LOAD_AND_I8
    0U,	// ATOMIC_LOAD_NAND_I16
    0U,	// ATOMIC_LOAD_NAND_I32
    0U,	// ATOMIC_LOAD_NAND_I64
    0U,	// ATOMIC_LOAD_NAND_I8
    0U,	// ATOMIC_LOAD_OR_I16
    0U,	// ATOMIC_LOAD_OR_I32
    0U,	// ATOMIC_LOAD_OR_I64
    0U,	// ATOMIC_LOAD_OR_I8
    0U,	// ATOMIC_LOAD_SUB_I16
    0U,	// ATOMIC_LOAD_SUB_I32
    0U,	// ATOMIC_LOAD_SUB_I64
    0U,	// ATOMIC_LOAD_SUB_I8
    0U,	// ATOMIC_LOAD_XOR_I16
    0U,	// ATOMIC_LOAD_XOR_I32
    0U,	// ATOMIC_LOAD_XOR_I64
    0U,	// ATOMIC_LOAD_XOR_I8
    0U,	// ATOMIC_SWAP_I16
    0U,	// ATOMIC_SWAP_I32
    0U,	// ATOMIC_SWAP_I64
    0U,	// ATOMIC_SWAP_I8
    1207959552U,	// B
    1073741824U,	// BCC
    1317012512U,	// BCTR
    1317012513U,	// BCTRL8_Darwin
    1317012513U,	// BCTRL8_ELF
    1317012513U,	// BCTRL_Darwin
    1317012513U,	// BCTRL_SVR4
    1207959553U,	// BL8_Darwin
    1207959553U,	// BL8_ELF
    1207959555U,	// BLA8_Darwin
    1207959555U,	// BLA8_ELF
    1207959555U,	// BLA_Darwin
    1207959555U,	// BLA_SVR4
    1275068448U,	// BLR
    1207959553U,	// BL_Darwin
    1207959553U,	// BL_SVR4
    2082471936U,	// CMPD
    740294656U,	// CMPDI
    2082472000U,	// CMPLD
    673185792U,	// CMPLDI
    2080374848U,	// CMPLW
    671088640U,	// CMPLWI
    2080374784U,	// CMPW
    738197504U,	// CMPWI
    2080374900U,	// CNTLZD
    2080374836U,	// CNTLZW
    1275068994U,	// CREQV
    1275069314U,	// CROR
    1275068994U,	// CRSET
    2080376300U,	// DCBA
    2080374956U,	// DCBF
    2080375724U,	// DCBI
    2080374892U,	// DCBST
    2080375340U,	// DCBT
    2080375276U,	// DCBTST
    2080376812U,	// DCBZ
    2082473964U,	// DCBZL
    2080375762U,	// DIVD
    2080375698U,	// DIVDU
    2080375766U,	// DIVW
    2080375702U,	// DIVWU
    2080376428U,	// DSS
    2080376428U,	// DSSALL
    2080375468U,	// DST
    2080375468U,	// DST64
    2080375532U,	// DSTST
    2080375532U,	// DSTST64
    2080375532U,	// DSTSTT
    2080375532U,	// DSTSTT64
    2080375468U,	// DSTT
    2080375468U,	// DSTT64
    0U,	// DYNALLOC
    0U,	// DYNALLOC8
    2080375352U,	// EQV
    2080375352U,	// EQV8
    2080376692U,	// EXTSB
    2080376692U,	// EXTSB8
    2080376628U,	// EXTSH
    2080376628U,	// EXTSH8
    2080376756U,	// EXTSW
    2080376756U,	// EXTSW_32
    2080376756U,	// EXTSW_32_64
    4227858960U,	// FABSD
    4227858960U,	// FABSS
    4227858474U,	// FADD
    3959423018U,	// FADDS
    4227858474U,	// FADDrtz
    4227860124U,	// FCFID
    4227858432U,	// FCMPUD
    4227858432U,	// FCMPUS
    4227860062U,	// FCTIDZ
    4227858462U,	// FCTIWZ
    4227858468U,	// FDIV
    3959423012U,	// FDIVS
    4227858490U,	// FMADD
    3959423034U,	// FMADDS
    4227858576U,	// FMR
    4227858488U,	// FMSUB
    3959423032U,	// FMSUBS
    4227858482U,	// FMUL
    3959423026U,	// FMULS
    4227858704U,	// FNABSD
    4227858704U,	// FNABSS
    4227858512U,	// FNEGD
    4227858512U,	// FNEGS
    4227858494U,	// FNMADD
    3959423038U,	// FNMADDS
    4227858492U,	// FNMSUB
    3959423036U,	// FNMSUBS
    4227858456U,	// FRSP
    4227858478U,	// FSELD
    4227858478U,	// FSELS
    4227858476U,	// FSQRT
    3959423020U,	// FSQRTS
    4227858472U,	// FSUB
    3959423016U,	// FSUBS
    939524096U,	// LA
    2281701376U,	// LBZ
    2281701376U,	// LBZ8
    2348810240U,	// LBZU
    2348810240U,	// LBZU8
    2080374958U,	// LBZX
    2080374958U,	// LBZX8
    3892314112U,	// LD
    2080374952U,	// LDARX
    3892314113U,	// LDU
    2080374826U,	// LDX
    3896508448U,	// LDinto_toc
    3892314112U,	// LDtoc
    3896574112U,	// LDtoc_restore
    3355443200U,	// LFD
    3422552064U,	// LFDU
    2080375982U,	// LFDX
    3221225472U,	// LFS
    3288334336U,	// LFSU
    2080375854U,	// LFSX
    2818572288U,	// LHA
    2818572288U,	// LHA8
    2885681152U,	// LHAU
    2885681152U,	// LHAU8
    2080375470U,	// LHAX
    2080375470U,	// LHAX8
    2080376364U,	// LHBRX
    2684354560U,	// LHZ
    2684354560U,	// LHZ8
    2751463424U,	// LHZU
    2751463424U,	// LHZU8
    2080375342U,	// LHZX
    2080375342U,	// LHZX8
    939524096U,	// LI
    939524096U,	// LI8
    1006632960U,	// LIS
    1006632960U,	// LIS8
    2080374798U,	// LVEBX
    2080374862U,	// LVEHX
    2080374926U,	// LVEWX
    2080374796U,	// LVSL
    2080374860U,	// LVSR
    2080374990U,	// LVX
    2080375502U,	// LVXL
    3892314114U,	// LWA
    2080374824U,	// LWARX
    2080375466U,	// LWAX
    2080375852U,	// LWBRX
    2147483648U,	// LWZ
    2147483648U,	// LWZ8
    2214592512U,	// LWZU
    2214592512U,	// LWZU8
    2080374830U,	// LWZX
    2080374830U,	// LWZX8
    1275068416U,	// MCRF
    2080374822U,	// MFCRpseud
    2080965286U,	// MFCTR
    2080965286U,	// MFCTR8
    4227859598U,	// MFFS
    2080899750U,	// MFLR
    2080899750U,	// MFLR8
    2081423398U,	// MFOCRF
    2080391846U,	// MFVRSAVE
    268436996U,	// MFVSCR
    2080375072U,	// MTCRF
    2080965542U,	// MTCTR
    2080965542U,	// MTCTR8
    4227858572U,	// MTFSB0
    4227858508U,	// MTFSB1
    4227859854U,	// MTFSF
    2080900006U,	// MTLR
    2080900006U,	// MTLR8
    2080392102U,	// MTVRSAVE
    268437060U,	// MTVSCR
    2080374930U,	// MULHD
    2080374802U,	// MULHDU
    2080374934U,	// MULHW
    2080374806U,	// MULHWU
    2080375250U,	// MULLD
    469762048U,	// MULLI
    2080375254U,	// MULLW
    0U,	// MovePCtoLR
    0U,	// MovePCtoLR8
    2080375736U,	// NAND
    2080375736U,	// NAND8
    2080374992U,	// NEG
    2080374992U,	// NEG8
    1610612736U,	// NOP
    2080375032U,	// NOR
    2080375032U,	// NOR8
    2080375672U,	// OR
    2080375672U,	// OR4To8
    2080375672U,	// OR8
    2080375672U,	// OR8To4
    2080375608U,	// ORC
    2080375608U,	// ORC8
    1610612736U,	// ORI
    1610612736U,	// ORI8
    1677721600U,	// ORIS
    1677721600U,	// ORIS8
    2013265920U,	// RLDCL
    2013265920U,	// RLDICL
    2013265924U,	// RLDICR
    2013265932U,	// RLDIMI
    1342177280U,	// RLWIMI
    1409286144U,	// RLWINM
    1409286145U,	// RLWINMo
    1543503872U,	// RLWNM
    0U,	// SELECT_CC_F4
    0U,	// SELECT_CC_F8
    0U,	// SELECT_CC_I4
    0U,	// SELECT_CC_I8
    0U,	// SELECT_CC_VRRC
    2080374838U,	// SLD
    2080374832U,	// SLW
    0U,	// SPILL_CR
    2080376372U,	// SRAD
    2080376436U,	// SRADI
    2080376368U,	// SRAW
    2080376432U,	// SRAWI
    2080375862U,	// SRD
    2080375856U,	// SRW
    2550136832U,	// STB
    2550136832U,	// STB8
    2617245696U,	// STBU
    2550136832U,	// STBU8
    2080375214U,	// STBX
    2080375214U,	// STBX8
    4160749568U,	// STD
    2080375213U,	// STDCX
    4160749569U,	// STDU
    2080375146U,	// STDUX
    2080375082U,	// STDX
    2080375082U,	// STDX_32
    4160749568U,	// STD_32
    3623878656U,	// STFD
    2483027968U,	// STFDU
    2080376238U,	// STFDX
    2080376750U,	// STFIWX
    3489660928U,	// STFS
    2483027968U,	// STFSU
    2080376110U,	// STFSX
    2952790016U,	// STH
    2952790016U,	// STH8
    2080376620U,	// STHBRX
    3019898880U,	// STHU
    3019898880U,	// STHU8
    2080375598U,	// STHX
    2080375598U,	// STHX8
    2080375054U,	// STVEBX
    2080375118U,	// STVEHX
    2080375182U,	// STVEWX
    2080375246U,	// STVX
    2080375758U,	// STVXL
    2415919104U,	// STW
    2415919104U,	// STW8
    2080376108U,	// STWBRX
    2080375085U,	// STWCX
    2483027968U,	// STWU
    2080375150U,	// STWUX
    2080375086U,	// STWX
    2080375086U,	// STWX8
    2080374864U,	// SUBF
    2080374864U,	// SUBF8
    2080374800U,	// SUBFC
    2080374800U,	// SUBFC8
    2080375056U,	// SUBFE
    2080375056U,	// SUBFE8
    536870912U,	// SUBFIC
    536870912U,	// SUBFIC8
    2080375248U,	// SUBFME
    2080375248U,	// SUBFME8
    2080375184U,	// SUBFZE
    2080375184U,	// SUBFZE8
    2080375980U,	// SYNC
    1207959552U,	// TAILB
    1207959552U,	// TAILB8
    1207959552U,	// TAILBA
    1207959552U,	// TAILBA8
    1317012512U,	// TAILBCTR
    1317012512U,	// TAILBCTR8
    0U,	// TCRETURNai
    0U,	// TCRETURNai8
    0U,	// TCRETURNdi
    0U,	// TCRETURNdi8
    0U,	// TCRETURNri
    0U,	// TCRETURNri8
    2145386504U,	// TRAP
    0U,	// UPDATE_VRSAVE
    268435840U,	// VADDCUW
    268435466U,	// VADDFP
    268436224U,	// VADDSBS
    268436288U,	// VADDSHS
    268436352U,	// VADDSWS
    268435456U,	// VADDUBM
    268435968U,	// VADDUBS
    268435520U,	// VADDUHM
    268436032U,	// VADDUHS
    268435584U,	// VADDUWM
    268436096U,	// VADDUWS
    268436484U,	// VAND
    268436548U,	// VANDC
    268436738U,	// VAVGSB
    268436802U,	// VAVGSH
    268436866U,	// VAVGSW
    268436482U,	// VAVGUB
    268436546U,	// VAVGUH
    268436610U,	// VAVGUW
    268436298U,	// VCFSX
    268436234U,	// VCFUX
    268436422U,	// VCMPBFP
    268437446U,	// VCMPBFPo
    268435654U,	// VCMPEQFP
    268436678U,	// VCMPEQFPo
    268435462U,	// VCMPEQUB
    268436486U,	// VCMPEQUBo
    268435526U,	// VCMPEQUH
    268436550U,	// VCMPEQUHo
    268435590U,	// VCMPEQUW
    268436614U,	// VCMPEQUWo
    268435910U,	// VCMPGEFP
    268436934U,	// VCMPGEFPo
    268436166U,	// VCMPGTFP
    268437190U,	// VCMPGTFPo
    268436230U,	// VCMPGTSB
    268437254U,	// VCMPGTSBo
    268436294U,	// VCMPGTSH
    268437318U,	// VCMPGTSHo
    268436358U,	// VCMPGTSW
    268437382U,	// VCMPGTSWo
    268435974U,	// VCMPGTUB
    268436998U,	// VCMPGTUBo
    268436038U,	// VCMPGTUH
    268437062U,	// VCMPGTUHo
    268436102U,	// VCMPGTUW
    268437126U,	// VCMPGTUWo
    268436426U,	// VCTSXS
    268436362U,	// VCTUXS
    268435850U,	// VEXPTEFP
    268435914U,	// VLOGEFP
    268435502U,	// VMADDFP
    268436490U,	// VMAXFP
    268435714U,	// VMAXSB
    268435778U,	// VMAXSH
    268435842U,	// VMAXSW
    268435458U,	// VMAXUB
    268435522U,	// VMAXUH
    268435586U,	// VMAXUW
    268435488U,	// VMHADDSHS
    268435489U,	// VMHRADDSHS
    268436554U,	// VMINFP
    268436226U,	// VMINSB
    268436290U,	// VMINSH
    268436354U,	// VMINSW
    268435970U,	// VMINUB
    268436034U,	// VMINUH
    268436098U,	// VMINUW
    268435490U,	// VMLADDUHM
    268435468U,	// VMRGHB
    268435532U,	// VMRGHH
    268435596U,	// VMRGHW
    268435724U,	// VMRGLB
    268435788U,	// VMRGLH
    268435852U,	// VMRGLW
    268435493U,	// VMSUMMBM
    268435496U,	// VMSUMSHM
    268435497U,	// VMSUMSHS
    268435492U,	// VMSUMUBM
    268435494U,	// VMSUMUHM
    268435495U,	// VMSUMUHS
    268436232U,	// VMULESB
    268436296U,	// VMULESH
    268435976U,	// VMULEUB
    268436040U,	// VMULEUH
    268435720U,	// VMULOSB
    268435784U,	// VMULOSH
    268435464U,	// VMULOUB
    268435528U,	// VMULOUH
    268435503U,	// VNMSUBFP
    268436740U,	// VNOR
    268436612U,	// VOR
    268435499U,	// VPERM
    268436238U,	// VPKPX
    268435854U,	// VPKSHSS
    268435726U,	// VPKSHUS
    268435918U,	// VPKSWSS
    268435790U,	// VPKSWUS
    268435470U,	// VPKUHUM
    268435598U,	// VPKUHUS
    268435534U,	// VPKUWUM
    268435662U,	// VPKUWUS
    268435722U,	// VREFP
    268436170U,	// VRFIM
    268435978U,	// VRFIN
    268436106U,	// VRFIP
    268436042U,	// VRFIZ
    268435460U,	// VRLB
    268435524U,	// VRLH
    268435588U,	// VRLW
    268435786U,	// VRSQRTEFP
    268435498U,	// VSEL
    268435908U,	// VSL
    268435716U,	// VSLB
    268435500U,	// VSLDOI
    268435780U,	// VSLH
    268436492U,	// VSLO
    268435844U,	// VSLW
    268435980U,	// VSPLTB
    268436044U,	// VSPLTH
    268436236U,	// VSPLTISB
    268436300U,	// VSPLTISH
    268436364U,	// VSPLTISW
    268436108U,	// VSPLTW
    268436164U,	// VSR
    268436228U,	// VSRAB
    268436292U,	// VSRAH
    268436356U,	// VSRAW
    268435972U,	// VSRB
    268436036U,	// VSRH
    268436556U,	// VSRO
    268436100U,	// VSRW
    268435530U,	// VSUBCUW
    268435530U,	// VSUBFP
    268437248U,	// VSUBSBS
    268437312U,	// VSUBSHS
    268437376U,	// VSUBSWS
    268436480U,	// VSUBUBM
    268436992U,	// VSUBUBS
    268436544U,	// VSUBUHM
    268437056U,	// VSUBUHS
    268436608U,	// VSUBUWM
    268437120U,	// VSUBUWS
    268437128U,	// VSUM2SWS
    268437128U,	// VSUM4SBS
    268437064U,	// VSUM4SHS
    268437000U,	// VSUM4UBS
    268437384U,	// VSUMSWS
    268436302U,	// VUPKHPX
    268435982U,	// VUPKHSB
    268436046U,	// VUPKHSH
    268436430U,	// VUPKLPX
    268436110U,	// VUPKLSB
    268436174U,	// VUPKLSH
    268436676U,	// VXOR
    268436676U,	// V_SET0
    2080375416U,	// XOR
    2080375416U,	// XOR8
    1744830464U,	// XORI
    1744830464U,	// XORI8
    1811939328U,	// XORIS
    1811939328U,	// XORIS8
    0U
  };
  const unsigned opcode = MI.getOpcode();
  unsigned Value = InstBits[opcode];
  unsigned op = 0;
  op = op;  // suppress warning
  switch (opcode) {
    case PPC::ADJCALLSTACKDOWN:
    case PPC::ADJCALLSTACKUP:
    case PPC::ATOMIC_CMP_SWAP_I16:
    case PPC::ATOMIC_CMP_SWAP_I32:
    case PPC::ATOMIC_CMP_SWAP_I64:
    case PPC::ATOMIC_CMP_SWAP_I8:
    case PPC::ATOMIC_LOAD_ADD_I16:
    case PPC::ATOMIC_LOAD_ADD_I32:
    case PPC::ATOMIC_LOAD_ADD_I64:
    case PPC::ATOMIC_LOAD_ADD_I8:
    case PPC::ATOMIC_LOAD_AND_I16:
    case PPC::ATOMIC_LOAD_AND_I32:
    case PPC::ATOMIC_LOAD_AND_I64:
    case PPC::ATOMIC_LOAD_AND_I8:
    case PPC::ATOMIC_LOAD_NAND_I16:
    case PPC::ATOMIC_LOAD_NAND_I32:
    case PPC::ATOMIC_LOAD_NAND_I64:
    case PPC::ATOMIC_LOAD_NAND_I8:
    case PPC::ATOMIC_LOAD_OR_I16:
    case PPC::ATOMIC_LOAD_OR_I32:
    case PPC::ATOMIC_LOAD_OR_I64:
    case PPC::ATOMIC_LOAD_OR_I8:
    case PPC::ATOMIC_LOAD_SUB_I16:
    case PPC::ATOMIC_LOAD_SUB_I32:
    case PPC::ATOMIC_LOAD_SUB_I64:
    case PPC::ATOMIC_LOAD_SUB_I8:
    case PPC::ATOMIC_LOAD_XOR_I16:
    case PPC::ATOMIC_LOAD_XOR_I32:
    case PPC::ATOMIC_LOAD_XOR_I64:
    case PPC::ATOMIC_LOAD_XOR_I8:
    case PPC::ATOMIC_SWAP_I16:
    case PPC::ATOMIC_SWAP_I32:
    case PPC::ATOMIC_SWAP_I64:
    case PPC::ATOMIC_SWAP_I8:
    case PPC::BCTR:
    case PPC::BCTRL8_Darwin:
    case PPC::BCTRL8_ELF:
    case PPC::BCTRL_Darwin:
    case PPC::BCTRL_SVR4:
    case PPC::DYNALLOC:
    case PPC::DYNALLOC8:
    case PPC::LDtoc_restore:
    case PPC::MovePCtoLR:
    case PPC::MovePCtoLR8:
    case PPC::NOP:
    case PPC::SELECT_CC_F4:
    case PPC::SELECT_CC_F8:
    case PPC::SELECT_CC_I4:
    case PPC::SELECT_CC_I8:
    case PPC::SELECT_CC_VRRC:
    case PPC::SPILL_CR:
    case PPC::SYNC:
    case PPC::TAILBCTR:
    case PPC::TAILBCTR8:
    case PPC::TCRETURNai:
    case PPC::TCRETURNai8:
    case PPC::TCRETURNdi:
    case PPC::TCRETURNdi8:
    case PPC::TCRETURNri:
    case PPC::TCRETURNri8:
    case PPC::TRAP:
    case PPC::UPDATE_VRSAVE: {
      break;
    }
    case PPC::DCBA:
    case PPC::DCBF:
    case PPC::DCBI:
    case PPC::DCBST:
    case PPC::DCBT:
    case PPC::DCBTST:
    case PPC::DCBZ:
    case PPC::DCBZL: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::SRADI: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RS
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: SH
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      Value |= (op & 32U) >> 4;
      break;
    }
    case PPC::CNTLZD:
    case PPC::CNTLZW:
    case PPC::EXTSB:
    case PPC::EXTSB8:
    case PPC::EXTSH:
    case PPC::EXTSH8:
    case PPC::EXTSW:
    case PPC::EXTSW_32:
    case PPC::EXTSW_32_64: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::AND:
    case PPC::AND8:
    case PPC::ANDC:
    case PPC::ANDC8:
    case PPC::EQV:
    case PPC::EQV8:
    case PPC::NAND:
    case PPC::NAND8:
    case PPC::NOR:
    case PPC::NOR8:
    case PPC::OR:
    case PPC::OR4To8:
    case PPC::OR8:
    case PPC::OR8To4:
    case PPC::ORC:
    case PPC::ORC8:
    case PPC::SLD:
    case PPC::SLW:
    case PPC::SRAD:
    case PPC::SRAW:
    case PPC::SRAWI:
    case PPC::SRD:
    case PPC::SRW:
    case PPC::XOR:
    case PPC::XOR8: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::ADDI:
    case PPC::ADDI8:
    case PPC::ADDIC:
    case PPC::ADDIC8:
    case PPC::ADDICo:
    case PPC::ADDIS:
    case PPC::ADDIS8:
    case PPC::LA:
    case PPC::MULLI:
    case PPC::SUBFIC:
    case PPC::SUBFIC8: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: C
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= op & 65535U;
      break;
    }
    case PPC::LI:
    case PPC::LI8:
    case PPC::LIS:
    case PPC::LIS8: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= op & 65535U;
      break;
    }
    case PPC::LBZ:
    case PPC::LBZ8:
    case PPC::LFD:
    case PPC::LFS:
    case PPC::LHA:
    case PPC::LHA8:
    case PPC::LHZ:
    case PPC::LHZ8:
    case PPC::LWZ:
    case PPC::LWZ8:
    case PPC::STB:
    case PPC::STB8:
    case PPC::STFD:
    case PPC::STFS:
    case PPC::STH:
    case PPC::STH8:
    case PPC::STW:
    case PPC::STW8: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: C
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= op & 65535U;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::LBZU:
    case PPC::LBZU8:
    case PPC::LFDU:
    case PPC::LFSU:
    case PPC::LHAU:
    case PPC::LHAU8:
    case PPC::LHZU:
    case PPC::LHZU8:
    case PPC::LWZU:
    case PPC::LWZU8: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: C
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= op & 65535U;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::STBU:
    case PPC::STBU8:
    case PPC::STFDU:
    case PPC::STFSU:
    case PPC::STHU:
    case PPC::STHU8:
    case PPC::STWU: {
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: C
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= op & 65535U;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::ANDISo:
    case PPC::ANDISo8:
    case PPC::ANDIo:
    case PPC::ANDIo8:
    case PPC::ORI:
    case PPC::ORI8:
    case PPC::ORIS:
    case PPC::ORIS8:
    case PPC::XORI:
    case PPC::XORI8:
    case PPC::XORIS:
    case PPC::XORIS8: {
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: C
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= op & 65535U;
      break;
    }
    case PPC::MCRF: {
      // op: BF
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 7U) << 23;
      // op: BFA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 7U) << 18;
      break;
    }
    case PPC::FCMPUD:
    case PPC::FCMPUS: {
      // op: BF
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 7U) << 23;
      // op: FRA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: FRB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::CMPDI:
    case PPC::CMPLDI:
    case PPC::CMPLWI:
    case PPC::CMPWI: {
      // op: BF
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 7U) << 23;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: I
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= op & 65535U;
      break;
    }
    case PPC::CMPD:
    case PPC::CMPLD:
    case PPC::CMPLW:
    case PPC::CMPW: {
      // op: BF
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 7U) << 23;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: RB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::BCC: {
      // op: BIBO
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      Value |= (op & 96U) << 11;
      // op: CR
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 7U) << 18;
      // op: BD
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 16383U) << 2;
      break;
    }
    case PPC::BLR: {
      // op: BIBO
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 4U) << 23;
      Value |= (op & 8U) << 21;
      Value |= (op & 16U) << 19;
      Value |= (op & 32U) << 17;
      Value |= (op & 64U) << 15;
      Value |= (op & 3U) << 16;
      // op: CR
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 1U) << 20;
      Value |= (op & 2U) << 18;
      Value |= (op & 4U) << 16;
      break;
    }
    case PPC::CREQV:
    case PPC::CROR: {
      // op: CRD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: CRA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: CRB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::CRSET: {
      // op: CRD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      Value |= (op & 31U) << 16;
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MTFSF: {
      // op: FM
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 255U) << 17;
      // op: RT
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MTFSB0:
    case PPC::MTFSB1: {
      // op: FM
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::FADD:
    case PPC::FADDS:
    case PPC::FADDrtz:
    case PPC::FDIV:
    case PPC::FDIVS:
    case PPC::FSUB:
    case PPC::FSUBS: {
      // op: FRT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: FRA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: FRB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::FMUL:
    case PPC::FMULS: {
      // op: FRT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: FRA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: FRC
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 6;
      break;
    }
    case PPC::FMADD:
    case PPC::FMADDS:
    case PPC::FMSUB:
    case PPC::FMSUBS:
    case PPC::FNMADD:
    case PPC::FNMADDS:
    case PPC::FNMSUB:
    case PPC::FNMSUBS:
    case PPC::FSELD:
    case PPC::FSELS: {
      // op: FRT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: FRA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: FRC
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 6;
      // op: FRB
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MTCRF: {
      // op: FXM
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 255U) << 12;
      // op: ST
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::B:
    case PPC::BL8_Darwin:
    case PPC::BL8_ELF:
    case PPC::BLA8_Darwin:
    case PPC::BLA8_ELF:
    case PPC::BLA_Darwin:
    case PPC::BLA_SVR4:
    case PPC::BL_Darwin:
    case PPC::BL_SVR4:
    case PPC::TAILB:
    case PPC::TAILB8:
    case PPC::TAILBA:
    case PPC::TAILBA8: {
      // op: LI
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 16777215U) << 2;
      break;
    }
    case PPC::LDinto_toc: {
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::RLWINM:
    case PPC::RLWINMo:
    case PPC::RLWNM: {
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RS
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: RB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      // op: MB
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 6;
      // op: ME
      op = getMachineOpValue(MI, MI.getOperand(4));
      Value |= (op & 31U) << 1;
      break;
    }
    case PPC::RLDCL:
    case PPC::RLDICL:
    case PPC::RLDICR: {
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RS
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: SH
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      Value |= (op & 32U) >> 4;
      // op: MBE
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 6;
      Value |= op & 32U;
      break;
    }
    case PPC::RLWIMI: {
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RS
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 21;
      // op: RB
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 11;
      // op: MB
      op = getMachineOpValue(MI, MI.getOperand(4));
      Value |= (op & 31U) << 6;
      // op: ME
      op = getMachineOpValue(MI, MI.getOperand(5));
      Value |= (op & 31U) << 1;
      break;
    }
    case PPC::RLDIMI: {
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 16;
      // op: RS
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 21;
      // op: SH
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 11;
      Value |= (op & 32U) >> 4;
      // op: MBE
      op = getMachineOpValue(MI, MI.getOperand(4));
      Value |= (op & 31U) << 6;
      Value |= op & 32U;
      break;
    }
    case PPC::MFFS: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::LBZX:
    case PPC::LBZX8:
    case PPC::LDARX:
    case PPC::LDX:
    case PPC::LFDX:
    case PPC::LFSX:
    case PPC::LHAX:
    case PPC::LHAX8:
    case PPC::LHBRX:
    case PPC::LHZX:
    case PPC::LHZX8:
    case PPC::LVEBX:
    case PPC::LVEHX:
    case PPC::LVEWX:
    case PPC::LVSL:
    case PPC::LVSR:
    case PPC::LVX:
    case PPC::LVXL:
    case PPC::LWARX:
    case PPC::LWAX:
    case PPC::LWBRX:
    case PPC::LWZX:
    case PPC::LWZX8:
    case PPC::STBX:
    case PPC::STBX8:
    case PPC::STDCX:
    case PPC::STDUX:
    case PPC::STDX:
    case PPC::STDX_32:
    case PPC::STFDX:
    case PPC::STFIWX:
    case PPC::STFSX:
    case PPC::STHBRX:
    case PPC::STHX:
    case PPC::STHX8:
    case PPC::STVEBX:
    case PPC::STVEHX:
    case PPC::STVEWX:
    case PPC::STVX:
    case PPC::STVXL:
    case PPC::STWBRX:
    case PPC::STWCX:
    case PPC::STWUX:
    case PPC::STWX:
    case PPC::STWX8: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::FABSD:
    case PPC::FABSS:
    case PPC::FCFID:
    case PPC::FCTIDZ:
    case PPC::FCTIWZ:
    case PPC::FMR:
    case PPC::FNABSD:
    case PPC::FNABSS:
    case PPC::FNEGD:
    case PPC::FNEGS:
    case PPC::FRSP:
    case PPC::FSQRT:
    case PPC::FSQRTS: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::LD:
    case PPC::LDtoc:
    case PPC::LWA:
    case PPC::STD:
    case PPC::STD_32: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: DS
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 16383U) << 2;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::LDU: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: DS
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 16383U) << 2;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::STDU: {
      // op: RST
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 21;
      // op: DS
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 16383U) << 2;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::MFCRpseud:
    case PPC::MFCTR:
    case PPC::MFCTR8:
    case PPC::MFLR:
    case PPC::MFLR8:
    case PPC::MFVRSAVE:
    case PPC::MTCTR:
    case PPC::MTCTR8:
    case PPC::MTLR:
    case PPC::MTLR8:
    case PPC::MTVRSAVE: {
      // op: RT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::ADDME:
    case PPC::ADDME8:
    case PPC::ADDZE:
    case PPC::ADDZE8:
    case PPC::NEG:
    case PPC::NEG8:
    case PPC::SUBFME:
    case PPC::SUBFME8:
    case PPC::SUBFZE:
    case PPC::SUBFZE8: {
      // op: RT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::ADD4:
    case PPC::ADD8:
    case PPC::ADDC:
    case PPC::ADDC8:
    case PPC::ADDE:
    case PPC::ADDE8:
    case PPC::DIVD:
    case PPC::DIVDU:
    case PPC::DIVW:
    case PPC::DIVWU:
    case PPC::MULHD:
    case PPC::MULHDU:
    case PPC::MULHW:
    case PPC::MULHWU:
    case PPC::MULLD:
    case PPC::MULLW:
    case PPC::SUBF:
    case PPC::SUBF8:
    case PPC::SUBFC:
    case PPC::SUBFC8:
    case PPC::SUBFE:
    case PPC::SUBFE8: {
      // op: RT
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: RA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: RB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MFOCRF: {
      // op: ST
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: FXM
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 255U) << 12;
      break;
    }
    case PPC::DSS:
    case PPC::DSSALL:
    case PPC::DST:
    case PPC::DST64:
    case PPC::DSTST:
    case PPC::DSTST64:
    case PPC::DSTSTT:
    case PPC::DSTSTT64:
    case PPC::DSTT:
    case PPC::DSTT64: {
      // op: T
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 1U) << 25;
      // op: STRM
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 3U) << 21;
      // op: A
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 16;
      // op: B
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MTVSCR: {
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::MFVSCR: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      break;
    }
    case PPC::VSPLTISB:
    case PPC::VSPLTISH:
    case PPC::VSPLTISW: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: IMM
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      break;
    }
    case PPC::VADDCUW:
    case PPC::VADDFP:
    case PPC::VADDSBS:
    case PPC::VADDSHS:
    case PPC::VADDSWS:
    case PPC::VADDUBM:
    case PPC::VADDUBS:
    case PPC::VADDUHM:
    case PPC::VADDUHS:
    case PPC::VADDUWM:
    case PPC::VADDUWS:
    case PPC::VAND:
    case PPC::VANDC:
    case PPC::VAVGSB:
    case PPC::VAVGSH:
    case PPC::VAVGSW:
    case PPC::VAVGUB:
    case PPC::VAVGUH:
    case PPC::VAVGUW:
    case PPC::VCFSX:
    case PPC::VCFUX:
    case PPC::VCMPBFP:
    case PPC::VCMPBFPo:
    case PPC::VCMPEQFP:
    case PPC::VCMPEQFPo:
    case PPC::VCMPEQUB:
    case PPC::VCMPEQUBo:
    case PPC::VCMPEQUH:
    case PPC::VCMPEQUHo:
    case PPC::VCMPEQUW:
    case PPC::VCMPEQUWo:
    case PPC::VCMPGEFP:
    case PPC::VCMPGEFPo:
    case PPC::VCMPGTFP:
    case PPC::VCMPGTFPo:
    case PPC::VCMPGTSB:
    case PPC::VCMPGTSBo:
    case PPC::VCMPGTSH:
    case PPC::VCMPGTSHo:
    case PPC::VCMPGTSW:
    case PPC::VCMPGTSWo:
    case PPC::VCMPGTUB:
    case PPC::VCMPGTUBo:
    case PPC::VCMPGTUH:
    case PPC::VCMPGTUHo:
    case PPC::VCMPGTUW:
    case PPC::VCMPGTUWo:
    case PPC::VCTSXS:
    case PPC::VCTUXS:
    case PPC::VMAXFP:
    case PPC::VMAXSB:
    case PPC::VMAXSH:
    case PPC::VMAXSW:
    case PPC::VMAXUB:
    case PPC::VMAXUH:
    case PPC::VMAXUW:
    case PPC::VMINFP:
    case PPC::VMINSB:
    case PPC::VMINSH:
    case PPC::VMINSW:
    case PPC::VMINUB:
    case PPC::VMINUH:
    case PPC::VMINUW:
    case PPC::VMRGHB:
    case PPC::VMRGHH:
    case PPC::VMRGHW:
    case PPC::VMRGLB:
    case PPC::VMRGLH:
    case PPC::VMRGLW:
    case PPC::VMULESB:
    case PPC::VMULESH:
    case PPC::VMULEUB:
    case PPC::VMULEUH:
    case PPC::VMULOSB:
    case PPC::VMULOSH:
    case PPC::VMULOUB:
    case PPC::VMULOUH:
    case PPC::VNOR:
    case PPC::VOR:
    case PPC::VPKPX:
    case PPC::VPKSHSS:
    case PPC::VPKSHUS:
    case PPC::VPKSWSS:
    case PPC::VPKSWUS:
    case PPC::VPKUHUM:
    case PPC::VPKUHUS:
    case PPC::VPKUWUM:
    case PPC::VPKUWUS:
    case PPC::VRLB:
    case PPC::VRLH:
    case PPC::VRLW:
    case PPC::VSL:
    case PPC::VSLB:
    case PPC::VSLH:
    case PPC::VSLO:
    case PPC::VSLW:
    case PPC::VSPLTB:
    case PPC::VSPLTH:
    case PPC::VSPLTW:
    case PPC::VSR:
    case PPC::VSRAB:
    case PPC::VSRAH:
    case PPC::VSRAW:
    case PPC::VSRB:
    case PPC::VSRH:
    case PPC::VSRO:
    case PPC::VSRW:
    case PPC::VSUBCUW:
    case PPC::VSUBFP:
    case PPC::VSUBSBS:
    case PPC::VSUBSHS:
    case PPC::VSUBSWS:
    case PPC::VSUBUBM:
    case PPC::VSUBUBS:
    case PPC::VSUBUHM:
    case PPC::VSUBUHS:
    case PPC::VSUBUWM:
    case PPC::VSUBUWS:
    case PPC::VSUM2SWS:
    case PPC::VSUM4SBS:
    case PPC::VSUM4SHS:
    case PPC::VSUM4UBS:
    case PPC::VSUMSWS:
    case PPC::VXOR: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: VA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::VSLDOI: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: VA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      // op: SH
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 15U) << 6;
      break;
    }
    case PPC::VMHADDSHS:
    case PPC::VMHRADDSHS:
    case PPC::VMLADDUHM:
    case PPC::VMSUMMBM:
    case PPC::VMSUMSHM:
    case PPC::VMSUMSHS:
    case PPC::VMSUMUBM:
    case PPC::VMSUMUHM:
    case PPC::VMSUMUHS:
    case PPC::VPERM:
    case PPC::VSEL: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: VA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 11;
      // op: VC
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 6;
      break;
    }
    case PPC::VMADDFP:
    case PPC::VNMSUBFP: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: VA
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 16;
      // op: VC
      op = getMachineOpValue(MI, MI.getOperand(2));
      Value |= (op & 31U) << 6;
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(3));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::VEXPTEFP:
    case PPC::VLOGEFP:
    case PPC::VREFP:
    case PPC::VRFIM:
    case PPC::VRFIN:
    case PPC::VRFIP:
    case PPC::VRFIZ:
    case PPC::VRSQRTEFP:
    case PPC::VUPKHPX:
    case PPC::VUPKHSB:
    case PPC::VUPKHSH:
    case PPC::VUPKLPX:
    case PPC::VUPKLSB:
    case PPC::VUPKLSH: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      // op: VB
      op = getMachineOpValue(MI, MI.getOperand(1));
      Value |= (op & 31U) << 11;
      break;
    }
    case PPC::V_SET0: {
      // op: VD
      op = getMachineOpValue(MI, MI.getOperand(0));
      Value |= (op & 31U) << 21;
      Value |= (op & 31U) << 16;
      Value |= (op & 31U) << 11;
      break;
    }
  default:
    std::string msg;
    raw_string_ostream Msg(msg);
    Msg << "Not supported instr: " << MI;
    report_fatal_error(Msg.str());
  }
  return Value;
}