/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* DAG Instruction Selector for the ARM target                                *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

// *** NOTE: This file is #included into the middle of the target
// *** instruction selector class.  These functions are really methods.

// If GET_DAGISEL_DECL is #defined with any value, only function
// declarations will be included when this file is included.
// If GET_DAGISEL_BODY is #defined, its value should be the name of
// the instruction selector class. Function bodies will be emitted
// and each function's name will be qualified with the name of the
// class.
//
// When neither of the GET_DAGISEL* macros is defined, the functions
// are emitted inline.

#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
#endif

#ifdef GET_DAGISEL_BODY
#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
#define LOCAL_DAGISEL_STRINGIZE_(X) #X
static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
   "GET_DAGISEL_BODY is empty: it should be defined with the class name");
#undef LOCAL_DAGISEL_STRINGIZE_
#undef LOCAL_DAGISEL_STRINGIZE
#endif

#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
#define DAGISEL_INLINE 1
#else
#define DAGISEL_INLINE 0
#endif

#if !DAGISEL_INLINE
#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
#else
#define DAGISEL_CLASS_COLONCOLON
#endif

#ifdef GET_DAGISEL_DECL
void SelectCode(SDNode *N);
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
{
  // Some target values are emitted as 2 bytes, TARGET_VAL handles
  // this.
  #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
  static const unsigned char MatcherTable[] = {
/*     0*/  OPC_SwitchOpcode /*180 cases */, 105|128,45/*5865*/, TARGET_VAL(ISD::OR),// ->5870
/*     5*/    OPC_Scope, 101|128,5/*741*/, /*->749*/ // 18 children in Scope
/*     8*/      OPC_MoveChild0,
/*     9*/      OPC_Scope, 74, /*->85*/ // 9 children in Scope
/*    11*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*    14*/        OPC_MoveChild0,
/*    15*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*    18*/        OPC_RecordChild0, // #0 = $Rm
/*    19*/        OPC_CheckChild1Integer, 24, 
/*    21*/        OPC_CheckChild1Type, MVT::i32,
/*    23*/        OPC_MoveParent,
/*    24*/        OPC_CheckChild1Integer, 16, 
/*    26*/        OPC_CheckChild1Type, MVT::i32,
/*    28*/        OPC_MoveParent,
/*    29*/        OPC_MoveChild1,
/*    30*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*    33*/        OPC_MoveChild0,
/*    34*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*    37*/        OPC_CheckChild0Same, 0,
/*    39*/        OPC_CheckChild1Integer, 8, 
/*    41*/        OPC_CheckChild1Type, MVT::i32,
/*    43*/        OPC_MoveParent,
/*    44*/        OPC_MoveParent,
/*    45*/        OPC_CheckType, MVT::i32,
/*    47*/        OPC_Scope, 17, /*->66*/ // 2 children in Scope
/*    49*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*    51*/          OPC_EmitInteger, MVT::i32, 14, 
/*    54*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*    57*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::REVSH), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) - Complexity = 35
                    // Dst: (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/*    66*/        /*Scope*/ 17, /*->84*/
/*    67*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*    69*/          OPC_EmitInteger, MVT::i32, 14, 
/*    72*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*    75*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2REVSH), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) - Complexity = 35
                    // Dst: (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/*    84*/        0, /*End of Scope*/
/*    85*/      /*Scope*/ 74, /*->160*/
/*    86*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*    89*/        OPC_MoveChild0,
/*    90*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*    93*/        OPC_RecordChild0, // #0 = $Rm
/*    94*/        OPC_CheckChild1Integer, 8, 
/*    96*/        OPC_CheckChild1Type, MVT::i32,
/*    98*/        OPC_MoveParent,
/*    99*/        OPC_MoveParent,
/*   100*/        OPC_MoveChild1,
/*   101*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*   104*/        OPC_MoveChild0,
/*   105*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   108*/        OPC_CheckChild0Same, 0,
/*   110*/        OPC_CheckChild1Integer, 24, 
/*   112*/        OPC_CheckChild1Type, MVT::i32,
/*   114*/        OPC_MoveParent,
/*   115*/        OPC_CheckChild1Integer, 16, 
/*   117*/        OPC_CheckChild1Type, MVT::i32,
/*   119*/        OPC_MoveParent,
/*   120*/        OPC_CheckType, MVT::i32,
/*   122*/        OPC_Scope, 17, /*->141*/ // 2 children in Scope
/*   124*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   126*/          OPC_EmitInteger, MVT::i32, 14, 
/*   129*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   132*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::REVSH), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) - Complexity = 35
                    // Dst: (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/*   141*/        /*Scope*/ 17, /*->159*/
/*   142*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*   144*/          OPC_EmitInteger, MVT::i32, 14, 
/*   147*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   150*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2REVSH), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) - Complexity = 35
                    // Dst: (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/*   159*/        0, /*End of Scope*/
/*   160*/      /*Scope*/ 53, /*->214*/
/*   161*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   165*/        OPC_RecordChild0, // #0 = $Rn
/*   166*/        OPC_MoveParent,
/*   167*/        OPC_MoveChild1,
/*   168*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   174*/        OPC_MoveChild0,
/*   175*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   178*/        OPC_RecordChild0, // #1 = $Rm
/*   179*/        OPC_RecordChild1, // #2 = $sh
/*   180*/        OPC_MoveChild1,
/*   181*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   184*/        OPC_CheckPredicate, 0, // Predicate_pkh_lsl_amt
/*   186*/        OPC_CheckType, MVT::i32,
/*   188*/        OPC_MoveParent,
/*   189*/        OPC_MoveParent,
/*   190*/        OPC_MoveParent,
/*   191*/        OPC_CheckType, MVT::i32,
/*   193*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   195*/        OPC_EmitConvertToTarget, 2,
/*   197*/        OPC_EmitInteger, MVT::i32, 14, 
/*   200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) - Complexity = 26
                  // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   214*/      /*Scope*/ 94, /*->309*/
/*   215*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   221*/        OPC_RecordChild0, // #0 = $Rn
/*   222*/        OPC_MoveParent,
/*   223*/        OPC_MoveChild1,
/*   224*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   228*/        OPC_MoveChild0,
/*   229*/        OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::SRA),// ->269
/*   233*/          OPC_RecordChild0, // #1 = $Rm
/*   234*/          OPC_RecordChild1, // #2 = $sh
/*   235*/          OPC_MoveChild1,
/*   236*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   239*/          OPC_CheckPredicate, 1, // Predicate_pkh_asr_amt
/*   241*/          OPC_CheckType, MVT::i32,
/*   243*/          OPC_MoveParent,
/*   244*/          OPC_MoveParent,
/*   245*/          OPC_MoveParent,
/*   246*/          OPC_CheckType, MVT::i32,
/*   248*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   250*/          OPC_EmitConvertToTarget, 2,
/*   252*/          OPC_EmitInteger, MVT::i32, 14, 
/*   255*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   258*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) - Complexity = 26
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   269*/        /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRL),// ->308
/*   272*/          OPC_RecordChild0, // #1 = $src2
/*   273*/          OPC_RecordChild1, // #2 = $sh
/*   274*/          OPC_MoveChild1,
/*   275*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   278*/          OPC_CheckPredicate, 2, // Predicate_imm1_15
/*   280*/          OPC_CheckType, MVT::i32,
/*   282*/          OPC_MoveParent,
/*   283*/          OPC_MoveParent,
/*   284*/          OPC_MoveParent,
/*   285*/          OPC_CheckType, MVT::i32,
/*   287*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   289*/          OPC_EmitConvertToTarget, 2,
/*   291*/          OPC_EmitInteger, MVT::i32, 14, 
/*   294*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   297*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) - Complexity = 26
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
/*   308*/        0, // EndSwitchOpcode
/*   309*/      /*Scope*/ 53, /*->363*/
/*   310*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   314*/        OPC_RecordChild0, // #0 = $Rn
/*   315*/        OPC_MoveParent,
/*   316*/        OPC_MoveChild1,
/*   317*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   323*/        OPC_MoveChild0,
/*   324*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   327*/        OPC_RecordChild0, // #1 = $Rm
/*   328*/        OPC_RecordChild1, // #2 = $sh
/*   329*/        OPC_MoveChild1,
/*   330*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   333*/        OPC_CheckPredicate, 0, // Predicate_pkh_lsl_amt
/*   335*/        OPC_CheckType, MVT::i32,
/*   337*/        OPC_MoveParent,
/*   338*/        OPC_MoveParent,
/*   339*/        OPC_MoveParent,
/*   340*/        OPC_CheckType, MVT::i32,
/*   342*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   344*/        OPC_EmitConvertToTarget, 2,
/*   346*/        OPC_EmitInteger, MVT::i32, 14, 
/*   349*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   352*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) - Complexity = 26
                  // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   363*/      /*Scope*/ 17|128,1/*145*/, /*->510*/
/*   365*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   371*/        OPC_Scope, 88, /*->461*/ // 2 children in Scope
/*   373*/          OPC_RecordChild0, // #0 = $Rn
/*   374*/          OPC_MoveParent,
/*   375*/          OPC_MoveChild1,
/*   376*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   380*/          OPC_MoveChild0,
/*   381*/          OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::SRA),// ->421
/*   385*/            OPC_RecordChild0, // #1 = $Rm
/*   386*/            OPC_RecordChild1, // #2 = $sh
/*   387*/            OPC_MoveChild1,
/*   388*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   391*/            OPC_CheckPredicate, 1, // Predicate_pkh_asr_amt
/*   393*/            OPC_CheckType, MVT::i32,
/*   395*/            OPC_MoveParent,
/*   396*/            OPC_MoveParent,
/*   397*/            OPC_MoveParent,
/*   398*/            OPC_CheckType, MVT::i32,
/*   400*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   402*/            OPC_EmitConvertToTarget, 2,
/*   404*/            OPC_EmitInteger, MVT::i32, 14, 
/*   407*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   410*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) - Complexity = 26
                      // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   421*/          /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRL),// ->460
/*   424*/            OPC_RecordChild0, // #1 = $src2
/*   425*/            OPC_RecordChild1, // #2 = $sh
/*   426*/            OPC_MoveChild1,
/*   427*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   430*/            OPC_CheckPredicate, 2, // Predicate_imm1_15
/*   432*/            OPC_CheckType, MVT::i32,
/*   434*/            OPC_MoveParent,
/*   435*/            OPC_MoveParent,
/*   436*/            OPC_MoveParent,
/*   437*/            OPC_CheckType, MVT::i32,
/*   439*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   441*/            OPC_EmitConvertToTarget, 2,
/*   443*/            OPC_EmitInteger, MVT::i32, 14, 
/*   446*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   449*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) - Complexity = 26
                      // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
/*   460*/          0, // EndSwitchOpcode
/*   461*/        /*Scope*/ 47, /*->509*/
/*   462*/          OPC_MoveChild0,
/*   463*/          OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   466*/          OPC_RecordChild0, // #0 = $Rm
/*   467*/          OPC_RecordChild1, // #1 = $sh
/*   468*/          OPC_MoveChild1,
/*   469*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   472*/          OPC_CheckPredicate, 0, // Predicate_pkh_lsl_amt
/*   474*/          OPC_CheckType, MVT::i32,
/*   476*/          OPC_MoveParent,
/*   477*/          OPC_MoveParent,
/*   478*/          OPC_MoveParent,
/*   479*/          OPC_MoveChild1,
/*   480*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   484*/          OPC_RecordChild0, // #2 = $Rn
/*   485*/          OPC_MoveParent,
/*   486*/          OPC_CheckType, MVT::i32,
/*   488*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   490*/          OPC_EmitConvertToTarget, 1,
/*   492*/          OPC_EmitInteger, MVT::i32, 14, 
/*   495*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   498*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) - Complexity = 26
                    // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   509*/        0, /*End of Scope*/
/*   510*/      /*Scope*/ 53, /*->564*/
/*   511*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   515*/        OPC_MoveChild0,
/*   516*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*   519*/        OPC_RecordChild0, // #0 = $Rm
/*   520*/        OPC_RecordChild1, // #1 = $sh
/*   521*/        OPC_MoveChild1,
/*   522*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   525*/        OPC_CheckPredicate, 1, // Predicate_pkh_asr_amt
/*   527*/        OPC_CheckType, MVT::i32,
/*   529*/        OPC_MoveParent,
/*   530*/        OPC_MoveParent,
/*   531*/        OPC_MoveParent,
/*   532*/        OPC_MoveChild1,
/*   533*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   539*/        OPC_RecordChild0, // #2 = $Rn
/*   540*/        OPC_MoveParent,
/*   541*/        OPC_CheckType, MVT::i32,
/*   543*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   545*/        OPC_EmitConvertToTarget, 1,
/*   547*/        OPC_EmitInteger, MVT::i32, 14, 
/*   550*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   553*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) - Complexity = 26
                  // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   564*/      /*Scope*/ 53, /*->618*/
/*   565*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   571*/        OPC_MoveChild0,
/*   572*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   575*/        OPC_RecordChild0, // #0 = $Rm
/*   576*/        OPC_RecordChild1, // #1 = $sh
/*   577*/        OPC_MoveChild1,
/*   578*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   581*/        OPC_CheckPredicate, 0, // Predicate_pkh_lsl_amt
/*   583*/        OPC_CheckType, MVT::i32,
/*   585*/        OPC_MoveParent,
/*   586*/        OPC_MoveParent,
/*   587*/        OPC_MoveParent,
/*   588*/        OPC_MoveChild1,
/*   589*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   593*/        OPC_RecordChild0, // #2 = $Rn
/*   594*/        OPC_MoveParent,
/*   595*/        OPC_CheckType, MVT::i32,
/*   597*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   599*/        OPC_EmitConvertToTarget, 1,
/*   601*/        OPC_EmitInteger, MVT::i32, 14, 
/*   604*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   607*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) - Complexity = 26
                  // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   618*/      /*Scope*/ 0|128,1/*128*/, /*->748*/
/*   620*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   624*/        OPC_MoveChild0,
/*   625*/        OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::SRA),// ->674
/*   629*/          OPC_RecordChild0, // #0 = $Rm
/*   630*/          OPC_RecordChild1, // #1 = $sh
/*   631*/          OPC_MoveChild1,
/*   632*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   635*/          OPC_CheckPredicate, 1, // Predicate_pkh_asr_amt
/*   637*/          OPC_CheckType, MVT::i32,
/*   639*/          OPC_MoveParent,
/*   640*/          OPC_MoveParent,
/*   641*/          OPC_MoveParent,
/*   642*/          OPC_MoveChild1,
/*   643*/          OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   649*/          OPC_RecordChild0, // #2 = $Rn
/*   650*/          OPC_MoveParent,
/*   651*/          OPC_CheckType, MVT::i32,
/*   653*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   655*/          OPC_EmitConvertToTarget, 1,
/*   657*/          OPC_EmitInteger, MVT::i32, 14, 
/*   660*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   663*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) - Complexity = 26
                    // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
/*   674*/        /*SwitchOpcode*/ 70, TARGET_VAL(ISD::SRL),// ->747
/*   677*/          OPC_RecordChild0, // #0 = $src2
/*   678*/          OPC_RecordChild1, // #1 = $sh
/*   679*/          OPC_MoveChild1,
/*   680*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   683*/          OPC_CheckPredicate, 2, // Predicate_imm1_15
/*   685*/          OPC_CheckType, MVT::i32,
/*   687*/          OPC_MoveParent,
/*   688*/          OPC_MoveParent,
/*   689*/          OPC_MoveParent,
/*   690*/          OPC_MoveChild1,
/*   691*/          OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   697*/          OPC_RecordChild0, // #2 = $src1
/*   698*/          OPC_MoveParent,
/*   699*/          OPC_CheckType, MVT::i32,
/*   701*/          OPC_Scope, 21, /*->724*/ // 2 children in Scope
/*   703*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   705*/            OPC_EmitConvertToTarget, 1,
/*   707*/            OPC_EmitInteger, MVT::i32, 14, 
/*   710*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   713*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 26
                      // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
/*   724*/          /*Scope*/ 21, /*->746*/
/*   725*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   727*/            OPC_EmitConvertToTarget, 1,
/*   729*/            OPC_EmitInteger, MVT::i32, 14, 
/*   732*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   735*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 26
                      // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
/*   746*/          0, /*End of Scope*/
/*   747*/        0, // EndSwitchOpcode
/*   748*/      0, /*End of Scope*/
/*   749*/    /*Scope*/ 46, /*->796*/
/*   750*/      OPC_RecordChild0, // #0 = $Rn
/*   751*/      OPC_MoveChild1,
/*   752*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*   755*/      OPC_RecordChild0, // #1 = $ShiftedRm
/*   756*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*   767*/      OPC_MoveParent,
/*   768*/      OPC_CheckType, MVT::i32,
/*   770*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*   772*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*   775*/      OPC_EmitInteger, MVT::i32, 14, 
/*   778*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   781*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   784*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNrs), 0,
                    MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, -1:{ *:[i32] })) - Complexity = 20
                // Dst: (t2ORNrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*   796*/    /*Scope*/ 66|128,5/*706*/, /*->1504*/
/*   798*/      OPC_MoveChild0,
/*   799*/      OPC_Scope, 45, /*->846*/ // 11 children in Scope
/*   801*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*   804*/        OPC_RecordChild0, // #0 = $ShiftedRm
/*   805*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*   816*/        OPC_MoveParent,
/*   817*/        OPC_RecordChild1, // #1 = $Rn
/*   818*/        OPC_CheckType, MVT::i32,
/*   820*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*   822*/        OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*   825*/        OPC_EmitInteger, MVT::i32, 14, 
/*   828*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   831*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   834*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNrs), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 20
                  // Dst: (t2ORNrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*   846*/      /*Scope*/ 65, /*->912*/
/*   847*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   851*/        OPC_RecordChild0, // #0 = $Rn
/*   852*/        OPC_MoveParent,
/*   853*/        OPC_MoveChild1,
/*   854*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   860*/        OPC_RecordChild0, // #1 = $Rm
/*   861*/        OPC_MoveParent,
/*   862*/        OPC_CheckType, MVT::i32,
/*   864*/        OPC_Scope, 22, /*->888*/ // 2 children in Scope
/*   866*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   868*/          OPC_EmitInteger, MVT::i32, 0, 
/*   871*/          OPC_EmitInteger, MVT::i32, 14, 
/*   874*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   877*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] })) - Complexity = 19
                    // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*   888*/        /*Scope*/ 22, /*->911*/
/*   889*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   891*/          OPC_EmitInteger, MVT::i32, 0, 
/*   894*/          OPC_EmitInteger, MVT::i32, 14, 
/*   897*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   900*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] })) - Complexity = 19
                    // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
/*   911*/        0, /*End of Scope*/
/*   912*/      /*Scope*/ 65, /*->978*/
/*   913*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*   919*/        OPC_RecordChild0, // #0 = $Rm
/*   920*/        OPC_MoveParent,
/*   921*/        OPC_MoveChild1,
/*   922*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   926*/        OPC_RecordChild0, // #1 = $Rn
/*   927*/        OPC_MoveParent,
/*   928*/        OPC_CheckType, MVT::i32,
/*   930*/        OPC_Scope, 22, /*->954*/ // 2 children in Scope
/*   932*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*   934*/          OPC_EmitInteger, MVT::i32, 0, 
/*   937*/          OPC_EmitInteger, MVT::i32, 14, 
/*   940*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   943*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) - Complexity = 19
                    // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*   954*/        /*Scope*/ 22, /*->977*/
/*   955*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*   957*/          OPC_EmitInteger, MVT::i32, 0, 
/*   960*/          OPC_EmitInteger, MVT::i32, 14, 
/*   963*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*   966*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) - Complexity = 19
                    // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
/*   977*/        0, /*End of Scope*/
/*   978*/      /*Scope*/ 45, /*->1024*/
/*   979*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*   983*/        OPC_RecordChild0, // #0 = $Rn
/*   984*/        OPC_MoveParent,
/*   985*/        OPC_MoveChild1,
/*   986*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*   989*/        OPC_RecordChild0, // #1 = $Rm
/*   990*/        OPC_RecordChild1, // #2 = $sh
/*   991*/        OPC_MoveChild1,
/*   992*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   995*/        OPC_CheckPredicate, 3, // Predicate_imm16_31
/*   997*/        OPC_CheckType, MVT::i32,
/*   999*/        OPC_MoveParent,
/*  1000*/        OPC_MoveParent,
/*  1001*/        OPC_CheckType, MVT::i32,
/*  1003*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1005*/        OPC_EmitConvertToTarget, 2,
/*  1007*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1010*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1013*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) - Complexity = 18
                  // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1024*/      /*Scope*/ 87, /*->1112*/
/*  1025*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*  1031*/        OPC_RecordChild0, // #0 = $src1
/*  1032*/        OPC_MoveParent,
/*  1033*/        OPC_MoveChild1,
/*  1034*/        OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::SRL),// ->1073
/*  1038*/          OPC_RecordChild0, // #1 = $src2
/*  1039*/          OPC_RecordChild1, // #2 = $sh
/*  1040*/          OPC_MoveChild1,
/*  1041*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1044*/          OPC_CheckPredicate, 4, // Predicate_imm16
/*  1046*/          OPC_CheckType, MVT::i32,
/*  1048*/          OPC_MoveParent,
/*  1049*/          OPC_MoveParent,
/*  1050*/          OPC_CheckType, MVT::i32,
/*  1052*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1054*/          OPC_EmitConvertToTarget, 2,
/*  1056*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1059*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1062*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) - Complexity = 18
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
/*  1073*/        /*SwitchOpcode*/ 35, TARGET_VAL(ISD::SRA),// ->1111
/*  1076*/          OPC_RecordChild0, // #1 = $src2
/*  1077*/          OPC_RecordChild1, // #2 = $sh
/*  1078*/          OPC_MoveChild1,
/*  1079*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1082*/          OPC_CheckPredicate, 3, // Predicate_imm16_31
/*  1084*/          OPC_CheckType, MVT::i32,
/*  1086*/          OPC_MoveParent,
/*  1087*/          OPC_MoveParent,
/*  1088*/          OPC_CheckType, MVT::i32,
/*  1090*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1092*/          OPC_EmitConvertToTarget, 2,
/*  1094*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1097*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1100*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) - Complexity = 18
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1111*/        0, // EndSwitchOpcode
/*  1112*/      /*Scope*/ 45, /*->1158*/
/*  1113*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  1117*/        OPC_RecordChild0, // #0 = $src1
/*  1118*/        OPC_MoveParent,
/*  1119*/        OPC_MoveChild1,
/*  1120*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  1123*/        OPC_RecordChild0, // #1 = $src2
/*  1124*/        OPC_RecordChild1, // #2 = $sh
/*  1125*/        OPC_MoveChild1,
/*  1126*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1129*/        OPC_CheckPredicate, 3, // Predicate_imm16_31
/*  1131*/        OPC_CheckType, MVT::i32,
/*  1133*/        OPC_MoveParent,
/*  1134*/        OPC_MoveParent,
/*  1135*/        OPC_CheckType, MVT::i32,
/*  1137*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1139*/        OPC_EmitConvertToTarget, 2,
/*  1141*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1144*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1147*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) - Complexity = 18
                  // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1158*/      /*Scope*/ 87, /*->1246*/
/*  1159*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*  1165*/        OPC_RecordChild0, // #0 = $src1
/*  1166*/        OPC_MoveParent,
/*  1167*/        OPC_MoveChild1,
/*  1168*/        OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::SRL),// ->1207
/*  1172*/          OPC_RecordChild0, // #1 = $src2
/*  1173*/          OPC_RecordChild1, // #2 = $sh
/*  1174*/          OPC_MoveChild1,
/*  1175*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1178*/          OPC_CheckPredicate, 4, // Predicate_imm16
/*  1180*/          OPC_CheckType, MVT::i32,
/*  1182*/          OPC_MoveParent,
/*  1183*/          OPC_MoveParent,
/*  1184*/          OPC_CheckType, MVT::i32,
/*  1186*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1188*/          OPC_EmitConvertToTarget, 2,
/*  1190*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1193*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1196*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) - Complexity = 18
                    // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
/*  1207*/        /*SwitchOpcode*/ 35, TARGET_VAL(ISD::SRA),// ->1245
/*  1210*/          OPC_RecordChild0, // #1 = $src2
/*  1211*/          OPC_RecordChild1, // #2 = $sh
/*  1212*/          OPC_MoveChild1,
/*  1213*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1216*/          OPC_CheckPredicate, 3, // Predicate_imm16_31
/*  1218*/          OPC_CheckType, MVT::i32,
/*  1220*/          OPC_MoveParent,
/*  1221*/          OPC_MoveParent,
/*  1222*/          OPC_CheckType, MVT::i32,
/*  1224*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1226*/          OPC_EmitConvertToTarget, 2,
/*  1228*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1231*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1234*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) - Complexity = 18
                    // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1245*/        0, // EndSwitchOpcode
/*  1246*/      /*Scope*/ 70, /*->1317*/
/*  1247*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  1250*/        OPC_RecordChild0, // #0 = $Rm
/*  1251*/        OPC_RecordChild1, // #1 = $sh
/*  1252*/        OPC_MoveChild1,
/*  1253*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1256*/        OPC_CheckPredicate, 3, // Predicate_imm16_31
/*  1258*/        OPC_CheckType, MVT::i32,
/*  1260*/        OPC_MoveParent,
/*  1261*/        OPC_MoveParent,
/*  1262*/        OPC_MoveChild1,
/*  1263*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  1267*/        OPC_RecordChild0, // #2 = $Rn
/*  1268*/        OPC_MoveParent,
/*  1269*/        OPC_CheckType, MVT::i32,
/*  1271*/        OPC_Scope, 21, /*->1294*/ // 2 children in Scope
/*  1273*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1275*/          OPC_EmitConvertToTarget, 1,
/*  1277*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1280*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1283*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) - Complexity = 18
                    // Dst: (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1294*/        /*Scope*/ 21, /*->1316*/
/*  1295*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1297*/          OPC_EmitConvertToTarget, 1,
/*  1299*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1302*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1305*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHBT), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) - Complexity = 18
                    // Dst: (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1316*/        0, /*End of Scope*/
/*  1317*/      /*Scope*/ 72, /*->1390*/
/*  1318*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  1321*/        OPC_RecordChild0, // #0 = $src2
/*  1322*/        OPC_RecordChild1, // #1 = $sh
/*  1323*/        OPC_MoveChild1,
/*  1324*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1327*/        OPC_CheckPredicate, 4, // Predicate_imm16
/*  1329*/        OPC_CheckType, MVT::i32,
/*  1331*/        OPC_MoveParent,
/*  1332*/        OPC_MoveParent,
/*  1333*/        OPC_MoveChild1,
/*  1334*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*  1340*/        OPC_RecordChild0, // #2 = $src1
/*  1341*/        OPC_MoveParent,
/*  1342*/        OPC_CheckType, MVT::i32,
/*  1344*/        OPC_Scope, 21, /*->1367*/ // 2 children in Scope
/*  1346*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1348*/          OPC_EmitConvertToTarget, 1,
/*  1350*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1353*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1356*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 18
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
/*  1367*/        /*Scope*/ 21, /*->1389*/
/*  1368*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1370*/          OPC_EmitConvertToTarget, 1,
/*  1372*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1375*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1378*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 18
                    // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
/*  1389*/        0, /*End of Scope*/
/*  1390*/      /*Scope*/ 72, /*->1463*/
/*  1391*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  1394*/        OPC_RecordChild0, // #0 = $src2
/*  1395*/        OPC_RecordChild1, // #1 = $sh
/*  1396*/        OPC_MoveChild1,
/*  1397*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1400*/        OPC_CheckPredicate, 3, // Predicate_imm16_31
/*  1402*/        OPC_CheckType, MVT::i32,
/*  1404*/        OPC_MoveParent,
/*  1405*/        OPC_MoveParent,
/*  1406*/        OPC_MoveChild1,
/*  1407*/        OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*  1413*/        OPC_RecordChild0, // #2 = $src1
/*  1414*/        OPC_MoveParent,
/*  1415*/        OPC_CheckType, MVT::i32,
/*  1417*/        OPC_Scope, 21, /*->1440*/ // 2 children in Scope
/*  1419*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  1421*/          OPC_EmitConvertToTarget, 1,
/*  1423*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1426*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1429*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 18
                    // Dst: (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1440*/        /*Scope*/ 21, /*->1462*/
/*  1441*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  1443*/          OPC_EmitConvertToTarget, 1,
/*  1445*/          OPC_EmitInteger, MVT::i32, 14, 
/*  1448*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1451*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2PKHTB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) - Complexity = 18
                    // Dst: (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
/*  1462*/        0, /*End of Scope*/
/*  1463*/      /*Scope*/ 39, /*->1503*/
/*  1464*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  1468*/        OPC_RecordChild0, // #0 = $src
/*  1469*/        OPC_MoveParent,
/*  1470*/        OPC_RecordChild1, // #1 = $imm
/*  1471*/        OPC_MoveChild1,
/*  1472*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1475*/        OPC_CheckPredicate, 5, // Predicate_lo16AllZero
/*  1477*/        OPC_MoveParent,
/*  1478*/        OPC_CheckType, MVT::i32,
/*  1480*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*  1482*/        OPC_EmitConvertToTarget, 1,
/*  1484*/        OPC_EmitNodeXForm, 0, 2, // hi16
/*  1487*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1490*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1493*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVTi16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$src, 65535:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_lo16AllZero>><<X:hi16>>:$imm) - Complexity = 15
                  // Dst: (MOVTi16:{ *:[i32] } GPR:{ *:[i32] }:$src, (hi16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/*  1503*/      0, /*End of Scope*/
/*  1504*/    /*Scope*/ 31, /*->1536*/
/*  1505*/      OPC_RecordChild0, // #0 = $Rn
/*  1506*/      OPC_RecordChild1, // #1 = $shift
/*  1507*/      OPC_CheckType, MVT::i32,
/*  1509*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  1511*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/*  1514*/      OPC_EmitInteger, MVT::i32, 14, 
/*  1517*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1520*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1523*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRrsr), 0,
                    MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                // Dst: (ORRrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/*  1536*/    /*Scope*/ 40, /*->1577*/
/*  1537*/      OPC_MoveChild0,
/*  1538*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  1542*/      OPC_RecordChild0, // #0 = $src
/*  1543*/      OPC_MoveParent,
/*  1544*/      OPC_RecordChild1, // #1 = $imm
/*  1545*/      OPC_MoveChild1,
/*  1546*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1549*/      OPC_CheckPredicate, 5, // Predicate_lo16AllZero
/*  1551*/      OPC_MoveParent,
/*  1552*/      OPC_CheckType, MVT::i32,
/*  1554*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*  1556*/      OPC_EmitConvertToTarget, 1,
/*  1558*/      OPC_EmitNodeXForm, 0, 2, // hi16
/*  1561*/      OPC_EmitInteger, MVT::i32, 14, 
/*  1564*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1567*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVTi16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, 65535:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_lo16AllZero>><<X:hi16>>:$imm) - Complexity = 15
                // Dst: (t2MOVTi16:{ *:[i32] } rGPR:{ *:[i32] }:$src, (hi16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/*  1577*/    /*Scope*/ 8|128,1/*136*/, /*->1715*/
/*  1579*/      OPC_RecordChild0, // #0 = $Rn
/*  1580*/      OPC_Scope, 50, /*->1632*/ // 3 children in Scope
/*  1582*/        OPC_MoveChild1,
/*  1583*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  1586*/        OPC_RecordChild0, // #1 = $imm
/*  1587*/        OPC_MoveChild0,
/*  1588*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1591*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  1593*/        OPC_MoveParent,
/*  1594*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  1605*/        OPC_MoveParent,
/*  1606*/        OPC_CheckType, MVT::i32,
/*  1608*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1610*/        OPC_EmitConvertToTarget, 1,
/*  1612*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1615*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1618*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1621*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) - Complexity = 15
                  // Dst: (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  1632*/      /*Scope*/ 30, /*->1663*/
/*  1633*/        OPC_RecordChild1, // #1 = $Rn
/*  1634*/        OPC_CheckType, MVT::i32,
/*  1636*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  1638*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/*  1641*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1644*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1647*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1650*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRrsr), 0,
                      MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (ORRrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/*  1663*/      /*Scope*/ 50, /*->1714*/
/*  1664*/        OPC_MoveChild1,
/*  1665*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  1668*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  1679*/        OPC_RecordChild1, // #1 = $imm
/*  1680*/        OPC_MoveChild1,
/*  1681*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1684*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  1686*/        OPC_MoveParent,
/*  1687*/        OPC_MoveParent,
/*  1688*/        OPC_CheckType, MVT::i32,
/*  1690*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1692*/        OPC_EmitConvertToTarget, 1,
/*  1694*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1697*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1700*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1703*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) - Complexity = 15
                  // Dst: (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  1714*/      0, /*End of Scope*/
/*  1715*/    /*Scope*/ 102, /*->1818*/
/*  1716*/      OPC_MoveChild0,
/*  1717*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  1720*/      OPC_Scope, 47, /*->1769*/ // 2 children in Scope
/*  1722*/        OPC_RecordChild0, // #0 = $imm
/*  1723*/        OPC_MoveChild0,
/*  1724*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1727*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  1729*/        OPC_MoveParent,
/*  1730*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  1741*/        OPC_MoveParent,
/*  1742*/        OPC_RecordChild1, // #1 = $Rn
/*  1743*/        OPC_CheckType, MVT::i32,
/*  1745*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1747*/        OPC_EmitConvertToTarget, 0,
/*  1749*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1752*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1755*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1758*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  1769*/      /*Scope*/ 47, /*->1817*/
/*  1770*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  1781*/        OPC_RecordChild1, // #0 = $imm
/*  1782*/        OPC_MoveChild1,
/*  1783*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1786*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  1788*/        OPC_MoveParent,
/*  1789*/        OPC_MoveParent,
/*  1790*/        OPC_RecordChild1, // #1 = $Rn
/*  1791*/        OPC_CheckType, MVT::i32,
/*  1793*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1795*/        OPC_EmitConvertToTarget, 0,
/*  1797*/        OPC_EmitInteger, MVT::i32, 14, 
/*  1800*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1803*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1806*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  1817*/      0, /*End of Scope*/
/*  1818*/    /*Scope*/ 43|128,2/*299*/, /*->2119*/
/*  1820*/      OPC_RecordChild0, // #0 = $Rn
/*  1821*/      OPC_Scope, 124|128,1/*252*/, /*->2076*/ // 2 children in Scope
/*  1824*/        OPC_RecordChild1, // #1 = $imm
/*  1825*/        OPC_Scope, 6|128,1/*134*/, /*->1962*/ // 2 children in Scope
/*  1828*/          OPC_MoveChild1,
/*  1829*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1832*/          OPC_Scope, 32, /*->1866*/ // 4 children in Scope
/*  1834*/            OPC_CheckPredicate, 7, // Predicate_imm0_7
/*  1836*/            OPC_MoveParent,
/*  1837*/            OPC_CheckType, MVT::i32,
/*  1839*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  1841*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  1844*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  1847*/            OPC_EmitConvertToTarget, 1,
/*  1849*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1852*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1855*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDi3), 0,
                          MVT::i32, 5/*#Ops*/, 3, 2, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 13
                      // Dst: (tADDi3:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/*  1866*/          /*Scope*/ 32, /*->1899*/
/*  1867*/            OPC_CheckPredicate, 8, // Predicate_imm8_255
/*  1869*/            OPC_MoveParent,
/*  1870*/            OPC_CheckType, MVT::i32,
/*  1872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  1874*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  1877*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  1880*/            OPC_EmitConvertToTarget, 1,
/*  1882*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1885*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1888*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDi8), 0,
                          MVT::i32, 5/*#Ops*/, 3, 2, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255>>:$imm) - Complexity = 13
                      // Dst: (tADDi8:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255>>:$imm)
/*  1899*/          /*Scope*/ 32, /*->1932*/
/*  1900*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  1902*/            OPC_MoveParent,
/*  1903*/            OPC_CheckType, MVT::i32,
/*  1905*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1907*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  1910*/            OPC_EmitConvertToTarget, 1,
/*  1912*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1915*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1918*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1921*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDri), 0,
                          MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 13
                      // Dst: (t2ADDri:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)
/*  1932*/          /*Scope*/ 28, /*->1961*/
/*  1933*/            OPC_CheckPredicate, 9, // Predicate_imm0_4095
/*  1935*/            OPC_MoveParent,
/*  1936*/            OPC_CheckType, MVT::i32,
/*  1938*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1940*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  1943*/            OPC_EmitConvertToTarget, 1,
/*  1945*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1948*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1951*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDri12), 0,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$Rm) - Complexity = 13
                      // Dst: (t2ADDri12:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$Rm)
/*  1961*/          0, /*End of Scope*/
/*  1962*/        /*Scope*/ 112, /*->2075*/
/*  1963*/          OPC_CheckType, MVT::i32,
/*  1965*/          OPC_Scope, 26, /*->1993*/ // 4 children in Scope
/*  1967*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  1969*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/*  1972*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1975*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1978*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  1981*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRrsi), 0,
                          MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                      // Dst: (ORRrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/*  1993*/          /*Scope*/ 26, /*->2020*/
/*  1994*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  1996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  1999*/            OPC_EmitInteger, MVT::i32, 14, 
/*  2002*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2005*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2008*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORRrs), 0,
                          MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                      // Dst: (t2ORRrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*  2020*/          /*Scope*/ 26, /*->2047*/
/*  2021*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  2023*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/*  2026*/            OPC_EmitInteger, MVT::i32, 14, 
/*  2029*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2032*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2035*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRrsi), 0,
                          MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (ORRrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/*  2047*/          /*Scope*/ 26, /*->2074*/
/*  2048*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  2053*/            OPC_EmitInteger, MVT::i32, 14, 
/*  2056*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2059*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2062*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORRrs), 0,
                          MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                      // Src: (or:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, rGPR:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (t2ORRrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*  2074*/          0, /*End of Scope*/
/*  2075*/        0, /*End of Scope*/
/*  2076*/      /*Scope*/ 41, /*->2118*/
/*  2077*/        OPC_MoveChild1,
/*  2078*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2081*/        OPC_RecordChild0, // #1 = $Rm
/*  2082*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  2093*/        OPC_MoveParent,
/*  2094*/        OPC_CheckType, MVT::i32,
/*  2096*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2098*/        OPC_EmitInteger, MVT::i32, 14, 
/*  2101*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2107*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNrr), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                  // Dst: (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/*  2118*/      0, /*End of Scope*/
/*  2119*/    /*Scope*/ 42, /*->2162*/
/*  2120*/      OPC_MoveChild0,
/*  2121*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2124*/      OPC_RecordChild0, // #0 = $Rm
/*  2125*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  2136*/      OPC_MoveParent,
/*  2137*/      OPC_RecordChild1, // #1 = $Rn
/*  2138*/      OPC_CheckType, MVT::i32,
/*  2140*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2142*/      OPC_EmitInteger, MVT::i32, 14, 
/*  2145*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2148*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2151*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNrr), 0,
                    MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                // Src: (or:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 11
                // Dst: (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/*  2162*/    /*Scope*/ 125, /*->2288*/
/*  2163*/      OPC_RecordChild0, // #0 = $Rn
/*  2164*/      OPC_Scope, 32, /*->2198*/ // 3 children in Scope
/*  2166*/        OPC_RecordChild1, // #1 = $Rm
/*  2167*/        OPC_MoveChild1,
/*  2168*/        OPC_CheckPredicate, 10, // Predicate_non_imm32
/*  2170*/        OPC_MoveParent,
/*  2171*/        OPC_CheckType, MVT::i32,
/*  2173*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2175*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  2178*/        OPC_EmitInteger, MVT::i32, 14, 
/*  2181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2184*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2187*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrr), 0,
                      MVT::i32, 5/*#Ops*/, 2, 1, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, GPR:{ *:[i32] }<<P:Predicate_non_imm32>>:$Rm) - Complexity = 10
                  // Dst: (t2ADDrr:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/*  2198*/      /*Scope*/ 32, /*->2231*/
/*  2199*/        OPC_MoveChild0,
/*  2200*/        OPC_CheckPredicate, 10, // Predicate_non_imm32
/*  2202*/        OPC_MoveParent,
/*  2203*/        OPC_RecordChild1, // #1 = $Rn
/*  2204*/        OPC_CheckType, MVT::i32,
/*  2206*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2208*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddLikeOr:$Rn #2
/*  2211*/        OPC_EmitInteger, MVT::i32, 14, 
/*  2214*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2217*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2220*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrr), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (or:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_non_imm32>>:$Rm, AddLikeOrOp:{ *:[i32] }:$Rn) - Complexity = 10
                  // Dst: (t2ADDrr:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/*  2231*/      /*Scope*/ 55, /*->2287*/
/*  2232*/        OPC_RecordChild1, // #1 = $Rm
/*  2233*/        OPC_CheckType, MVT::i32,
/*  2235*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  2237*/        OPC_Scope, 23, /*->2262*/ // 2 children in Scope
/*  2239*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectAddLikeOr:$Rn #2
/*  2242*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  2245*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2248*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2251*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDrr), 0,
                        MVT::i32, 5/*#Ops*/, 3, 2, 1, 4, 5, 
                    // Src: (or:{ *:[i32] } AddLikeOrOp:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 9
                    // Dst: (tADDrr:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/*  2262*/        /*Scope*/ 23, /*->2286*/
/*  2263*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddLikeOr:$Rn #2
/*  2266*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  2269*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2272*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2275*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDrr), 0,
                        MVT::i32, 5/*#Ops*/, 3, 2, 0, 4, 5, 
                    // Src: (or:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, AddLikeOrOp:{ *:[i32] }:$Rn) - Complexity = 9
                    // Dst: (tADDrr:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/*  2286*/        0, /*End of Scope*/
/*  2287*/      0, /*End of Scope*/
/*  2288*/    /*Scope*/ 59, /*->2348*/
/*  2289*/      OPC_CheckOrImm, 0|128,0|128,124|128,127|128,15/*4294901760*/, 
/*  2295*/      OPC_RecordChild0, // #0 = $src
/*  2296*/      OPC_CheckType, MVT::i32,
/*  2298*/      OPC_Scope, 23, /*->2323*/ // 2 children in Scope
/*  2300*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*  2302*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,3/*65535*/, 
/*  2307*/        OPC_EmitInteger, MVT::i32, 14, 
/*  2310*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2313*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVTi16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) - Complexity = 8
                  // Dst: (MOVTi16:{ *:[i32] } GPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
/*  2323*/      /*Scope*/ 23, /*->2347*/
/*  2324*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2326*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,3/*65535*/, 
/*  2331*/        OPC_EmitInteger, MVT::i32, 14, 
/*  2334*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2337*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVTi16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) - Complexity = 8
                  // Dst: (t2MOVTi16:{ *:[i32] } rGPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
/*  2347*/      0, /*End of Scope*/
/*  2348*/    /*Scope*/ 50|128,1/*178*/, /*->2528*/
/*  2350*/      OPC_RecordChild0, // #0 = $Rn
/*  2351*/      OPC_RecordChild1, // #1 = $imm
/*  2352*/      OPC_Scope, 99, /*->2453*/ // 2 children in Scope
/*  2354*/        OPC_MoveChild1,
/*  2355*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2358*/        OPC_Scope, 29, /*->2389*/ // 3 children in Scope
/*  2360*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/*  2362*/          OPC_MoveParent,
/*  2363*/          OPC_CheckType, MVT::i32,
/*  2365*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  2367*/          OPC_EmitConvertToTarget, 1,
/*  2369*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2372*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2375*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2378*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                    // Dst: (ORRri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  2389*/        /*Scope*/ 29, /*->2419*/
/*  2390*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  2392*/          OPC_MoveParent,
/*  2393*/          OPC_CheckType, MVT::i32,
/*  2395*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2397*/          OPC_EmitConvertToTarget, 1,
/*  2399*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2402*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2405*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2408*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORRri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                    // Dst: (t2ORRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  2419*/        /*Scope*/ 32, /*->2452*/
/*  2420*/          OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/*  2422*/          OPC_MoveParent,
/*  2423*/          OPC_CheckType, MVT::i32,
/*  2425*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2427*/          OPC_EmitConvertToTarget, 1,
/*  2429*/          OPC_EmitNodeXForm, 1, 2, // t2_so_imm_not_XFORM
/*  2432*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2435*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2438*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2441*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORNri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>><<X:t2_so_imm_not_XFORM>>:$imm) - Complexity = 7
                    // Dst: (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>>:$imm))
/*  2452*/        0, /*End of Scope*/
/*  2453*/      /*Scope*/ 73, /*->2527*/
/*  2454*/        OPC_CheckType, MVT::i32,
/*  2456*/        OPC_Scope, 22, /*->2480*/ // 3 children in Scope
/*  2458*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  2460*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2463*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2466*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2469*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::ORRrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (ORRrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/*  2480*/        /*Scope*/ 22, /*->2503*/
/*  2481*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  2483*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  2486*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2489*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2492*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tORR), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (or:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tORR:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/*  2503*/        /*Scope*/ 22, /*->2526*/
/*  2504*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  2506*/          OPC_EmitInteger, MVT::i32, 14, 
/*  2509*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2512*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2515*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ORRrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2ORRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/*  2526*/        0, /*End of Scope*/
/*  2527*/      0, /*End of Scope*/
/*  2528*/    /*Scope*/ 126|128,22/*2942*/, /*->5472*/
/*  2530*/      OPC_MoveChild0,
/*  2531*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2534*/      OPC_Scope, 13|128,5/*653*/, /*->3190*/ // 8 children in Scope
/*  2537*/        OPC_RecordChild0, // #0 = $Vn
/*  2538*/        OPC_Scope, 94|128,3/*478*/, /*->3019*/ // 2 children in Scope
/*  2541*/          OPC_RecordChild1, // #1 = $Vd
/*  2542*/          OPC_MoveParent,
/*  2543*/          OPC_MoveChild1,
/*  2544*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2547*/          OPC_Scope, 44|128,1/*172*/, /*->2722*/ // 4 children in Scope
/*  2550*/            OPC_RecordChild0, // #2 = $Vm
/*  2551*/            OPC_MoveChild1,
/*  2552*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2555*/            OPC_Scope, 119, /*->2676*/ // 2 children in Scope
/*  2557*/              OPC_CheckChild0Same, 1,
/*  2559*/              OPC_MoveChild1,
/*  2560*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2563*/              OPC_MoveChild0,
/*  2564*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2567*/              OPC_MoveChild0,
/*  2568*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2571*/              OPC_MoveParent,
/*  2572*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2574*/              OPC_SwitchType /*2 cases */, 48, MVT::v8i8,// ->2625
/*  2577*/                OPC_MoveParent,
/*  2578*/                OPC_MoveParent,
/*  2579*/                OPC_MoveParent,
/*  2580*/                OPC_MoveParent,
/*  2581*/                OPC_SwitchType /*2 cases */, 19, MVT::v2i32,// ->2603
/*  2584*/                  OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2586*/                  OPC_EmitInteger, MVT::i32, 14, 
/*  2589*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2592*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                                MVT::v2i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                            // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                            // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2603*/                /*SwitchType*/ 19, MVT::v1i64,// ->2624
/*  2605*/                  OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2607*/                  OPC_EmitInteger, MVT::i32, 14, 
/*  2610*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2613*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                                MVT::v1i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                            // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                            // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  2624*/                0, // EndSwitchType
/*  2625*/              /*SwitchType*/ 48, MVT::v16i8,// ->2675
/*  2627*/                OPC_MoveParent,
/*  2628*/                OPC_MoveParent,
/*  2629*/                OPC_MoveParent,
/*  2630*/                OPC_MoveParent,
/*  2631*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->2653
/*  2634*/                  OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2636*/                  OPC_EmitInteger, MVT::i32, 14, 
/*  2639*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2642*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                                MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                            // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                            // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  2653*/                /*SwitchType*/ 19, MVT::v2i64,// ->2674
/*  2655*/                  OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2657*/                  OPC_EmitInteger, MVT::i32, 14, 
/*  2660*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2663*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                                MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                            // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                            // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  2674*/                0, // EndSwitchType
/*  2675*/              0, // EndSwitchType
/*  2676*/            /*Scope*/ 44, /*->2721*/
/*  2677*/              OPC_MoveChild0,
/*  2678*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2681*/              OPC_MoveChild0,
/*  2682*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2685*/              OPC_MoveChild0,
/*  2686*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2689*/              OPC_MoveParent,
/*  2690*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2692*/              OPC_CheckType, MVT::v8i8,
/*  2694*/              OPC_MoveParent,
/*  2695*/              OPC_MoveParent,
/*  2696*/              OPC_CheckChild1Same, 1,
/*  2698*/              OPC_MoveParent,
/*  2699*/              OPC_MoveParent,
/*  2700*/              OPC_CheckType, MVT::v2i32,
/*  2702*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2704*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2707*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2710*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd))) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2721*/            0, /*End of Scope*/
/*  2722*/          /*Scope*/ 98, /*->2821*/
/*  2723*/            OPC_MoveChild0,
/*  2724*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2727*/            OPC_Scope, 45, /*->2774*/ // 2 children in Scope
/*  2729*/              OPC_CheckChild0Same, 1,
/*  2731*/              OPC_MoveChild1,
/*  2732*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2735*/              OPC_MoveChild0,
/*  2736*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2739*/              OPC_MoveChild0,
/*  2740*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2743*/              OPC_MoveParent,
/*  2744*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2746*/              OPC_CheckType, MVT::v8i8,
/*  2748*/              OPC_MoveParent,
/*  2749*/              OPC_MoveParent,
/*  2750*/              OPC_MoveParent,
/*  2751*/              OPC_RecordChild1, // #2 = $Vm
/*  2752*/              OPC_MoveParent,
/*  2753*/              OPC_CheckType, MVT::v2i32,
/*  2755*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2757*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2760*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2763*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2774*/            /*Scope*/ 45, /*->2820*/
/*  2775*/              OPC_MoveChild0,
/*  2776*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2779*/              OPC_MoveChild0,
/*  2780*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2783*/              OPC_MoveChild0,
/*  2784*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2787*/              OPC_MoveParent,
/*  2788*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2790*/              OPC_CheckType, MVT::v8i8,
/*  2792*/              OPC_MoveParent,
/*  2793*/              OPC_MoveParent,
/*  2794*/              OPC_CheckChild1Same, 1,
/*  2796*/              OPC_MoveParent,
/*  2797*/              OPC_RecordChild1, // #2 = $Vm
/*  2798*/              OPC_MoveParent,
/*  2799*/              OPC_CheckType, MVT::v2i32,
/*  2801*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2803*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2806*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2809*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2820*/            0, /*End of Scope*/
/*  2821*/          /*Scope*/ 97, /*->2919*/
/*  2822*/            OPC_RecordChild0, // #2 = $Vm
/*  2823*/            OPC_MoveChild1,
/*  2824*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2827*/            OPC_Scope, 44, /*->2873*/ // 2 children in Scope
/*  2829*/              OPC_CheckChild0Same, 0,
/*  2831*/              OPC_MoveChild1,
/*  2832*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2835*/              OPC_MoveChild0,
/*  2836*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2839*/              OPC_MoveChild0,
/*  2840*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2843*/              OPC_MoveParent,
/*  2844*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2846*/              OPC_CheckType, MVT::v8i8,
/*  2848*/              OPC_MoveParent,
/*  2849*/              OPC_MoveParent,
/*  2850*/              OPC_MoveParent,
/*  2851*/              OPC_MoveParent,
/*  2852*/              OPC_CheckType, MVT::v2i32,
/*  2854*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2856*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2859*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2862*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2873*/            /*Scope*/ 44, /*->2918*/
/*  2874*/              OPC_MoveChild0,
/*  2875*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2878*/              OPC_MoveChild0,
/*  2879*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2882*/              OPC_MoveChild0,
/*  2883*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2886*/              OPC_MoveParent,
/*  2887*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2889*/              OPC_CheckType, MVT::v8i8,
/*  2891*/              OPC_MoveParent,
/*  2892*/              OPC_MoveParent,
/*  2893*/              OPC_CheckChild1Same, 0,
/*  2895*/              OPC_MoveParent,
/*  2896*/              OPC_MoveParent,
/*  2897*/              OPC_CheckType, MVT::v2i32,
/*  2899*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2901*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2904*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2907*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd))) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2918*/            0, /*End of Scope*/
/*  2919*/          /*Scope*/ 98, /*->3018*/
/*  2920*/            OPC_MoveChild0,
/*  2921*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  2924*/            OPC_Scope, 45, /*->2971*/ // 2 children in Scope
/*  2926*/              OPC_CheckChild0Same, 0,
/*  2928*/              OPC_MoveChild1,
/*  2929*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2932*/              OPC_MoveChild0,
/*  2933*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2936*/              OPC_MoveChild0,
/*  2937*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2940*/              OPC_MoveParent,
/*  2941*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2943*/              OPC_CheckType, MVT::v8i8,
/*  2945*/              OPC_MoveParent,
/*  2946*/              OPC_MoveParent,
/*  2947*/              OPC_MoveParent,
/*  2948*/              OPC_RecordChild1, // #2 = $Vm
/*  2949*/              OPC_MoveParent,
/*  2950*/              OPC_CheckType, MVT::v2i32,
/*  2952*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  2954*/              OPC_EmitInteger, MVT::i32, 14, 
/*  2957*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  2960*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  2971*/            /*Scope*/ 45, /*->3017*/
/*  2972*/              OPC_MoveChild0,
/*  2973*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  2976*/              OPC_MoveChild0,
/*  2977*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  2980*/              OPC_MoveChild0,
/*  2981*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  2984*/              OPC_MoveParent,
/*  2985*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  2987*/              OPC_CheckType, MVT::v8i8,
/*  2989*/              OPC_MoveParent,
/*  2990*/              OPC_MoveParent,
/*  2991*/              OPC_CheckChild1Same, 0,
/*  2993*/              OPC_MoveParent,
/*  2994*/              OPC_RecordChild1, // #2 = $Vm
/*  2995*/              OPC_MoveParent,
/*  2996*/              OPC_CheckType, MVT::v2i32,
/*  2998*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3000*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3003*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3006*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3017*/            0, /*End of Scope*/
/*  3018*/          0, /*End of Scope*/
/*  3019*/        /*Scope*/ 40|128,1/*168*/, /*->3189*/
/*  3021*/          OPC_MoveChild1,
/*  3022*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3025*/          OPC_Scope, 80, /*->3107*/ // 2 children in Scope
/*  3027*/            OPC_RecordChild0, // #1 = $Vd
/*  3028*/            OPC_MoveChild1,
/*  3029*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3032*/            OPC_MoveChild0,
/*  3033*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3036*/            OPC_MoveChild0,
/*  3037*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3040*/            OPC_MoveParent,
/*  3041*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3043*/            OPC_CheckType, MVT::v8i8,
/*  3045*/            OPC_MoveParent,
/*  3046*/            OPC_MoveParent,
/*  3047*/            OPC_MoveParent,
/*  3048*/            OPC_MoveParent,
/*  3049*/            OPC_MoveChild1,
/*  3050*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3053*/            OPC_Scope, 25, /*->3080*/ // 2 children in Scope
/*  3055*/              OPC_RecordChild0, // #2 = $Vn
/*  3056*/              OPC_CheckChild1Same, 1,
/*  3058*/              OPC_MoveParent,
/*  3059*/              OPC_CheckType, MVT::v2i32,
/*  3061*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3063*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3066*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3069*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3080*/            /*Scope*/ 25, /*->3106*/
/*  3081*/              OPC_CheckChild0Same, 1,
/*  3083*/              OPC_RecordChild1, // #2 = $Vn
/*  3084*/              OPC_MoveParent,
/*  3085*/              OPC_CheckType, MVT::v2i32,
/*  3087*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3089*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3092*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3095*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3106*/            0, /*End of Scope*/
/*  3107*/          /*Scope*/ 80, /*->3188*/
/*  3108*/            OPC_MoveChild0,
/*  3109*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3112*/            OPC_MoveChild0,
/*  3113*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3116*/            OPC_MoveChild0,
/*  3117*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3120*/            OPC_MoveParent,
/*  3121*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3123*/            OPC_CheckType, MVT::v8i8,
/*  3125*/            OPC_MoveParent,
/*  3126*/            OPC_MoveParent,
/*  3127*/            OPC_RecordChild1, // #1 = $Vd
/*  3128*/            OPC_MoveParent,
/*  3129*/            OPC_MoveParent,
/*  3130*/            OPC_MoveChild1,
/*  3131*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3134*/            OPC_Scope, 25, /*->3161*/ // 2 children in Scope
/*  3136*/              OPC_RecordChild0, // #2 = $Vn
/*  3137*/              OPC_CheckChild1Same, 1,
/*  3139*/              OPC_MoveParent,
/*  3140*/              OPC_CheckType, MVT::v2i32,
/*  3142*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3144*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3147*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3150*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd)), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3161*/            /*Scope*/ 25, /*->3187*/
/*  3162*/              OPC_CheckChild0Same, 1,
/*  3164*/              OPC_RecordChild1, // #2 = $Vn
/*  3165*/              OPC_MoveParent,
/*  3166*/              OPC_CheckType, MVT::v2i32,
/*  3168*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3170*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3173*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3176*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v2i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd)), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3187*/            0, /*End of Scope*/
/*  3188*/          0, /*End of Scope*/
/*  3189*/        0, /*End of Scope*/
/*  3190*/      /*Scope*/ 42|128,1/*170*/, /*->3362*/
/*  3192*/        OPC_MoveChild0,
/*  3193*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3196*/        OPC_Scope, 81, /*->3279*/ // 2 children in Scope
/*  3198*/          OPC_RecordChild0, // #0 = $Vd
/*  3199*/          OPC_MoveChild1,
/*  3200*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3203*/          OPC_MoveChild0,
/*  3204*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3207*/          OPC_MoveChild0,
/*  3208*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3211*/          OPC_MoveParent,
/*  3212*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3214*/          OPC_CheckType, MVT::v8i8,
/*  3216*/          OPC_MoveParent,
/*  3217*/          OPC_MoveParent,
/*  3218*/          OPC_MoveParent,
/*  3219*/          OPC_RecordChild1, // #1 = $Vm
/*  3220*/          OPC_MoveParent,
/*  3221*/          OPC_MoveChild1,
/*  3222*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3225*/          OPC_Scope, 25, /*->3252*/ // 2 children in Scope
/*  3227*/            OPC_RecordChild0, // #2 = $Vn
/*  3228*/            OPC_CheckChild1Same, 0,
/*  3230*/            OPC_MoveParent,
/*  3231*/            OPC_CheckType, MVT::v2i32,
/*  3233*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3235*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3238*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3241*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vm), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3252*/          /*Scope*/ 25, /*->3278*/
/*  3253*/            OPC_CheckChild0Same, 0,
/*  3255*/            OPC_RecordChild1, // #2 = $Vn
/*  3256*/            OPC_MoveParent,
/*  3257*/            OPC_CheckType, MVT::v2i32,
/*  3259*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3261*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3264*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3267*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vm), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3278*/          0, /*End of Scope*/
/*  3279*/        /*Scope*/ 81, /*->3361*/
/*  3280*/          OPC_MoveChild0,
/*  3281*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3284*/          OPC_MoveChild0,
/*  3285*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3288*/          OPC_MoveChild0,
/*  3289*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3292*/          OPC_MoveParent,
/*  3293*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3295*/          OPC_CheckType, MVT::v8i8,
/*  3297*/          OPC_MoveParent,
/*  3298*/          OPC_MoveParent,
/*  3299*/          OPC_RecordChild1, // #0 = $Vd
/*  3300*/          OPC_MoveParent,
/*  3301*/          OPC_RecordChild1, // #1 = $Vm
/*  3302*/          OPC_MoveParent,
/*  3303*/          OPC_MoveChild1,
/*  3304*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3307*/          OPC_Scope, 25, /*->3334*/ // 2 children in Scope
/*  3309*/            OPC_RecordChild0, // #2 = $Vn
/*  3310*/            OPC_CheckChild1Same, 0,
/*  3312*/            OPC_MoveParent,
/*  3313*/            OPC_CheckType, MVT::v2i32,
/*  3315*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3317*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3320*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3323*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd), DPR:{ *:[v2i32] }:$Vm), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3334*/          /*Scope*/ 25, /*->3360*/
/*  3335*/            OPC_CheckChild0Same, 0,
/*  3337*/            OPC_RecordChild1, // #2 = $Vn
/*  3338*/            OPC_MoveParent,
/*  3339*/            OPC_CheckType, MVT::v2i32,
/*  3341*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3343*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3346*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3349*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vd), DPR:{ *:[v2i32] }:$Vm), (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  3360*/          0, /*End of Scope*/
/*  3361*/        0, /*End of Scope*/
/*  3362*/      /*Scope*/ 17|128,4/*529*/, /*->3893*/
/*  3364*/        OPC_RecordChild0, // #0 = $Vn
/*  3365*/        OPC_Scope, 98|128,2/*354*/, /*->3722*/ // 2 children in Scope
/*  3368*/          OPC_RecordChild1, // #1 = $Vd
/*  3369*/          OPC_MoveParent,
/*  3370*/          OPC_MoveChild1,
/*  3371*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3374*/          OPC_Scope, 49, /*->3425*/ // 4 children in Scope
/*  3376*/            OPC_RecordChild0, // #2 = $Vm
/*  3377*/            OPC_MoveChild1,
/*  3378*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3381*/            OPC_MoveChild0,
/*  3382*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3385*/            OPC_MoveChild0,
/*  3386*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3389*/            OPC_MoveChild0,
/*  3390*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3393*/            OPC_MoveParent,
/*  3394*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3396*/            OPC_CheckType, MVT::v8i8,
/*  3398*/            OPC_MoveParent,
/*  3399*/            OPC_MoveParent,
/*  3400*/            OPC_CheckChild1Same, 1,
/*  3402*/            OPC_MoveParent,
/*  3403*/            OPC_MoveParent,
/*  3404*/            OPC_CheckType, MVT::v1i64,
/*  3406*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3408*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3411*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3414*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v1i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd))) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3425*/          /*Scope*/ 98, /*->3524*/
/*  3426*/            OPC_MoveChild0,
/*  3427*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3430*/            OPC_Scope, 45, /*->3477*/ // 2 children in Scope
/*  3432*/              OPC_CheckChild0Same, 1,
/*  3434*/              OPC_MoveChild1,
/*  3435*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3438*/              OPC_MoveChild0,
/*  3439*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3442*/              OPC_MoveChild0,
/*  3443*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3446*/              OPC_MoveParent,
/*  3447*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3449*/              OPC_CheckType, MVT::v8i8,
/*  3451*/              OPC_MoveParent,
/*  3452*/              OPC_MoveParent,
/*  3453*/              OPC_MoveParent,
/*  3454*/              OPC_RecordChild1, // #2 = $Vm
/*  3455*/              OPC_MoveParent,
/*  3456*/              OPC_CheckType, MVT::v1i64,
/*  3458*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3460*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3463*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3466*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v1i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3477*/            /*Scope*/ 45, /*->3523*/
/*  3478*/              OPC_MoveChild0,
/*  3479*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3482*/              OPC_MoveChild0,
/*  3483*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3486*/              OPC_MoveChild0,
/*  3487*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3490*/              OPC_MoveParent,
/*  3491*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3493*/              OPC_CheckType, MVT::v8i8,
/*  3495*/              OPC_MoveParent,
/*  3496*/              OPC_MoveParent,
/*  3497*/              OPC_CheckChild1Same, 1,
/*  3499*/              OPC_MoveParent,
/*  3500*/              OPC_RecordChild1, // #2 = $Vm
/*  3501*/              OPC_MoveParent,
/*  3502*/              OPC_CheckType, MVT::v1i64,
/*  3504*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3506*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3509*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3512*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd), DPR:{ *:[v1i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3523*/            0, /*End of Scope*/
/*  3524*/          /*Scope*/ 97, /*->3622*/
/*  3525*/            OPC_RecordChild0, // #2 = $Vm
/*  3526*/            OPC_MoveChild1,
/*  3527*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3530*/            OPC_Scope, 44, /*->3576*/ // 2 children in Scope
/*  3532*/              OPC_CheckChild0Same, 0,
/*  3534*/              OPC_MoveChild1,
/*  3535*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3538*/              OPC_MoveChild0,
/*  3539*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3542*/              OPC_MoveChild0,
/*  3543*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3546*/              OPC_MoveParent,
/*  3547*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3549*/              OPC_CheckType, MVT::v8i8,
/*  3551*/              OPC_MoveParent,
/*  3552*/              OPC_MoveParent,
/*  3553*/              OPC_MoveParent,
/*  3554*/              OPC_MoveParent,
/*  3555*/              OPC_CheckType, MVT::v1i64,
/*  3557*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3559*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3562*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3565*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3576*/            /*Scope*/ 44, /*->3621*/
/*  3577*/              OPC_MoveChild0,
/*  3578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3581*/              OPC_MoveChild0,
/*  3582*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3585*/              OPC_MoveChild0,
/*  3586*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3589*/              OPC_MoveParent,
/*  3590*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3592*/              OPC_CheckType, MVT::v8i8,
/*  3594*/              OPC_MoveParent,
/*  3595*/              OPC_MoveParent,
/*  3596*/              OPC_CheckChild1Same, 0,
/*  3598*/              OPC_MoveParent,
/*  3599*/              OPC_MoveParent,
/*  3600*/              OPC_CheckType, MVT::v1i64,
/*  3602*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3604*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3607*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3610*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd))) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3621*/            0, /*End of Scope*/
/*  3622*/          /*Scope*/ 98, /*->3721*/
/*  3623*/            OPC_MoveChild0,
/*  3624*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3627*/            OPC_Scope, 45, /*->3674*/ // 2 children in Scope
/*  3629*/              OPC_CheckChild0Same, 0,
/*  3631*/              OPC_MoveChild1,
/*  3632*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3635*/              OPC_MoveChild0,
/*  3636*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3639*/              OPC_MoveChild0,
/*  3640*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3643*/              OPC_MoveParent,
/*  3644*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3646*/              OPC_CheckType, MVT::v8i8,
/*  3648*/              OPC_MoveParent,
/*  3649*/              OPC_MoveParent,
/*  3650*/              OPC_MoveParent,
/*  3651*/              OPC_RecordChild1, // #2 = $Vm
/*  3652*/              OPC_MoveParent,
/*  3653*/              OPC_CheckType, MVT::v1i64,
/*  3655*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3657*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3660*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3663*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v1i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3674*/            /*Scope*/ 45, /*->3720*/
/*  3675*/              OPC_MoveChild0,
/*  3676*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3679*/              OPC_MoveChild0,
/*  3680*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3683*/              OPC_MoveChild0,
/*  3684*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3687*/              OPC_MoveParent,
/*  3688*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3690*/              OPC_CheckType, MVT::v8i8,
/*  3692*/              OPC_MoveParent,
/*  3693*/              OPC_MoveParent,
/*  3694*/              OPC_CheckChild1Same, 0,
/*  3696*/              OPC_MoveParent,
/*  3697*/              OPC_RecordChild1, // #2 = $Vm
/*  3698*/              OPC_MoveParent,
/*  3699*/              OPC_CheckType, MVT::v1i64,
/*  3701*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3703*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3706*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3709*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd), DPR:{ *:[v1i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3720*/            0, /*End of Scope*/
/*  3721*/          0, /*End of Scope*/
/*  3722*/        /*Scope*/ 40|128,1/*168*/, /*->3892*/
/*  3724*/          OPC_MoveChild1,
/*  3725*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3728*/          OPC_Scope, 80, /*->3810*/ // 2 children in Scope
/*  3730*/            OPC_RecordChild0, // #1 = $Vd
/*  3731*/            OPC_MoveChild1,
/*  3732*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3735*/            OPC_MoveChild0,
/*  3736*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3739*/            OPC_MoveChild0,
/*  3740*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3743*/            OPC_MoveParent,
/*  3744*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3746*/            OPC_CheckType, MVT::v8i8,
/*  3748*/            OPC_MoveParent,
/*  3749*/            OPC_MoveParent,
/*  3750*/            OPC_MoveParent,
/*  3751*/            OPC_MoveParent,
/*  3752*/            OPC_MoveChild1,
/*  3753*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3756*/            OPC_Scope, 25, /*->3783*/ // 2 children in Scope
/*  3758*/              OPC_RecordChild0, // #2 = $Vn
/*  3759*/              OPC_CheckChild1Same, 1,
/*  3761*/              OPC_MoveParent,
/*  3762*/              OPC_CheckType, MVT::v1i64,
/*  3764*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3766*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3769*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3772*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3783*/            /*Scope*/ 25, /*->3809*/
/*  3784*/              OPC_CheckChild0Same, 1,
/*  3786*/              OPC_RecordChild1, // #2 = $Vn
/*  3787*/              OPC_MoveParent,
/*  3788*/              OPC_CheckType, MVT::v1i64,
/*  3790*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3792*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3795*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3798*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3809*/            0, /*End of Scope*/
/*  3810*/          /*Scope*/ 80, /*->3891*/
/*  3811*/            OPC_MoveChild0,
/*  3812*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3815*/            OPC_MoveChild0,
/*  3816*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3819*/            OPC_MoveChild0,
/*  3820*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3823*/            OPC_MoveParent,
/*  3824*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3826*/            OPC_CheckType, MVT::v8i8,
/*  3828*/            OPC_MoveParent,
/*  3829*/            OPC_MoveParent,
/*  3830*/            OPC_RecordChild1, // #1 = $Vd
/*  3831*/            OPC_MoveParent,
/*  3832*/            OPC_MoveParent,
/*  3833*/            OPC_MoveChild1,
/*  3834*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3837*/            OPC_Scope, 25, /*->3864*/ // 2 children in Scope
/*  3839*/              OPC_RecordChild0, // #2 = $Vn
/*  3840*/              OPC_CheckChild1Same, 1,
/*  3842*/              OPC_MoveParent,
/*  3843*/              OPC_CheckType, MVT::v1i64,
/*  3845*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3847*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3850*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3853*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd)), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3864*/            /*Scope*/ 25, /*->3890*/
/*  3865*/              OPC_CheckChild0Same, 1,
/*  3867*/              OPC_RecordChild1, // #2 = $Vn
/*  3868*/              OPC_MoveParent,
/*  3869*/              OPC_CheckType, MVT::v1i64,
/*  3871*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3873*/              OPC_EmitInteger, MVT::i32, 14, 
/*  3876*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3879*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                            MVT::v1i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd)), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3890*/            0, /*End of Scope*/
/*  3891*/          0, /*End of Scope*/
/*  3892*/        0, /*End of Scope*/
/*  3893*/      /*Scope*/ 42|128,1/*170*/, /*->4065*/
/*  3895*/        OPC_MoveChild0,
/*  3896*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  3899*/        OPC_Scope, 81, /*->3982*/ // 2 children in Scope
/*  3901*/          OPC_RecordChild0, // #0 = $Vd
/*  3902*/          OPC_MoveChild1,
/*  3903*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3906*/          OPC_MoveChild0,
/*  3907*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3910*/          OPC_MoveChild0,
/*  3911*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3914*/          OPC_MoveParent,
/*  3915*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3917*/          OPC_CheckType, MVT::v8i8,
/*  3919*/          OPC_MoveParent,
/*  3920*/          OPC_MoveParent,
/*  3921*/          OPC_MoveParent,
/*  3922*/          OPC_RecordChild1, // #1 = $Vm
/*  3923*/          OPC_MoveParent,
/*  3924*/          OPC_MoveChild1,
/*  3925*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3928*/          OPC_Scope, 25, /*->3955*/ // 2 children in Scope
/*  3930*/            OPC_RecordChild0, // #2 = $Vn
/*  3931*/            OPC_CheckChild1Same, 0,
/*  3933*/            OPC_MoveParent,
/*  3934*/            OPC_CheckType, MVT::v1i64,
/*  3936*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3938*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3941*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3944*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v1i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v1i64] }:$Vm), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3955*/          /*Scope*/ 25, /*->3981*/
/*  3956*/            OPC_CheckChild0Same, 0,
/*  3958*/            OPC_RecordChild1, // #2 = $Vn
/*  3959*/            OPC_MoveParent,
/*  3960*/            OPC_CheckType, MVT::v1i64,
/*  3962*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  3964*/            OPC_EmitInteger, MVT::i32, 14, 
/*  3967*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  3970*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v1i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v1i64] }:$Vm), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  3981*/          0, /*End of Scope*/
/*  3982*/        /*Scope*/ 81, /*->4064*/
/*  3983*/          OPC_MoveChild0,
/*  3984*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  3987*/          OPC_MoveChild0,
/*  3988*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  3991*/          OPC_MoveChild0,
/*  3992*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  3995*/          OPC_MoveParent,
/*  3996*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  3998*/          OPC_CheckType, MVT::v8i8,
/*  4000*/          OPC_MoveParent,
/*  4001*/          OPC_MoveParent,
/*  4002*/          OPC_RecordChild1, // #0 = $Vd
/*  4003*/          OPC_MoveParent,
/*  4004*/          OPC_RecordChild1, // #1 = $Vm
/*  4005*/          OPC_MoveParent,
/*  4006*/          OPC_MoveChild1,
/*  4007*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4010*/          OPC_Scope, 25, /*->4037*/ // 2 children in Scope
/*  4012*/            OPC_RecordChild0, // #2 = $Vn
/*  4013*/            OPC_CheckChild1Same, 0,
/*  4015*/            OPC_MoveParent,
/*  4016*/            OPC_CheckType, MVT::v1i64,
/*  4018*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4020*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4023*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4026*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v1i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd), DPR:{ *:[v1i64] }:$Vm), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  4037*/          /*Scope*/ 25, /*->4063*/
/*  4038*/            OPC_CheckChild0Same, 0,
/*  4040*/            OPC_RecordChild1, // #2 = $Vn
/*  4041*/            OPC_MoveParent,
/*  4042*/            OPC_CheckType, MVT::v1i64,
/*  4044*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4046*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4049*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4052*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                          MVT::v1i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (bitconvert:{ *:[v1i64] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v1i64] }:$Vd), DPR:{ *:[v1i64] }:$Vm), (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vd, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*  4063*/          0, /*End of Scope*/
/*  4064*/        0, /*End of Scope*/
/*  4065*/      /*Scope*/ 17|128,4/*529*/, /*->4596*/
/*  4067*/        OPC_RecordChild0, // #0 = $Vn
/*  4068*/        OPC_Scope, 98|128,2/*354*/, /*->4425*/ // 2 children in Scope
/*  4071*/          OPC_RecordChild1, // #1 = $Vd
/*  4072*/          OPC_MoveParent,
/*  4073*/          OPC_MoveChild1,
/*  4074*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4077*/          OPC_Scope, 49, /*->4128*/ // 4 children in Scope
/*  4079*/            OPC_RecordChild0, // #2 = $Vm
/*  4080*/            OPC_MoveChild1,
/*  4081*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4084*/            OPC_MoveChild0,
/*  4085*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4088*/            OPC_MoveChild0,
/*  4089*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4092*/            OPC_MoveChild0,
/*  4093*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4096*/            OPC_MoveParent,
/*  4097*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4099*/            OPC_CheckType, MVT::v16i8,
/*  4101*/            OPC_MoveParent,
/*  4102*/            OPC_MoveParent,
/*  4103*/            OPC_CheckChild1Same, 1,
/*  4105*/            OPC_MoveParent,
/*  4106*/            OPC_MoveParent,
/*  4107*/            OPC_CheckType, MVT::v4i32,
/*  4109*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4111*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4114*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4117*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd))) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4128*/          /*Scope*/ 98, /*->4227*/
/*  4129*/            OPC_MoveChild0,
/*  4130*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4133*/            OPC_Scope, 45, /*->4180*/ // 2 children in Scope
/*  4135*/              OPC_CheckChild0Same, 1,
/*  4137*/              OPC_MoveChild1,
/*  4138*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4141*/              OPC_MoveChild0,
/*  4142*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4145*/              OPC_MoveChild0,
/*  4146*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4149*/              OPC_MoveParent,
/*  4150*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4152*/              OPC_CheckType, MVT::v16i8,
/*  4154*/              OPC_MoveParent,
/*  4155*/              OPC_MoveParent,
/*  4156*/              OPC_MoveParent,
/*  4157*/              OPC_RecordChild1, // #2 = $Vm
/*  4158*/              OPC_MoveParent,
/*  4159*/              OPC_CheckType, MVT::v4i32,
/*  4161*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4163*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4166*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4169*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4180*/            /*Scope*/ 45, /*->4226*/
/*  4181*/              OPC_MoveChild0,
/*  4182*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4185*/              OPC_MoveChild0,
/*  4186*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4189*/              OPC_MoveChild0,
/*  4190*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4193*/              OPC_MoveParent,
/*  4194*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4196*/              OPC_CheckType, MVT::v16i8,
/*  4198*/              OPC_MoveParent,
/*  4199*/              OPC_MoveParent,
/*  4200*/              OPC_CheckChild1Same, 1,
/*  4202*/              OPC_MoveParent,
/*  4203*/              OPC_RecordChild1, // #2 = $Vm
/*  4204*/              OPC_MoveParent,
/*  4205*/              OPC_CheckType, MVT::v4i32,
/*  4207*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4209*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4212*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4215*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4226*/            0, /*End of Scope*/
/*  4227*/          /*Scope*/ 97, /*->4325*/
/*  4228*/            OPC_RecordChild0, // #2 = $Vm
/*  4229*/            OPC_MoveChild1,
/*  4230*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4233*/            OPC_Scope, 44, /*->4279*/ // 2 children in Scope
/*  4235*/              OPC_CheckChild0Same, 0,
/*  4237*/              OPC_MoveChild1,
/*  4238*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4241*/              OPC_MoveChild0,
/*  4242*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4245*/              OPC_MoveChild0,
/*  4246*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4249*/              OPC_MoveParent,
/*  4250*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4252*/              OPC_CheckType, MVT::v16i8,
/*  4254*/              OPC_MoveParent,
/*  4255*/              OPC_MoveParent,
/*  4256*/              OPC_MoveParent,
/*  4257*/              OPC_MoveParent,
/*  4258*/              OPC_CheckType, MVT::v4i32,
/*  4260*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4262*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4265*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4268*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4279*/            /*Scope*/ 44, /*->4324*/
/*  4280*/              OPC_MoveChild0,
/*  4281*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4284*/              OPC_MoveChild0,
/*  4285*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4288*/              OPC_MoveChild0,
/*  4289*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4292*/              OPC_MoveParent,
/*  4293*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4295*/              OPC_CheckType, MVT::v16i8,
/*  4297*/              OPC_MoveParent,
/*  4298*/              OPC_MoveParent,
/*  4299*/              OPC_CheckChild1Same, 0,
/*  4301*/              OPC_MoveParent,
/*  4302*/              OPC_MoveParent,
/*  4303*/              OPC_CheckType, MVT::v4i32,
/*  4305*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4307*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4310*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4313*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd))) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4324*/            0, /*End of Scope*/
/*  4325*/          /*Scope*/ 98, /*->4424*/
/*  4326*/            OPC_MoveChild0,
/*  4327*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4330*/            OPC_Scope, 45, /*->4377*/ // 2 children in Scope
/*  4332*/              OPC_CheckChild0Same, 0,
/*  4334*/              OPC_MoveChild1,
/*  4335*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4338*/              OPC_MoveChild0,
/*  4339*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4342*/              OPC_MoveChild0,
/*  4343*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4346*/              OPC_MoveParent,
/*  4347*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4349*/              OPC_CheckType, MVT::v16i8,
/*  4351*/              OPC_MoveParent,
/*  4352*/              OPC_MoveParent,
/*  4353*/              OPC_MoveParent,
/*  4354*/              OPC_RecordChild1, // #2 = $Vm
/*  4355*/              OPC_MoveParent,
/*  4356*/              OPC_CheckType, MVT::v4i32,
/*  4358*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4360*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4363*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4366*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4377*/            /*Scope*/ 45, /*->4423*/
/*  4378*/              OPC_MoveChild0,
/*  4379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4382*/              OPC_MoveChild0,
/*  4383*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4386*/              OPC_MoveChild0,
/*  4387*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4390*/              OPC_MoveParent,
/*  4391*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4393*/              OPC_CheckType, MVT::v16i8,
/*  4395*/              OPC_MoveParent,
/*  4396*/              OPC_MoveParent,
/*  4397*/              OPC_CheckChild1Same, 0,
/*  4399*/              OPC_MoveParent,
/*  4400*/              OPC_RecordChild1, // #2 = $Vm
/*  4401*/              OPC_MoveParent,
/*  4402*/              OPC_CheckType, MVT::v4i32,
/*  4404*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4406*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4409*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4412*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4423*/            0, /*End of Scope*/
/*  4424*/          0, /*End of Scope*/
/*  4425*/        /*Scope*/ 40|128,1/*168*/, /*->4595*/
/*  4427*/          OPC_MoveChild1,
/*  4428*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4431*/          OPC_Scope, 80, /*->4513*/ // 2 children in Scope
/*  4433*/            OPC_RecordChild0, // #1 = $Vd
/*  4434*/            OPC_MoveChild1,
/*  4435*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4438*/            OPC_MoveChild0,
/*  4439*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4442*/            OPC_MoveChild0,
/*  4443*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4446*/            OPC_MoveParent,
/*  4447*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4449*/            OPC_CheckType, MVT::v16i8,
/*  4451*/            OPC_MoveParent,
/*  4452*/            OPC_MoveParent,
/*  4453*/            OPC_MoveParent,
/*  4454*/            OPC_MoveParent,
/*  4455*/            OPC_MoveChild1,
/*  4456*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4459*/            OPC_Scope, 25, /*->4486*/ // 2 children in Scope
/*  4461*/              OPC_RecordChild0, // #2 = $Vn
/*  4462*/              OPC_CheckChild1Same, 1,
/*  4464*/              OPC_MoveParent,
/*  4465*/              OPC_CheckType, MVT::v4i32,
/*  4467*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4469*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4472*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4475*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4486*/            /*Scope*/ 25, /*->4512*/
/*  4487*/              OPC_CheckChild0Same, 1,
/*  4489*/              OPC_RecordChild1, // #2 = $Vn
/*  4490*/              OPC_MoveParent,
/*  4491*/              OPC_CheckType, MVT::v4i32,
/*  4493*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4495*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4498*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4501*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4512*/            0, /*End of Scope*/
/*  4513*/          /*Scope*/ 80, /*->4594*/
/*  4514*/            OPC_MoveChild0,
/*  4515*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4518*/            OPC_MoveChild0,
/*  4519*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4522*/            OPC_MoveChild0,
/*  4523*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4526*/            OPC_MoveParent,
/*  4527*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4529*/            OPC_CheckType, MVT::v16i8,
/*  4531*/            OPC_MoveParent,
/*  4532*/            OPC_MoveParent,
/*  4533*/            OPC_RecordChild1, // #1 = $Vd
/*  4534*/            OPC_MoveParent,
/*  4535*/            OPC_MoveParent,
/*  4536*/            OPC_MoveChild1,
/*  4537*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4540*/            OPC_Scope, 25, /*->4567*/ // 2 children in Scope
/*  4542*/              OPC_RecordChild0, // #2 = $Vn
/*  4543*/              OPC_CheckChild1Same, 1,
/*  4545*/              OPC_MoveParent,
/*  4546*/              OPC_CheckType, MVT::v4i32,
/*  4548*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4550*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4553*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4556*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd)), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4567*/            /*Scope*/ 25, /*->4593*/
/*  4568*/              OPC_CheckChild0Same, 1,
/*  4570*/              OPC_RecordChild1, // #2 = $Vn
/*  4571*/              OPC_MoveParent,
/*  4572*/              OPC_CheckType, MVT::v4i32,
/*  4574*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4576*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4579*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4582*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd)), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4593*/            0, /*End of Scope*/
/*  4594*/          0, /*End of Scope*/
/*  4595*/        0, /*End of Scope*/
/*  4596*/      /*Scope*/ 42|128,1/*170*/, /*->4768*/
/*  4598*/        OPC_MoveChild0,
/*  4599*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4602*/        OPC_Scope, 81, /*->4685*/ // 2 children in Scope
/*  4604*/          OPC_RecordChild0, // #0 = $Vd
/*  4605*/          OPC_MoveChild1,
/*  4606*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4609*/          OPC_MoveChild0,
/*  4610*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4613*/          OPC_MoveChild0,
/*  4614*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4617*/          OPC_MoveParent,
/*  4618*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4620*/          OPC_CheckType, MVT::v16i8,
/*  4622*/          OPC_MoveParent,
/*  4623*/          OPC_MoveParent,
/*  4624*/          OPC_MoveParent,
/*  4625*/          OPC_RecordChild1, // #1 = $Vm
/*  4626*/          OPC_MoveParent,
/*  4627*/          OPC_MoveChild1,
/*  4628*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4631*/          OPC_Scope, 25, /*->4658*/ // 2 children in Scope
/*  4633*/            OPC_RecordChild0, // #2 = $Vn
/*  4634*/            OPC_CheckChild1Same, 0,
/*  4636*/            OPC_MoveParent,
/*  4637*/            OPC_CheckType, MVT::v4i32,
/*  4639*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4641*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4644*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4647*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vm), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4658*/          /*Scope*/ 25, /*->4684*/
/*  4659*/            OPC_CheckChild0Same, 0,
/*  4661*/            OPC_RecordChild1, // #2 = $Vn
/*  4662*/            OPC_MoveParent,
/*  4663*/            OPC_CheckType, MVT::v4i32,
/*  4665*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4667*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4670*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4673*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vm), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4684*/          0, /*End of Scope*/
/*  4685*/        /*Scope*/ 81, /*->4767*/
/*  4686*/          OPC_MoveChild0,
/*  4687*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4690*/          OPC_MoveChild0,
/*  4691*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4694*/          OPC_MoveChild0,
/*  4695*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4698*/          OPC_MoveParent,
/*  4699*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4701*/          OPC_CheckType, MVT::v16i8,
/*  4703*/          OPC_MoveParent,
/*  4704*/          OPC_MoveParent,
/*  4705*/          OPC_RecordChild1, // #0 = $Vd
/*  4706*/          OPC_MoveParent,
/*  4707*/          OPC_RecordChild1, // #1 = $Vm
/*  4708*/          OPC_MoveParent,
/*  4709*/          OPC_MoveChild1,
/*  4710*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4713*/          OPC_Scope, 25, /*->4740*/ // 2 children in Scope
/*  4715*/            OPC_RecordChild0, // #2 = $Vn
/*  4716*/            OPC_CheckChild1Same, 0,
/*  4718*/            OPC_MoveParent,
/*  4719*/            OPC_CheckType, MVT::v4i32,
/*  4721*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4723*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4726*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4729*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd), QPR:{ *:[v4i32] }:$Vm), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4740*/          /*Scope*/ 25, /*->4766*/
/*  4741*/            OPC_CheckChild0Same, 0,
/*  4743*/            OPC_RecordChild1, // #2 = $Vn
/*  4744*/            OPC_MoveParent,
/*  4745*/            OPC_CheckType, MVT::v4i32,
/*  4747*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4749*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4752*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4755*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vd), QPR:{ *:[v4i32] }:$Vm), (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  4766*/          0, /*End of Scope*/
/*  4767*/        0, /*End of Scope*/
/*  4768*/      /*Scope*/ 17|128,4/*529*/, /*->5299*/
/*  4770*/        OPC_RecordChild0, // #0 = $Vn
/*  4771*/        OPC_Scope, 98|128,2/*354*/, /*->5128*/ // 2 children in Scope
/*  4774*/          OPC_RecordChild1, // #1 = $Vd
/*  4775*/          OPC_MoveParent,
/*  4776*/          OPC_MoveChild1,
/*  4777*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4780*/          OPC_Scope, 49, /*->4831*/ // 4 children in Scope
/*  4782*/            OPC_RecordChild0, // #2 = $Vm
/*  4783*/            OPC_MoveChild1,
/*  4784*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4787*/            OPC_MoveChild0,
/*  4788*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4791*/            OPC_MoveChild0,
/*  4792*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4795*/            OPC_MoveChild0,
/*  4796*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4799*/            OPC_MoveParent,
/*  4800*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4802*/            OPC_CheckType, MVT::v16i8,
/*  4804*/            OPC_MoveParent,
/*  4805*/            OPC_MoveParent,
/*  4806*/            OPC_CheckChild1Same, 1,
/*  4808*/            OPC_MoveParent,
/*  4809*/            OPC_MoveParent,
/*  4810*/            OPC_CheckType, MVT::v2i64,
/*  4812*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4814*/            OPC_EmitInteger, MVT::i32, 14, 
/*  4817*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4820*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd))) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  4831*/          /*Scope*/ 98, /*->4930*/
/*  4832*/            OPC_MoveChild0,
/*  4833*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4836*/            OPC_Scope, 45, /*->4883*/ // 2 children in Scope
/*  4838*/              OPC_CheckChild0Same, 1,
/*  4840*/              OPC_MoveChild1,
/*  4841*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4844*/              OPC_MoveChild0,
/*  4845*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4848*/              OPC_MoveChild0,
/*  4849*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4852*/              OPC_MoveParent,
/*  4853*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4855*/              OPC_CheckType, MVT::v16i8,
/*  4857*/              OPC_MoveParent,
/*  4858*/              OPC_MoveParent,
/*  4859*/              OPC_MoveParent,
/*  4860*/              OPC_RecordChild1, // #2 = $Vm
/*  4861*/              OPC_MoveParent,
/*  4862*/              OPC_CheckType, MVT::v2i64,
/*  4864*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4866*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4869*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4872*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v2i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  4883*/            /*Scope*/ 45, /*->4929*/
/*  4884*/              OPC_MoveChild0,
/*  4885*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4888*/              OPC_MoveChild0,
/*  4889*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4892*/              OPC_MoveChild0,
/*  4893*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4896*/              OPC_MoveParent,
/*  4897*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4899*/              OPC_CheckType, MVT::v16i8,
/*  4901*/              OPC_MoveParent,
/*  4902*/              OPC_MoveParent,
/*  4903*/              OPC_CheckChild1Same, 1,
/*  4905*/              OPC_MoveParent,
/*  4906*/              OPC_RecordChild1, // #2 = $Vm
/*  4907*/              OPC_MoveParent,
/*  4908*/              OPC_CheckType, MVT::v2i64,
/*  4910*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4912*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4915*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4918*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd), QPR:{ *:[v2i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  4929*/            0, /*End of Scope*/
/*  4930*/          /*Scope*/ 97, /*->5028*/
/*  4931*/            OPC_RecordChild0, // #2 = $Vm
/*  4932*/            OPC_MoveChild1,
/*  4933*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  4936*/            OPC_Scope, 44, /*->4982*/ // 2 children in Scope
/*  4938*/              OPC_CheckChild0Same, 0,
/*  4940*/              OPC_MoveChild1,
/*  4941*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4944*/              OPC_MoveChild0,
/*  4945*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4948*/              OPC_MoveChild0,
/*  4949*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4952*/              OPC_MoveParent,
/*  4953*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4955*/              OPC_CheckType, MVT::v16i8,
/*  4957*/              OPC_MoveParent,
/*  4958*/              OPC_MoveParent,
/*  4959*/              OPC_MoveParent,
/*  4960*/              OPC_MoveParent,
/*  4961*/              OPC_CheckType, MVT::v2i64,
/*  4963*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  4965*/              OPC_EmitInteger, MVT::i32, 14, 
/*  4968*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  4971*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)))) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  4982*/            /*Scope*/ 44, /*->5027*/
/*  4983*/              OPC_MoveChild0,
/*  4984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  4987*/              OPC_MoveChild0,
/*  4988*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  4991*/              OPC_MoveChild0,
/*  4992*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  4995*/              OPC_MoveParent,
/*  4996*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  4998*/              OPC_CheckType, MVT::v16i8,
/*  5000*/              OPC_MoveParent,
/*  5001*/              OPC_MoveParent,
/*  5002*/              OPC_CheckChild1Same, 0,
/*  5004*/              OPC_MoveParent,
/*  5005*/              OPC_MoveParent,
/*  5006*/              OPC_CheckType, MVT::v2i64,
/*  5008*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5010*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5013*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5016*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd))) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5027*/            0, /*End of Scope*/
/*  5028*/          /*Scope*/ 98, /*->5127*/
/*  5029*/            OPC_MoveChild0,
/*  5030*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5033*/            OPC_Scope, 45, /*->5080*/ // 2 children in Scope
/*  5035*/              OPC_CheckChild0Same, 0,
/*  5037*/              OPC_MoveChild1,
/*  5038*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5041*/              OPC_MoveChild0,
/*  5042*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5045*/              OPC_MoveChild0,
/*  5046*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5049*/              OPC_MoveParent,
/*  5050*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5052*/              OPC_CheckType, MVT::v16i8,
/*  5054*/              OPC_MoveParent,
/*  5055*/              OPC_MoveParent,
/*  5056*/              OPC_MoveParent,
/*  5057*/              OPC_RecordChild1, // #2 = $Vm
/*  5058*/              OPC_MoveParent,
/*  5059*/              OPC_CheckType, MVT::v2i64,
/*  5061*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5063*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5066*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5069*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v2i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5080*/            /*Scope*/ 45, /*->5126*/
/*  5081*/              OPC_MoveChild0,
/*  5082*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5085*/              OPC_MoveChild0,
/*  5086*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5089*/              OPC_MoveChild0,
/*  5090*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5093*/              OPC_MoveParent,
/*  5094*/              OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5096*/              OPC_CheckType, MVT::v16i8,
/*  5098*/              OPC_MoveParent,
/*  5099*/              OPC_MoveParent,
/*  5100*/              OPC_CheckChild1Same, 0,
/*  5102*/              OPC_MoveParent,
/*  5103*/              OPC_RecordChild1, // #2 = $Vm
/*  5104*/              OPC_MoveParent,
/*  5105*/              OPC_CheckType, MVT::v2i64,
/*  5107*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5109*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5112*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5115*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd), QPR:{ *:[v2i64] }:$Vm)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5126*/            0, /*End of Scope*/
/*  5127*/          0, /*End of Scope*/
/*  5128*/        /*Scope*/ 40|128,1/*168*/, /*->5298*/
/*  5130*/          OPC_MoveChild1,
/*  5131*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5134*/          OPC_Scope, 80, /*->5216*/ // 2 children in Scope
/*  5136*/            OPC_RecordChild0, // #1 = $Vd
/*  5137*/            OPC_MoveChild1,
/*  5138*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5141*/            OPC_MoveChild0,
/*  5142*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5145*/            OPC_MoveChild0,
/*  5146*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5149*/            OPC_MoveParent,
/*  5150*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5152*/            OPC_CheckType, MVT::v16i8,
/*  5154*/            OPC_MoveParent,
/*  5155*/            OPC_MoveParent,
/*  5156*/            OPC_MoveParent,
/*  5157*/            OPC_MoveParent,
/*  5158*/            OPC_MoveChild1,
/*  5159*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  5162*/            OPC_Scope, 25, /*->5189*/ // 2 children in Scope
/*  5164*/              OPC_RecordChild0, // #2 = $Vn
/*  5165*/              OPC_CheckChild1Same, 1,
/*  5167*/              OPC_MoveParent,
/*  5168*/              OPC_CheckType, MVT::v2i64,
/*  5170*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5172*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5175*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5178*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5189*/            /*Scope*/ 25, /*->5215*/
/*  5190*/              OPC_CheckChild0Same, 1,
/*  5192*/              OPC_RecordChild1, // #2 = $Vn
/*  5193*/              OPC_MoveParent,
/*  5194*/              OPC_CheckType, MVT::v2i64,
/*  5196*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5198*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5201*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5204*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5215*/            0, /*End of Scope*/
/*  5216*/          /*Scope*/ 80, /*->5297*/
/*  5217*/            OPC_MoveChild0,
/*  5218*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5221*/            OPC_MoveChild0,
/*  5222*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5225*/            OPC_MoveChild0,
/*  5226*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5229*/            OPC_MoveParent,
/*  5230*/            OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5232*/            OPC_CheckType, MVT::v16i8,
/*  5234*/            OPC_MoveParent,
/*  5235*/            OPC_MoveParent,
/*  5236*/            OPC_RecordChild1, // #1 = $Vd
/*  5237*/            OPC_MoveParent,
/*  5238*/            OPC_MoveParent,
/*  5239*/            OPC_MoveChild1,
/*  5240*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  5243*/            OPC_Scope, 25, /*->5270*/ // 2 children in Scope
/*  5245*/              OPC_RecordChild0, // #2 = $Vn
/*  5246*/              OPC_CheckChild1Same, 1,
/*  5248*/              OPC_MoveParent,
/*  5249*/              OPC_CheckType, MVT::v2i64,
/*  5251*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5253*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5256*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5259*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd)), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5270*/            /*Scope*/ 25, /*->5296*/
/*  5271*/              OPC_CheckChild0Same, 1,
/*  5273*/              OPC_RecordChild1, // #2 = $Vn
/*  5274*/              OPC_MoveParent,
/*  5275*/              OPC_CheckType, MVT::v2i64,
/*  5277*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5279*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5282*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5285*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd)), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn)) - Complexity = 22
                        // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5296*/            0, /*End of Scope*/
/*  5297*/          0, /*End of Scope*/
/*  5298*/        0, /*End of Scope*/
/*  5299*/      /*Scope*/ 42|128,1/*170*/, /*->5471*/
/*  5301*/        OPC_MoveChild0,
/*  5302*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5305*/        OPC_Scope, 81, /*->5388*/ // 2 children in Scope
/*  5307*/          OPC_RecordChild0, // #0 = $Vd
/*  5308*/          OPC_MoveChild1,
/*  5309*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5312*/          OPC_MoveChild0,
/*  5313*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5316*/          OPC_MoveChild0,
/*  5317*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5320*/          OPC_MoveParent,
/*  5321*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5323*/          OPC_CheckType, MVT::v16i8,
/*  5325*/          OPC_MoveParent,
/*  5326*/          OPC_MoveParent,
/*  5327*/          OPC_MoveParent,
/*  5328*/          OPC_RecordChild1, // #1 = $Vm
/*  5329*/          OPC_MoveParent,
/*  5330*/          OPC_MoveChild1,
/*  5331*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  5334*/          OPC_Scope, 25, /*->5361*/ // 2 children in Scope
/*  5336*/            OPC_RecordChild0, // #2 = $Vn
/*  5337*/            OPC_CheckChild1Same, 0,
/*  5339*/            OPC_MoveParent,
/*  5340*/            OPC_CheckType, MVT::v2i64,
/*  5342*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5344*/            OPC_EmitInteger, MVT::i32, 14, 
/*  5347*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5350*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v2i64] }:$Vm), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5361*/          /*Scope*/ 25, /*->5387*/
/*  5362*/            OPC_CheckChild0Same, 0,
/*  5364*/            OPC_RecordChild1, // #2 = $Vn
/*  5365*/            OPC_MoveParent,
/*  5366*/            OPC_CheckType, MVT::v2i64,
/*  5368*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5370*/            OPC_EmitInteger, MVT::i32, 14, 
/*  5373*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5376*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v2i64] }:$Vm), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5387*/          0, /*End of Scope*/
/*  5388*/        /*Scope*/ 81, /*->5470*/
/*  5389*/          OPC_MoveChild0,
/*  5390*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5393*/          OPC_MoveChild0,
/*  5394*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5397*/          OPC_MoveChild0,
/*  5398*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5401*/          OPC_MoveParent,
/*  5402*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5404*/          OPC_CheckType, MVT::v16i8,
/*  5406*/          OPC_MoveParent,
/*  5407*/          OPC_MoveParent,
/*  5408*/          OPC_RecordChild1, // #0 = $Vd
/*  5409*/          OPC_MoveParent,
/*  5410*/          OPC_RecordChild1, // #1 = $Vm
/*  5411*/          OPC_MoveParent,
/*  5412*/          OPC_MoveChild1,
/*  5413*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  5416*/          OPC_Scope, 25, /*->5443*/ // 2 children in Scope
/*  5418*/            OPC_RecordChild0, // #2 = $Vn
/*  5419*/            OPC_CheckChild1Same, 0,
/*  5421*/            OPC_MoveParent,
/*  5422*/            OPC_CheckType, MVT::v2i64,
/*  5424*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5426*/            OPC_EmitInteger, MVT::i32, 14, 
/*  5429*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5432*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd), QPR:{ *:[v2i64] }:$Vm), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vd)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5443*/          /*Scope*/ 25, /*->5469*/
/*  5444*/            OPC_CheckChild0Same, 0,
/*  5446*/            OPC_RecordChild1, // #2 = $Vn
/*  5447*/            OPC_MoveParent,
/*  5448*/            OPC_CheckType, MVT::v2i64,
/*  5450*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5452*/            OPC_EmitInteger, MVT::i32, 14, 
/*  5455*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5458*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v2i64] }:$Vd), QPR:{ *:[v2i64] }:$Vm), (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn)) - Complexity = 22
                      // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vd, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*  5469*/          0, /*End of Scope*/
/*  5470*/        0, /*End of Scope*/
/*  5471*/      0, /*End of Scope*/
/*  5472*/    /*Scope*/ 118, /*->5591*/
/*  5473*/      OPC_RecordChild0, // #0 = $Vn
/*  5474*/      OPC_MoveChild1,
/*  5475*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5478*/      OPC_Scope, 68, /*->5548*/ // 2 children in Scope
/*  5480*/        OPC_RecordChild0, // #1 = $Vm
/*  5481*/        OPC_MoveChild1,
/*  5482*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5485*/        OPC_MoveChild0,
/*  5486*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5489*/        OPC_MoveChild0,
/*  5490*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5493*/        OPC_MoveParent,
/*  5494*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5496*/        OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->5522
/*  5499*/          OPC_MoveParent,
/*  5500*/          OPC_MoveParent,
/*  5501*/          OPC_MoveParent,
/*  5502*/          OPC_CheckType, MVT::v2i32,
/*  5504*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5506*/          OPC_EmitInteger, MVT::i32, 14, 
/*  5509*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5512*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNd), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                    // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5522*/        /*SwitchType*/ 23, MVT::v16i8,// ->5547
/*  5524*/          OPC_MoveParent,
/*  5525*/          OPC_MoveParent,
/*  5526*/          OPC_MoveParent,
/*  5527*/          OPC_CheckType, MVT::v4i32,
/*  5529*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5531*/          OPC_EmitInteger, MVT::i32, 14, 
/*  5534*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5537*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNq), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                    // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5547*/        0, // EndSwitchType
/*  5548*/      /*Scope*/ 41, /*->5590*/
/*  5549*/        OPC_MoveChild0,
/*  5550*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5553*/        OPC_MoveChild0,
/*  5554*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5557*/        OPC_MoveChild0,
/*  5558*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5561*/        OPC_MoveParent,
/*  5562*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5564*/        OPC_CheckType, MVT::v8i8,
/*  5566*/        OPC_MoveParent,
/*  5567*/        OPC_MoveParent,
/*  5568*/        OPC_RecordChild1, // #1 = $Vm
/*  5569*/        OPC_MoveParent,
/*  5570*/        OPC_CheckType, MVT::v2i32,
/*  5572*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5574*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5577*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5580*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5590*/      0, /*End of Scope*/
/*  5591*/    /*Scope*/ 92, /*->5684*/
/*  5592*/      OPC_MoveChild0,
/*  5593*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5596*/      OPC_Scope, 42, /*->5640*/ // 2 children in Scope
/*  5598*/        OPC_RecordChild0, // #0 = $Vm
/*  5599*/        OPC_MoveChild1,
/*  5600*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5603*/        OPC_MoveChild0,
/*  5604*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5607*/        OPC_MoveChild0,
/*  5608*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5611*/        OPC_MoveParent,
/*  5612*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5614*/        OPC_CheckType, MVT::v8i8,
/*  5616*/        OPC_MoveParent,
/*  5617*/        OPC_MoveParent,
/*  5618*/        OPC_MoveParent,
/*  5619*/        OPC_RecordChild1, // #1 = $Vn
/*  5620*/        OPC_CheckType, MVT::v2i32,
/*  5622*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5624*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5630*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5640*/      /*Scope*/ 42, /*->5683*/
/*  5641*/        OPC_MoveChild0,
/*  5642*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5645*/        OPC_MoveChild0,
/*  5646*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5649*/        OPC_MoveChild0,
/*  5650*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5653*/        OPC_MoveParent,
/*  5654*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5656*/        OPC_CheckType, MVT::v8i8,
/*  5658*/        OPC_MoveParent,
/*  5659*/        OPC_MoveParent,
/*  5660*/        OPC_RecordChild1, // #0 = $Vm
/*  5661*/        OPC_MoveParent,
/*  5662*/        OPC_RecordChild1, // #1 = $Vn
/*  5663*/        OPC_CheckType, MVT::v2i32,
/*  5665*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5667*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5670*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5673*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5683*/      0, /*End of Scope*/
/*  5684*/    /*Scope*/ 46, /*->5731*/
/*  5685*/      OPC_RecordChild0, // #0 = $Vn
/*  5686*/      OPC_MoveChild1,
/*  5687*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5690*/      OPC_MoveChild0,
/*  5691*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5694*/      OPC_MoveChild0,
/*  5695*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5698*/      OPC_MoveChild0,
/*  5699*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5702*/      OPC_MoveParent,
/*  5703*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5705*/      OPC_CheckType, MVT::v16i8,
/*  5707*/      OPC_MoveParent,
/*  5708*/      OPC_MoveParent,
/*  5709*/      OPC_RecordChild1, // #1 = $Vm
/*  5710*/      OPC_MoveParent,
/*  5711*/      OPC_CheckType, MVT::v4i32,
/*  5713*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5715*/      OPC_EmitInteger, MVT::i32, 14, 
/*  5718*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5721*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNq), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5731*/    /*Scope*/ 92, /*->5824*/
/*  5732*/      OPC_MoveChild0,
/*  5733*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5736*/      OPC_Scope, 42, /*->5780*/ // 2 children in Scope
/*  5738*/        OPC_RecordChild0, // #0 = $Vm
/*  5739*/        OPC_MoveChild1,
/*  5740*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5743*/        OPC_MoveChild0,
/*  5744*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5747*/        OPC_MoveChild0,
/*  5748*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5751*/        OPC_MoveParent,
/*  5752*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5754*/        OPC_CheckType, MVT::v16i8,
/*  5756*/        OPC_MoveParent,
/*  5757*/        OPC_MoveParent,
/*  5758*/        OPC_MoveParent,
/*  5759*/        OPC_RecordChild1, // #1 = $Vn
/*  5760*/        OPC_CheckType, MVT::v4i32,
/*  5762*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5764*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5767*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5770*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5780*/      /*Scope*/ 42, /*->5823*/
/*  5781*/        OPC_MoveChild0,
/*  5782*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5785*/        OPC_MoveChild0,
/*  5786*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5789*/        OPC_MoveChild0,
/*  5790*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5793*/        OPC_MoveParent,
/*  5794*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5796*/        OPC_CheckType, MVT::v16i8,
/*  5798*/        OPC_MoveParent,
/*  5799*/        OPC_MoveParent,
/*  5800*/        OPC_RecordChild1, // #0 = $Vm
/*  5801*/        OPC_MoveParent,
/*  5802*/        OPC_RecordChild1, // #1 = $Vn
/*  5803*/        OPC_CheckType, MVT::v4i32,
/*  5805*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5807*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5810*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5813*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5823*/      0, /*End of Scope*/
/*  5824*/    /*Scope*/ 44, /*->5869*/
/*  5825*/      OPC_RecordChild0, // #0 = $Vn
/*  5826*/      OPC_RecordChild1, // #1 = $Vm
/*  5827*/      OPC_SwitchType /*2 cases */, 18, MVT::v2i32,// ->5848
/*  5830*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5832*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5835*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5838*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VORRd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5848*/      /*SwitchType*/ 18, MVT::v4i32,// ->5868
/*  5850*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5852*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5855*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5858*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VORRq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5868*/      0, // EndSwitchType
/*  5869*/    0, /*End of Scope*/
/*  5870*/  /*SwitchOpcode*/ 114|128,77/*9970*/, TARGET_VAL(ISD::ADD),// ->15844
/*  5874*/    OPC_Scope, 0|128,3/*384*/, /*->6261*/ // 51 children in Scope
/*  5877*/      OPC_RecordChild0, // #0 = $Rn
/*  5878*/      OPC_MoveChild1,
/*  5879*/      OPC_Scope, 46, /*->5927*/ // 8 children in Scope
/*  5881*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  5884*/        OPC_MoveChild0,
/*  5885*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  5888*/        OPC_RecordChild0, // #1 = $Rm
/*  5889*/        OPC_RecordChild1, // #2 = $rot
/*  5890*/        OPC_MoveChild1,
/*  5891*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5894*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  5896*/        OPC_CheckType, MVT::i32,
/*  5898*/        OPC_MoveParent,
/*  5899*/        OPC_MoveParent,
/*  5900*/        OPC_MoveParent,
/*  5901*/        OPC_CheckType, MVT::i32,
/*  5903*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  5905*/        OPC_EmitConvertToTarget, 2,
/*  5907*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  5910*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5913*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5916*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] })) - Complexity = 34
                  // Dst: (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  5927*/      /*Scope*/ 47, /*->5975*/
/*  5928*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  5932*/        OPC_MoveChild0,
/*  5933*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  5936*/        OPC_RecordChild0, // #1 = $Rm
/*  5937*/        OPC_RecordChild1, // #2 = $rot
/*  5938*/        OPC_MoveChild1,
/*  5939*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5942*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  5944*/        OPC_CheckType, MVT::i32,
/*  5946*/        OPC_MoveParent,
/*  5947*/        OPC_MoveParent,
/*  5948*/        OPC_MoveParent,
/*  5949*/        OPC_CheckType, MVT::i32,
/*  5951*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  5953*/        OPC_EmitConvertToTarget, 2,
/*  5955*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  5958*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5961*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5964*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] })) - Complexity = 34
                  // Dst: (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  5975*/      /*Scope*/ 46, /*->6022*/
/*  5976*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  5979*/        OPC_MoveChild0,
/*  5980*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  5983*/        OPC_RecordChild0, // #1 = $Rm
/*  5984*/        OPC_RecordChild1, // #2 = $rot
/*  5985*/        OPC_MoveChild1,
/*  5986*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5989*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  5991*/        OPC_CheckType, MVT::i32,
/*  5993*/        OPC_MoveParent,
/*  5994*/        OPC_MoveParent,
/*  5995*/        OPC_MoveParent,
/*  5996*/        OPC_CheckType, MVT::i32,
/*  5998*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6000*/        OPC_EmitConvertToTarget, 2,
/*  6002*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6005*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6008*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6011*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] })) - Complexity = 34
                  // Dst: (UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6022*/      /*Scope*/ 47, /*->6070*/
/*  6023*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6027*/        OPC_MoveChild0,
/*  6028*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6031*/        OPC_RecordChild0, // #1 = $Rm
/*  6032*/        OPC_RecordChild1, // #2 = $rot
/*  6033*/        OPC_MoveChild1,
/*  6034*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6037*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  6039*/        OPC_CheckType, MVT::i32,
/*  6041*/        OPC_MoveParent,
/*  6042*/        OPC_MoveParent,
/*  6043*/        OPC_MoveParent,
/*  6044*/        OPC_CheckType, MVT::i32,
/*  6046*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6048*/        OPC_EmitConvertToTarget, 2,
/*  6050*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6053*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6056*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6059*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), 65535:{ *:[i32] })) - Complexity = 34
                  // Dst: (UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6070*/      /*Scope*/ 46, /*->6117*/
/*  6071*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6074*/        OPC_MoveChild0,
/*  6075*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6078*/        OPC_RecordChild0, // #1 = $Rm
/*  6079*/        OPC_RecordChild1, // #2 = $rot
/*  6080*/        OPC_MoveChild1,
/*  6081*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6084*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6086*/        OPC_CheckType, MVT::i32,
/*  6088*/        OPC_MoveParent,
/*  6089*/        OPC_MoveParent,
/*  6090*/        OPC_MoveParent,
/*  6091*/        OPC_CheckType, MVT::i32,
/*  6093*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6095*/        OPC_EmitConvertToTarget, 2,
/*  6097*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6100*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6106*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] })) - Complexity = 34
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6117*/      /*Scope*/ 47, /*->6165*/
/*  6118*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6122*/        OPC_MoveChild0,
/*  6123*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6126*/        OPC_RecordChild0, // #1 = $Rm
/*  6127*/        OPC_RecordChild1, // #2 = $rot
/*  6128*/        OPC_MoveChild1,
/*  6129*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6132*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6134*/        OPC_CheckType, MVT::i32,
/*  6136*/        OPC_MoveParent,
/*  6137*/        OPC_MoveParent,
/*  6138*/        OPC_MoveParent,
/*  6139*/        OPC_CheckType, MVT::i32,
/*  6141*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6143*/        OPC_EmitConvertToTarget, 2,
/*  6145*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6148*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6154*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] })) - Complexity = 34
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6165*/      /*Scope*/ 46, /*->6212*/
/*  6166*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6169*/        OPC_MoveChild0,
/*  6170*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6173*/        OPC_RecordChild0, // #1 = $Rm
/*  6174*/        OPC_RecordChild1, // #2 = $rot
/*  6175*/        OPC_MoveChild1,
/*  6176*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6179*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6181*/        OPC_CheckType, MVT::i32,
/*  6183*/        OPC_MoveParent,
/*  6184*/        OPC_MoveParent,
/*  6185*/        OPC_MoveParent,
/*  6186*/        OPC_CheckType, MVT::i32,
/*  6188*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6190*/        OPC_EmitConvertToTarget, 2,
/*  6192*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6195*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6198*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6201*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] })) - Complexity = 34
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6212*/      /*Scope*/ 47, /*->6260*/
/*  6213*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6217*/        OPC_MoveChild0,
/*  6218*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6221*/        OPC_RecordChild0, // #1 = $Rm
/*  6222*/        OPC_RecordChild1, // #2 = $rot
/*  6223*/        OPC_MoveChild1,
/*  6224*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6227*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  6229*/        OPC_CheckType, MVT::i32,
/*  6231*/        OPC_MoveParent,
/*  6232*/        OPC_MoveParent,
/*  6233*/        OPC_MoveParent,
/*  6234*/        OPC_CheckType, MVT::i32,
/*  6236*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6238*/        OPC_EmitConvertToTarget, 2,
/*  6240*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6243*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6246*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6249*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), 65535:{ *:[i32] })) - Complexity = 34
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6260*/      0, /*End of Scope*/
/*  6261*/    /*Scope*/ 7|128,3/*391*/, /*->6654*/
/*  6263*/      OPC_MoveChild0,
/*  6264*/      OPC_Scope, 47, /*->6313*/ // 8 children in Scope
/*  6266*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6269*/        OPC_MoveChild0,
/*  6270*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6273*/        OPC_RecordChild0, // #0 = $Rm
/*  6274*/        OPC_RecordChild1, // #1 = $rot
/*  6275*/        OPC_MoveChild1,
/*  6276*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6279*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6281*/        OPC_CheckType, MVT::i32,
/*  6283*/        OPC_MoveParent,
/*  6284*/        OPC_MoveParent,
/*  6285*/        OPC_MoveParent,
/*  6286*/        OPC_RecordChild1, // #2 = $Rn
/*  6287*/        OPC_CheckType, MVT::i32,
/*  6289*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6291*/        OPC_EmitConvertToTarget, 1,
/*  6293*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6296*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6299*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6302*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  6313*/      /*Scope*/ 48, /*->6362*/
/*  6314*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6318*/        OPC_MoveChild0,
/*  6319*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6322*/        OPC_RecordChild0, // #0 = $Rm
/*  6323*/        OPC_RecordChild1, // #1 = $rot
/*  6324*/        OPC_MoveChild1,
/*  6325*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6328*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6330*/        OPC_CheckType, MVT::i32,
/*  6332*/        OPC_MoveParent,
/*  6333*/        OPC_MoveParent,
/*  6334*/        OPC_MoveParent,
/*  6335*/        OPC_RecordChild1, // #2 = $Rn
/*  6336*/        OPC_CheckType, MVT::i32,
/*  6338*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6340*/        OPC_EmitConvertToTarget, 1,
/*  6342*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6345*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6348*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6351*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  6362*/      /*Scope*/ 47, /*->6410*/
/*  6363*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6366*/        OPC_MoveChild0,
/*  6367*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6370*/        OPC_RecordChild0, // #0 = $Rm
/*  6371*/        OPC_RecordChild1, // #1 = $rot
/*  6372*/        OPC_MoveChild1,
/*  6373*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6376*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6378*/        OPC_CheckType, MVT::i32,
/*  6380*/        OPC_MoveParent,
/*  6381*/        OPC_MoveParent,
/*  6382*/        OPC_MoveParent,
/*  6383*/        OPC_RecordChild1, // #2 = $Rn
/*  6384*/        OPC_CheckType, MVT::i32,
/*  6386*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6388*/        OPC_EmitConvertToTarget, 1,
/*  6390*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6393*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6396*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6399*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6410*/      /*Scope*/ 48, /*->6459*/
/*  6411*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6415*/        OPC_MoveChild0,
/*  6416*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6419*/        OPC_RecordChild0, // #0 = $Rm
/*  6420*/        OPC_RecordChild1, // #1 = $rot
/*  6421*/        OPC_MoveChild1,
/*  6422*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6425*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  6427*/        OPC_CheckType, MVT::i32,
/*  6429*/        OPC_MoveParent,
/*  6430*/        OPC_MoveParent,
/*  6431*/        OPC_MoveParent,
/*  6432*/        OPC_RecordChild1, // #2 = $Rn
/*  6433*/        OPC_CheckType, MVT::i32,
/*  6435*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6437*/        OPC_EmitConvertToTarget, 1,
/*  6439*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6442*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6448*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6459*/      /*Scope*/ 47, /*->6507*/
/*  6460*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6463*/        OPC_MoveChild0,
/*  6464*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6467*/        OPC_RecordChild0, // #0 = $Rm
/*  6468*/        OPC_RecordChild1, // #1 = $rot
/*  6469*/        OPC_MoveChild1,
/*  6470*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6473*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6475*/        OPC_CheckType, MVT::i32,
/*  6477*/        OPC_MoveParent,
/*  6478*/        OPC_MoveParent,
/*  6479*/        OPC_MoveParent,
/*  6480*/        OPC_RecordChild1, // #2 = $Rn
/*  6481*/        OPC_CheckType, MVT::i32,
/*  6483*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6485*/        OPC_EmitConvertToTarget, 1,
/*  6487*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6490*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6493*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6496*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6507*/      /*Scope*/ 48, /*->6556*/
/*  6508*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6512*/        OPC_MoveChild0,
/*  6513*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6516*/        OPC_RecordChild0, // #0 = $Rm
/*  6517*/        OPC_RecordChild1, // #1 = $rot
/*  6518*/        OPC_MoveChild1,
/*  6519*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6522*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6524*/        OPC_CheckType, MVT::i32,
/*  6526*/        OPC_MoveParent,
/*  6527*/        OPC_MoveParent,
/*  6528*/        OPC_MoveParent,
/*  6529*/        OPC_RecordChild1, // #2 = $Rn
/*  6530*/        OPC_CheckType, MVT::i32,
/*  6532*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6534*/        OPC_EmitConvertToTarget, 1,
/*  6536*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6539*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6542*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6545*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6556*/      /*Scope*/ 47, /*->6604*/
/*  6557*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6560*/        OPC_MoveChild0,
/*  6561*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6564*/        OPC_RecordChild0, // #0 = $Rm
/*  6565*/        OPC_RecordChild1, // #1 = $rot
/*  6566*/        OPC_MoveChild1,
/*  6567*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6570*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6572*/        OPC_CheckType, MVT::i32,
/*  6574*/        OPC_MoveParent,
/*  6575*/        OPC_MoveParent,
/*  6576*/        OPC_MoveParent,
/*  6577*/        OPC_RecordChild1, // #2 = $Rn
/*  6578*/        OPC_CheckType, MVT::i32,
/*  6580*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6582*/        OPC_EmitConvertToTarget, 1,
/*  6584*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6587*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6590*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6593*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6604*/      /*Scope*/ 48, /*->6653*/
/*  6605*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6609*/        OPC_MoveChild0,
/*  6610*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6613*/        OPC_RecordChild0, // #0 = $Rm
/*  6614*/        OPC_RecordChild1, // #1 = $rot
/*  6615*/        OPC_MoveChild1,
/*  6616*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6619*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  6621*/        OPC_CheckType, MVT::i32,
/*  6623*/        OPC_MoveParent,
/*  6624*/        OPC_MoveParent,
/*  6625*/        OPC_MoveParent,
/*  6626*/        OPC_RecordChild1, // #2 = $Rn
/*  6627*/        OPC_CheckType, MVT::i32,
/*  6629*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6631*/        OPC_EmitConvertToTarget, 1,
/*  6633*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6636*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6639*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6642*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 34
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  6653*/      0, /*End of Scope*/
/*  6654*/    /*Scope*/ 126, /*->6781*/
/*  6655*/      OPC_RecordChild0, // #0 = $Rn
/*  6656*/      OPC_MoveChild1,
/*  6657*/      OPC_Scope, 29, /*->6688*/ // 4 children in Scope
/*  6659*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6662*/        OPC_RecordChild0, // #1 = $Rm
/*  6663*/        OPC_MoveParent,
/*  6664*/        OPC_CheckType, MVT::i32,
/*  6666*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6668*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6671*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6674*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6677*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) - Complexity = 27
                  // Dst: (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6688*/      /*Scope*/ 30, /*->6719*/
/*  6689*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6693*/        OPC_RecordChild0, // #1 = $Rm
/*  6694*/        OPC_MoveParent,
/*  6695*/        OPC_CheckType, MVT::i32,
/*  6697*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6699*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6702*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6705*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6708*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) - Complexity = 27
                  // Dst: (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6719*/      /*Scope*/ 29, /*->6749*/
/*  6720*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6723*/        OPC_RecordChild0, // #1 = $Rm
/*  6724*/        OPC_MoveParent,
/*  6725*/        OPC_CheckType, MVT::i32,
/*  6727*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6729*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6732*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6735*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6738*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) - Complexity = 27
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6749*/      /*Scope*/ 30, /*->6780*/
/*  6750*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6754*/        OPC_RecordChild0, // #1 = $Rm
/*  6755*/        OPC_MoveParent,
/*  6756*/        OPC_CheckType, MVT::i32,
/*  6758*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6760*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6763*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6766*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6769*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) - Complexity = 27
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6780*/      0, /*End of Scope*/
/*  6781*/    /*Scope*/ 1|128,1/*129*/, /*->6912*/
/*  6783*/      OPC_MoveChild0,
/*  6784*/      OPC_Scope, 30, /*->6816*/ // 4 children in Scope
/*  6786*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6789*/        OPC_RecordChild0, // #0 = $Rm
/*  6790*/        OPC_MoveParent,
/*  6791*/        OPC_RecordChild1, // #1 = $Rn
/*  6792*/        OPC_CheckType, MVT::i32,
/*  6794*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6796*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6799*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6802*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6805*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 27
                  // Dst: (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6816*/      /*Scope*/ 31, /*->6848*/
/*  6817*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6821*/        OPC_RecordChild0, // #0 = $Rm
/*  6822*/        OPC_MoveParent,
/*  6823*/        OPC_RecordChild1, // #1 = $Rn
/*  6824*/        OPC_CheckType, MVT::i32,
/*  6826*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6828*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6831*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6834*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6837*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 27
                  // Dst: (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6848*/      /*Scope*/ 30, /*->6879*/
/*  6849*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6852*/        OPC_RecordChild0, // #0 = $Rm
/*  6853*/        OPC_MoveParent,
/*  6854*/        OPC_RecordChild1, // #1 = $Rn
/*  6855*/        OPC_CheckType, MVT::i32,
/*  6857*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6859*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6862*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6865*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6868*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 27
                  // Dst: (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6879*/      /*Scope*/ 31, /*->6911*/
/*  6880*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6884*/        OPC_RecordChild0, // #0 = $Rm
/*  6885*/        OPC_MoveParent,
/*  6886*/        OPC_RecordChild1, // #1 = $Rn
/*  6887*/        OPC_CheckType, MVT::i32,
/*  6889*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6891*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6894*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6897*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6900*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 27
                  // Dst: (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  6911*/      0, /*End of Scope*/
/*  6912*/    /*Scope*/ 108, /*->7021*/
/*  6913*/      OPC_RecordChild0, // #0 = $Rn
/*  6914*/      OPC_MoveChild1,
/*  6915*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  6918*/      OPC_MoveChild0,
/*  6919*/      OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/*  6922*/      OPC_MoveChild0,
/*  6923*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::SRL),// ->6972
/*  6927*/        OPC_RecordChild0, // #1 = $Rm
/*  6928*/        OPC_CheckChild1Integer, 24, 
/*  6930*/        OPC_CheckChild1Type, MVT::i32,
/*  6932*/        OPC_MoveParent,
/*  6933*/        OPC_MoveChild1,
/*  6934*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  6937*/        OPC_CheckChild0Same, 1,
/*  6939*/        OPC_CheckChild1Integer, 8, 
/*  6941*/        OPC_CheckChild1Type, MVT::i32,
/*  6943*/        OPC_MoveParent,
/*  6944*/        OPC_MoveParent,
/*  6945*/        OPC_MoveChild1,
/*  6946*/        OPC_CheckValueType, MVT::i16,
/*  6948*/        OPC_MoveParent,
/*  6949*/        OPC_MoveParent,
/*  6950*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  6952*/        OPC_EmitInteger, MVT::i32, 3, 
/*  6955*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6958*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6961*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (or:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] })), i16:{ *:[Other] })) - Complexity = 25
                  // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  6972*/      /*SwitchOpcode*/ 45, TARGET_VAL(ISD::SHL),// ->7020
/*  6975*/        OPC_RecordChild0, // #1 = $Rm
/*  6976*/        OPC_CheckChild1Integer, 8, 
/*  6978*/        OPC_CheckChild1Type, MVT::i32,
/*  6980*/        OPC_MoveParent,
/*  6981*/        OPC_MoveChild1,
/*  6982*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  6985*/        OPC_CheckChild0Same, 1,
/*  6987*/        OPC_CheckChild1Integer, 24, 
/*  6989*/        OPC_CheckChild1Type, MVT::i32,
/*  6991*/        OPC_MoveParent,
/*  6992*/        OPC_MoveParent,
/*  6993*/        OPC_MoveChild1,
/*  6994*/        OPC_CheckValueType, MVT::i16,
/*  6996*/        OPC_MoveParent,
/*  6997*/        OPC_MoveParent,
/*  6998*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7000*/        OPC_EmitInteger, MVT::i32, 3, 
/*  7003*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7006*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7009*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (or:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] })), i16:{ *:[Other] })) - Complexity = 25
                  // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  7020*/      0, // EndSwitchOpcode
/*  7021*/    /*Scope*/ 109, /*->7131*/
/*  7022*/      OPC_MoveChild0,
/*  7023*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7026*/      OPC_MoveChild0,
/*  7027*/      OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/*  7030*/      OPC_MoveChild0,
/*  7031*/      OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::SRL),// ->7081
/*  7035*/        OPC_RecordChild0, // #0 = $Rm
/*  7036*/        OPC_CheckChild1Integer, 24, 
/*  7038*/        OPC_CheckChild1Type, MVT::i32,
/*  7040*/        OPC_MoveParent,
/*  7041*/        OPC_MoveChild1,
/*  7042*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7045*/        OPC_CheckChild0Same, 0,
/*  7047*/        OPC_CheckChild1Integer, 8, 
/*  7049*/        OPC_CheckChild1Type, MVT::i32,
/*  7051*/        OPC_MoveParent,
/*  7052*/        OPC_MoveParent,
/*  7053*/        OPC_MoveChild1,
/*  7054*/        OPC_CheckValueType, MVT::i16,
/*  7056*/        OPC_MoveParent,
/*  7057*/        OPC_MoveParent,
/*  7058*/        OPC_RecordChild1, // #1 = $Rn
/*  7059*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7061*/        OPC_EmitInteger, MVT::i32, 3, 
/*  7064*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7067*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7070*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (or:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] })), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 25
                  // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  7081*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SHL),// ->7130
/*  7084*/        OPC_RecordChild0, // #0 = $Rm
/*  7085*/        OPC_CheckChild1Integer, 8, 
/*  7087*/        OPC_CheckChild1Type, MVT::i32,
/*  7089*/        OPC_MoveParent,
/*  7090*/        OPC_MoveChild1,
/*  7091*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7094*/        OPC_CheckChild0Same, 0,
/*  7096*/        OPC_CheckChild1Integer, 24, 
/*  7098*/        OPC_CheckChild1Type, MVT::i32,
/*  7100*/        OPC_MoveParent,
/*  7101*/        OPC_MoveParent,
/*  7102*/        OPC_MoveChild1,
/*  7103*/        OPC_CheckValueType, MVT::i16,
/*  7105*/        OPC_MoveParent,
/*  7106*/        OPC_MoveParent,
/*  7107*/        OPC_RecordChild1, // #1 = $Rn
/*  7108*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7110*/        OPC_EmitInteger, MVT::i32, 3, 
/*  7113*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7116*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7119*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (or:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] })), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 25
                  // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  7130*/      0, // EndSwitchOpcode
/*  7131*/    /*Scope*/ 70, /*->7202*/
/*  7132*/      OPC_RecordChild0, // #0 = $Ra
/*  7133*/      OPC_MoveChild1,
/*  7134*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7137*/      OPC_MoveChild0,
/*  7138*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7141*/      OPC_RecordChild0, // #1 = $Rn
/*  7142*/      OPC_CheckChild1Integer, 16, 
/*  7144*/      OPC_CheckChild1Type, MVT::i32,
/*  7146*/      OPC_MoveParent,
/*  7147*/      OPC_MoveChild1,
/*  7148*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7151*/      OPC_RecordChild0, // #2 = $Rm
/*  7152*/      OPC_CheckChild1Integer, 16, 
/*  7154*/      OPC_CheckChild1Type, MVT::i32,
/*  7156*/      OPC_MoveParent,
/*  7157*/      OPC_MoveParent,
/*  7158*/      OPC_CheckType, MVT::i32,
/*  7160*/      OPC_Scope, 19, /*->7181*/ // 2 children in Scope
/*  7162*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7164*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7167*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7170*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) - Complexity = 22
                  // Dst: (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7181*/      /*Scope*/ 19, /*->7201*/
/*  7182*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7184*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7187*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7190*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) - Complexity = 22
                  // Dst: (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7201*/      0, /*End of Scope*/
/*  7202*/    /*Scope*/ 70, /*->7273*/
/*  7203*/      OPC_MoveChild0,
/*  7204*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7207*/      OPC_MoveChild0,
/*  7208*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7211*/      OPC_RecordChild0, // #0 = $Rn
/*  7212*/      OPC_CheckChild1Integer, 16, 
/*  7214*/      OPC_CheckChild1Type, MVT::i32,
/*  7216*/      OPC_MoveParent,
/*  7217*/      OPC_MoveChild1,
/*  7218*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7221*/      OPC_RecordChild0, // #1 = $Rm
/*  7222*/      OPC_CheckChild1Integer, 16, 
/*  7224*/      OPC_CheckChild1Type, MVT::i32,
/*  7226*/      OPC_MoveParent,
/*  7227*/      OPC_MoveParent,
/*  7228*/      OPC_RecordChild1, // #2 = $Ra
/*  7229*/      OPC_CheckType, MVT::i32,
/*  7231*/      OPC_Scope, 19, /*->7252*/ // 2 children in Scope
/*  7233*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7235*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7238*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7241*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] })), GPR:{ *:[i32] }:$Ra) - Complexity = 22
                  // Dst: (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7252*/      /*Scope*/ 19, /*->7272*/
/*  7253*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7255*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7258*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7261*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 22
                  // Dst: (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7272*/      0, /*End of Scope*/
/*  7273*/    /*Scope*/ 4|128,1/*132*/, /*->7407*/
/*  7275*/      OPC_RecordChild0, // #0 = $Ra
/*  7276*/      OPC_MoveChild1,
/*  7277*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7280*/      OPC_MoveChild0,
/*  7281*/      OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->7344
/*  7285*/        OPC_RecordChild0, // #1 = $Rn
/*  7286*/        OPC_MoveChild1,
/*  7287*/        OPC_CheckValueType, MVT::i16,
/*  7289*/        OPC_MoveParent,
/*  7290*/        OPC_MoveParent,
/*  7291*/        OPC_MoveChild1,
/*  7292*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7295*/        OPC_RecordChild0, // #2 = $Rm
/*  7296*/        OPC_CheckChild1Integer, 16, 
/*  7298*/        OPC_CheckChild1Type, MVT::i32,
/*  7300*/        OPC_MoveParent,
/*  7301*/        OPC_MoveParent,
/*  7302*/        OPC_Scope, 19, /*->7323*/ // 2 children in Scope
/*  7304*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7306*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7309*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7312*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) - Complexity = 17
                    // Dst: (SMLABT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7323*/        /*Scope*/ 19, /*->7343*/
/*  7324*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7326*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7329*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7332*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) - Complexity = 17
                    // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7343*/        0, /*End of Scope*/
/*  7344*/      /*SwitchOpcode*/ 59, TARGET_VAL(ISD::SRA),// ->7406
/*  7347*/        OPC_RecordChild0, // #1 = $Rn
/*  7348*/        OPC_CheckChild1Integer, 16, 
/*  7350*/        OPC_CheckChild1Type, MVT::i32,
/*  7352*/        OPC_MoveParent,
/*  7353*/        OPC_MoveChild1,
/*  7354*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7357*/        OPC_RecordChild0, // #2 = $Rm
/*  7358*/        OPC_MoveChild1,
/*  7359*/        OPC_CheckValueType, MVT::i16,
/*  7361*/        OPC_MoveParent,
/*  7362*/        OPC_MoveParent,
/*  7363*/        OPC_MoveParent,
/*  7364*/        OPC_Scope, 19, /*->7385*/ // 2 children in Scope
/*  7366*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7368*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7371*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7374*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATB), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i16:{ *:[Other] }))) - Complexity = 17
                    // Dst: (SMLATB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7385*/        /*Scope*/ 19, /*->7405*/
/*  7386*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7388*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7391*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7394*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATB), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }))) - Complexity = 17
                    // Dst: (t2SMLATB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7405*/        0, /*End of Scope*/
/*  7406*/      0, // EndSwitchOpcode
/*  7407*/    /*Scope*/ 5|128,1/*133*/, /*->7542*/
/*  7409*/      OPC_MoveChild0,
/*  7410*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7413*/      OPC_MoveChild0,
/*  7414*/      OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->7478
/*  7418*/        OPC_RecordChild0, // #0 = $Rn
/*  7419*/        OPC_MoveChild1,
/*  7420*/        OPC_CheckValueType, MVT::i16,
/*  7422*/        OPC_MoveParent,
/*  7423*/        OPC_MoveParent,
/*  7424*/        OPC_MoveChild1,
/*  7425*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7428*/        OPC_RecordChild0, // #1 = $Rm
/*  7429*/        OPC_CheckChild1Integer, 16, 
/*  7431*/        OPC_CheckChild1Type, MVT::i32,
/*  7433*/        OPC_MoveParent,
/*  7434*/        OPC_MoveParent,
/*  7435*/        OPC_RecordChild1, // #2 = $Ra
/*  7436*/        OPC_Scope, 19, /*->7457*/ // 2 children in Scope
/*  7438*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7440*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7446*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] })), GPR:{ *:[i32] }:$Ra) - Complexity = 17
                    // Dst: (SMLABT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7457*/        /*Scope*/ 19, /*->7477*/
/*  7458*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7460*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7463*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7466*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 17
                    // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7477*/        0, /*End of Scope*/
/*  7478*/      /*SwitchOpcode*/ 60, TARGET_VAL(ISD::SRA),// ->7541
/*  7481*/        OPC_RecordChild0, // #0 = $Rm
/*  7482*/        OPC_CheckChild1Integer, 16, 
/*  7484*/        OPC_CheckChild1Type, MVT::i32,
/*  7486*/        OPC_MoveParent,
/*  7487*/        OPC_MoveChild1,
/*  7488*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7491*/        OPC_RecordChild0, // #1 = $Rn
/*  7492*/        OPC_MoveChild1,
/*  7493*/        OPC_CheckValueType, MVT::i16,
/*  7495*/        OPC_MoveParent,
/*  7496*/        OPC_MoveParent,
/*  7497*/        OPC_MoveParent,
/*  7498*/        OPC_RecordChild1, // #2 = $Ra
/*  7499*/        OPC_Scope, 19, /*->7520*/ // 2 children in Scope
/*  7501*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7503*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7506*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7509*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, i16:{ *:[Other] })), GPR:{ *:[i32] }:$Ra) - Complexity = 17
                    // Dst: (SMLABT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  7520*/        /*Scope*/ 19, /*->7540*/
/*  7521*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7523*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7526*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7529*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 17
                    // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7540*/        0, /*End of Scope*/
/*  7541*/      0, // EndSwitchOpcode
/*  7542*/    /*Scope*/ 97|128,1/*225*/, /*->7769*/
/*  7544*/      OPC_RecordChild0, // #0 = $Rn
/*  7545*/      OPC_Scope, 30, /*->7577*/ // 3 children in Scope
/*  7547*/        OPC_RecordChild1, // #1 = $shift
/*  7548*/        OPC_CheckType, MVT::i32,
/*  7550*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  7552*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/*  7555*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7558*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7561*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7564*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDrsr), 0,
                      MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                  // Dst: (ADDrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/*  7577*/      /*Scope*/ 30|128,1/*158*/, /*->7737*/
/*  7579*/        OPC_MoveChild1,
/*  7580*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7583*/        OPC_Scope, 37, /*->7622*/ // 4 children in Scope
/*  7585*/          OPC_RecordChild0, // #1 = $a
/*  7586*/          OPC_MoveChild0,
/*  7587*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7589*/          OPC_MoveParent,
/*  7590*/          OPC_MoveChild1,
/*  7591*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7594*/          OPC_RecordChild0, // #2 = $b
/*  7595*/          OPC_CheckChild1Integer, 16, 
/*  7597*/          OPC_CheckChild1Type, MVT::i32,
/*  7599*/          OPC_MoveParent,
/*  7600*/          OPC_MoveParent,
/*  7601*/          OPC_CheckType, MVT::i32,
/*  7603*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7605*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7608*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7611*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$acc, (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, (sra:{ *:[i32] } GPR:{ *:[i32] }:$b, 16:{ *:[i32] }))) - Complexity = 15
                    // Dst: (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  7622*/        /*Scope*/ 37, /*->7660*/
/*  7623*/          OPC_MoveChild0,
/*  7624*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7627*/          OPC_RecordChild0, // #1 = $a
/*  7628*/          OPC_CheckChild1Integer, 16, 
/*  7630*/          OPC_CheckChild1Type, MVT::i32,
/*  7632*/          OPC_MoveParent,
/*  7633*/          OPC_RecordChild1, // #2 = $b
/*  7634*/          OPC_MoveChild1,
/*  7635*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7637*/          OPC_MoveParent,
/*  7638*/          OPC_MoveParent,
/*  7639*/          OPC_CheckType, MVT::i32,
/*  7641*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7643*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7646*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7649*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATB), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$acc, (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$a, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$b)) - Complexity = 15
                    // Dst: (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  7660*/        /*Scope*/ 37, /*->7698*/
/*  7661*/          OPC_RecordChild0, // #1 = $Rn
/*  7662*/          OPC_MoveChild0,
/*  7663*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7665*/          OPC_MoveParent,
/*  7666*/          OPC_MoveChild1,
/*  7667*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7670*/          OPC_RecordChild0, // #2 = $Rm
/*  7671*/          OPC_CheckChild1Integer, 16, 
/*  7673*/          OPC_CheckChild1Type, MVT::i32,
/*  7675*/          OPC_MoveParent,
/*  7676*/          OPC_MoveParent,
/*  7677*/          OPC_CheckType, MVT::i32,
/*  7679*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7681*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7684*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7687*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn, (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) - Complexity = 15
                    // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7698*/        /*Scope*/ 37, /*->7736*/
/*  7699*/          OPC_MoveChild0,
/*  7700*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7703*/          OPC_RecordChild0, // #1 = $Rn
/*  7704*/          OPC_CheckChild1Integer, 16, 
/*  7706*/          OPC_CheckChild1Type, MVT::i32,
/*  7708*/          OPC_MoveParent,
/*  7709*/          OPC_RecordChild1, // #2 = $Rm
/*  7710*/          OPC_MoveChild1,
/*  7711*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7713*/          OPC_MoveParent,
/*  7714*/          OPC_MoveParent,
/*  7715*/          OPC_CheckType, MVT::i32,
/*  7717*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7719*/          OPC_EmitInteger, MVT::i32, 14, 
/*  7722*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7725*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATB), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rm)) - Complexity = 15
                    // Dst: (t2SMLATB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7736*/        0, /*End of Scope*/
/*  7737*/      /*Scope*/ 30, /*->7768*/
/*  7738*/        OPC_RecordChild1, // #1 = $Rn
/*  7739*/        OPC_CheckType, MVT::i32,
/*  7741*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  7743*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/*  7746*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7749*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7752*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7755*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDrsr), 0,
                      MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (ADDrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/*  7768*/      0, /*End of Scope*/
/*  7769*/    /*Scope*/ 34|128,1/*162*/, /*->7933*/
/*  7771*/      OPC_MoveChild0,
/*  7772*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  7775*/      OPC_Scope, 38, /*->7815*/ // 4 children in Scope
/*  7777*/        OPC_RecordChild0, // #0 = $a
/*  7778*/        OPC_MoveChild0,
/*  7779*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7781*/        OPC_MoveParent,
/*  7782*/        OPC_MoveChild1,
/*  7783*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7786*/        OPC_RecordChild0, // #1 = $b
/*  7787*/        OPC_CheckChild1Integer, 16, 
/*  7789*/        OPC_CheckChild1Type, MVT::i32,
/*  7791*/        OPC_MoveParent,
/*  7792*/        OPC_MoveParent,
/*  7793*/        OPC_RecordChild1, // #2 = $acc
/*  7794*/        OPC_CheckType, MVT::i32,
/*  7796*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7798*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7801*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7804*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, (sra:{ *:[i32] } GPR:{ *:[i32] }:$b, 16:{ *:[i32] })), GPR:{ *:[i32] }:$acc) - Complexity = 15
                  // Dst: (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  7815*/      /*Scope*/ 38, /*->7854*/
/*  7816*/        OPC_MoveChild0,
/*  7817*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7820*/        OPC_RecordChild0, // #0 = $b
/*  7821*/        OPC_CheckChild1Integer, 16, 
/*  7823*/        OPC_CheckChild1Type, MVT::i32,
/*  7825*/        OPC_MoveParent,
/*  7826*/        OPC_RecordChild1, // #1 = $a
/*  7827*/        OPC_MoveChild1,
/*  7828*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7830*/        OPC_MoveParent,
/*  7831*/        OPC_MoveParent,
/*  7832*/        OPC_RecordChild1, // #2 = $acc
/*  7833*/        OPC_CheckType, MVT::i32,
/*  7835*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  7837*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7843*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$b, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a), GPR:{ *:[i32] }:$acc) - Complexity = 15
                  // Dst: (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  7854*/      /*Scope*/ 38, /*->7893*/
/*  7855*/        OPC_RecordChild0, // #0 = $Rn
/*  7856*/        OPC_MoveChild0,
/*  7857*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7859*/        OPC_MoveParent,
/*  7860*/        OPC_MoveChild1,
/*  7861*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7864*/        OPC_RecordChild0, // #1 = $Rm
/*  7865*/        OPC_CheckChild1Integer, 16, 
/*  7867*/        OPC_CheckChild1Type, MVT::i32,
/*  7869*/        OPC_MoveParent,
/*  7870*/        OPC_MoveParent,
/*  7871*/        OPC_RecordChild1, // #2 = $Ra
/*  7872*/        OPC_CheckType, MVT::i32,
/*  7874*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7876*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7879*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7882*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn, (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 15
                  // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7893*/      /*Scope*/ 38, /*->7932*/
/*  7894*/        OPC_MoveChild0,
/*  7895*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  7898*/        OPC_RecordChild0, // #0 = $Rm
/*  7899*/        OPC_CheckChild1Integer, 16, 
/*  7901*/        OPC_CheckChild1Type, MVT::i32,
/*  7903*/        OPC_MoveParent,
/*  7904*/        OPC_RecordChild1, // #1 = $Rn
/*  7905*/        OPC_MoveChild1,
/*  7906*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  7908*/        OPC_MoveParent,
/*  7909*/        OPC_MoveParent,
/*  7910*/        OPC_RecordChild1, // #2 = $Ra
/*  7911*/        OPC_CheckType, MVT::i32,
/*  7913*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  7915*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7918*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7921*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn), rGPR:{ *:[i32] }:$Ra) - Complexity = 15
                  // Dst: (t2SMLABT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  7932*/      0, /*End of Scope*/
/*  7933*/    /*Scope*/ 42, /*->7976*/
/*  7934*/      OPC_RecordChild0, // #0 = $Rn
/*  7935*/      OPC_MoveChild1,
/*  7936*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7939*/      OPC_MoveChild0,
/*  7940*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7943*/      OPC_RecordChild0, // #1 = $Rm
/*  7944*/      OPC_CheckChild1Integer, 24, 
/*  7946*/      OPC_CheckChild1Type, MVT::i32,
/*  7948*/      OPC_MoveParent,
/*  7949*/      OPC_MoveChild1,
/*  7950*/      OPC_CheckValueType, MVT::i16,
/*  7952*/      OPC_MoveParent,
/*  7953*/      OPC_MoveParent,
/*  7954*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7956*/      OPC_EmitInteger, MVT::i32, 3, 
/*  7959*/      OPC_EmitInteger, MVT::i32, 14, 
/*  7962*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7965*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), i16:{ *:[Other] })) - Complexity = 14
                // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  7976*/    /*Scope*/ 42, /*->8019*/
/*  7977*/      OPC_MoveChild0,
/*  7978*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7981*/      OPC_MoveChild0,
/*  7982*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7985*/      OPC_RecordChild0, // #0 = $Rm
/*  7986*/      OPC_CheckChild1Integer, 24, 
/*  7988*/      OPC_CheckChild1Type, MVT::i32,
/*  7990*/      OPC_MoveParent,
/*  7991*/      OPC_MoveChild1,
/*  7992*/      OPC_CheckValueType, MVT::i16,
/*  7994*/      OPC_MoveParent,
/*  7995*/      OPC_MoveParent,
/*  7996*/      OPC_RecordChild1, // #1 = $Rn
/*  7997*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7999*/      OPC_EmitInteger, MVT::i32, 3, 
/*  8002*/      OPC_EmitInteger, MVT::i32, 14, 
/*  8005*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8008*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                    MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 14
                // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 3:{ *:[i32] })
/*  8019*/    /*Scope*/ 35|128,2/*291*/, /*->8312*/
/*  8021*/      OPC_RecordChild0, // #0 = $Rn
/*  8022*/      OPC_MoveChild1,
/*  8023*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8026*/      OPC_MoveChild0,
/*  8027*/      OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::ROTR),// ->8161
/*  8032*/        OPC_RecordChild0, // #1 = $Rm
/*  8033*/        OPC_RecordChild1, // #2 = $rot
/*  8034*/        OPC_MoveChild1,
/*  8035*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8038*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8040*/        OPC_CheckType, MVT::i32,
/*  8042*/        OPC_MoveParent,
/*  8043*/        OPC_MoveParent,
/*  8044*/        OPC_MoveChild1,
/*  8045*/        OPC_Scope, 56, /*->8103*/ // 2 children in Scope
/*  8047*/          OPC_CheckValueType, MVT::i8,
/*  8049*/          OPC_MoveParent,
/*  8050*/          OPC_MoveParent,
/*  8051*/          OPC_Scope, 24, /*->8077*/ // 2 children in Scope
/*  8053*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8055*/            OPC_EmitConvertToTarget, 2,
/*  8057*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8060*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8063*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8066*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] })) - Complexity = 13
                      // Dst: (SXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  8077*/          /*Scope*/ 24, /*->8102*/
/*  8078*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8080*/            OPC_EmitConvertToTarget, 2,
/*  8082*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8085*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8088*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8091*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] })) - Complexity = 13
                      // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8102*/          0, /*End of Scope*/
/*  8103*/        /*Scope*/ 56, /*->8160*/
/*  8104*/          OPC_CheckValueType, MVT::i16,
/*  8106*/          OPC_MoveParent,
/*  8107*/          OPC_MoveParent,
/*  8108*/          OPC_Scope, 24, /*->8134*/ // 2 children in Scope
/*  8110*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8112*/            OPC_EmitConvertToTarget, 2,
/*  8114*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8117*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8120*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8123*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] })) - Complexity = 13
                      // Dst: (SXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  8134*/          /*Scope*/ 24, /*->8159*/
/*  8135*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8137*/            OPC_EmitConvertToTarget, 2,
/*  8139*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8142*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8145*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8148*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] })) - Complexity = 13
                      // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8159*/          0, /*End of Scope*/
/*  8160*/        0, /*End of Scope*/
/*  8161*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::SRL),// ->8311
/*  8165*/        OPC_RecordChild0, // #1 = $Rm
/*  8166*/        OPC_RecordChild1, // #2 = $rot
/*  8167*/        OPC_MoveChild1,
/*  8168*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8171*/        OPC_CheckType, MVT::i32,
/*  8173*/        OPC_Scope, 33, /*->8208*/ // 4 children in Scope
/*  8175*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8177*/          OPC_MoveParent,
/*  8178*/          OPC_MoveParent,
/*  8179*/          OPC_MoveChild1,
/*  8180*/          OPC_CheckValueType, MVT::i8,
/*  8182*/          OPC_MoveParent,
/*  8183*/          OPC_MoveParent,
/*  8184*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8186*/          OPC_EmitConvertToTarget, 2,
/*  8188*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8191*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8194*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8197*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] })) - Complexity = 13
                    // Dst: (SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8208*/        /*Scope*/ 33, /*->8242*/
/*  8209*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  8211*/          OPC_MoveParent,
/*  8212*/          OPC_MoveParent,
/*  8213*/          OPC_MoveChild1,
/*  8214*/          OPC_CheckValueType, MVT::i16,
/*  8216*/          OPC_MoveParent,
/*  8217*/          OPC_MoveParent,
/*  8218*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8220*/          OPC_EmitConvertToTarget, 2,
/*  8222*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8225*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8228*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8231*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), i16:{ *:[Other] })) - Complexity = 13
                    // Dst: (SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8242*/        /*Scope*/ 33, /*->8276*/
/*  8243*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8245*/          OPC_MoveParent,
/*  8246*/          OPC_MoveParent,
/*  8247*/          OPC_MoveChild1,
/*  8248*/          OPC_CheckValueType, MVT::i8,
/*  8250*/          OPC_MoveParent,
/*  8251*/          OPC_MoveParent,
/*  8252*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8254*/          OPC_EmitConvertToTarget, 2,
/*  8256*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8259*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8262*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8265*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] })) - Complexity = 13
                    // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8276*/        /*Scope*/ 33, /*->8310*/
/*  8277*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  8279*/          OPC_MoveParent,
/*  8280*/          OPC_MoveParent,
/*  8281*/          OPC_MoveChild1,
/*  8282*/          OPC_CheckValueType, MVT::i16,
/*  8284*/          OPC_MoveParent,
/*  8285*/          OPC_MoveParent,
/*  8286*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8288*/          OPC_EmitConvertToTarget, 2,
/*  8290*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8293*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8296*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8299*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), i16:{ *:[Other] })) - Complexity = 13
                    // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8310*/        0, /*End of Scope*/
/*  8311*/      0, // EndSwitchOpcode
/*  8312*/    /*Scope*/ 40|128,2/*296*/, /*->8610*/
/*  8314*/      OPC_MoveChild0,
/*  8315*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8318*/      OPC_MoveChild0,
/*  8319*/      OPC_SwitchOpcode /*2 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::ROTR),// ->8455
/*  8324*/        OPC_RecordChild0, // #0 = $Rm
/*  8325*/        OPC_RecordChild1, // #1 = $rot
/*  8326*/        OPC_MoveChild1,
/*  8327*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8330*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8332*/        OPC_CheckType, MVT::i32,
/*  8334*/        OPC_MoveParent,
/*  8335*/        OPC_MoveParent,
/*  8336*/        OPC_MoveChild1,
/*  8337*/        OPC_Scope, 57, /*->8396*/ // 2 children in Scope
/*  8339*/          OPC_CheckValueType, MVT::i8,
/*  8341*/          OPC_MoveParent,
/*  8342*/          OPC_MoveParent,
/*  8343*/          OPC_RecordChild1, // #2 = $Rn
/*  8344*/          OPC_Scope, 24, /*->8370*/ // 2 children in Scope
/*  8346*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8348*/            OPC_EmitConvertToTarget, 1,
/*  8350*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8353*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8356*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8359*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }), GPR:{ *:[i32] }:$Rn) - Complexity = 13
                      // Dst: (SXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  8370*/          /*Scope*/ 24, /*->8395*/
/*  8371*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8373*/            OPC_EmitConvertToTarget, 1,
/*  8375*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8378*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8381*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8384*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                      // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8395*/          0, /*End of Scope*/
/*  8396*/        /*Scope*/ 57, /*->8454*/
/*  8397*/          OPC_CheckValueType, MVT::i16,
/*  8399*/          OPC_MoveParent,
/*  8400*/          OPC_MoveParent,
/*  8401*/          OPC_RecordChild1, // #2 = $Rn
/*  8402*/          OPC_Scope, 24, /*->8428*/ // 2 children in Scope
/*  8404*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8406*/            OPC_EmitConvertToTarget, 1,
/*  8408*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8411*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8414*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8417*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] }), GPR:{ *:[i32] }:$Rn) - Complexity = 13
                      // Dst: (SXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/*  8428*/          /*Scope*/ 24, /*->8453*/
/*  8429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8431*/            OPC_EmitConvertToTarget, 1,
/*  8433*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8436*/            OPC_EmitInteger, MVT::i32, 14, 
/*  8439*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8442*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                      // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8453*/          0, /*End of Scope*/
/*  8454*/        0, /*End of Scope*/
/*  8455*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SRL),// ->8609
/*  8459*/        OPC_RecordChild0, // #0 = $Rm
/*  8460*/        OPC_RecordChild1, // #1 = $rot
/*  8461*/        OPC_MoveChild1,
/*  8462*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8465*/        OPC_CheckType, MVT::i32,
/*  8467*/        OPC_Scope, 34, /*->8503*/ // 4 children in Scope
/*  8469*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8471*/          OPC_MoveParent,
/*  8472*/          OPC_MoveParent,
/*  8473*/          OPC_MoveChild1,
/*  8474*/          OPC_CheckValueType, MVT::i8,
/*  8476*/          OPC_MoveParent,
/*  8477*/          OPC_MoveParent,
/*  8478*/          OPC_RecordChild1, // #2 = $Rn
/*  8479*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8481*/          OPC_EmitConvertToTarget, 1,
/*  8483*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8486*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8489*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8492*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                    // Dst: (SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8503*/        /*Scope*/ 34, /*->8538*/
/*  8504*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  8506*/          OPC_MoveParent,
/*  8507*/          OPC_MoveParent,
/*  8508*/          OPC_MoveChild1,
/*  8509*/          OPC_CheckValueType, MVT::i16,
/*  8511*/          OPC_MoveParent,
/*  8512*/          OPC_MoveParent,
/*  8513*/          OPC_RecordChild1, // #2 = $Rn
/*  8514*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  8516*/          OPC_EmitConvertToTarget, 1,
/*  8518*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8521*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8524*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8527*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                    // Dst: (SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8538*/        /*Scope*/ 34, /*->8573*/
/*  8539*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  8541*/          OPC_MoveParent,
/*  8542*/          OPC_MoveParent,
/*  8543*/          OPC_MoveChild1,
/*  8544*/          OPC_CheckValueType, MVT::i8,
/*  8546*/          OPC_MoveParent,
/*  8547*/          OPC_MoveParent,
/*  8548*/          OPC_RecordChild1, // #2 = $Rn
/*  8549*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8551*/          OPC_EmitConvertToTarget, 1,
/*  8553*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8556*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8559*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8562*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                    // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8573*/        /*Scope*/ 34, /*->8608*/
/*  8574*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  8576*/          OPC_MoveParent,
/*  8577*/          OPC_MoveParent,
/*  8578*/          OPC_MoveChild1,
/*  8579*/          OPC_CheckValueType, MVT::i16,
/*  8581*/          OPC_MoveParent,
/*  8582*/          OPC_MoveParent,
/*  8583*/          OPC_RecordChild1, // #2 = $Rn
/*  8584*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8586*/          OPC_EmitConvertToTarget, 1,
/*  8588*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  8591*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8594*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8597*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm8_or_16>>:$rot), i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 13
                    // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/*  8608*/        0, /*End of Scope*/
/*  8609*/      0, // EndSwitchOpcode
/*  8610*/    /*Scope*/ 55|128,1/*183*/, /*->8795*/
/*  8612*/      OPC_RecordChild0, // #0 = $Rn
/*  8613*/      OPC_Scope, 29, /*->8644*/ // 5 children in Scope
/*  8615*/        OPC_RecordChild1, // #1 = $shift
/*  8616*/        OPC_CheckType, MVT::i32,
/*  8618*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  8620*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/*  8623*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8626*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8629*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8632*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDrsi), 0,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                  // Dst: (ADDrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/*  8644*/      /*Scope*/ 44, /*->8689*/
/*  8645*/        OPC_MoveChild1,
/*  8646*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8649*/        OPC_MoveChild0,
/*  8650*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8653*/        OPC_RecordChild0, // #1 = $Rn
/*  8654*/        OPC_MoveChild1,
/*  8655*/        OPC_CheckValueType, MVT::i16,
/*  8657*/        OPC_MoveParent,
/*  8658*/        OPC_MoveParent,
/*  8659*/        OPC_MoveChild1,
/*  8660*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8663*/        OPC_RecordChild0, // #2 = $Rm
/*  8664*/        OPC_MoveChild1,
/*  8665*/        OPC_CheckValueType, MVT::i16,
/*  8667*/        OPC_MoveParent,
/*  8668*/        OPC_MoveParent,
/*  8669*/        OPC_MoveParent,
/*  8670*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8672*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8675*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8678*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i16:{ *:[Other] }))) - Complexity = 12
                  // Dst: (SMLABB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  8689*/      /*Scope*/ 29, /*->8719*/
/*  8690*/        OPC_RecordChild1, // #1 = $ShiftedRm
/*  8691*/        OPC_CheckType, MVT::i32,
/*  8693*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  8695*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  8698*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8701*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8704*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8707*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrs), 0,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                  // Dst: (t2ADDrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*  8719*/      /*Scope*/ 44, /*->8764*/
/*  8720*/        OPC_MoveChild1,
/*  8721*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8724*/        OPC_MoveChild0,
/*  8725*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8728*/        OPC_RecordChild0, // #1 = $Rn
/*  8729*/        OPC_MoveChild1,
/*  8730*/        OPC_CheckValueType, MVT::i16,
/*  8732*/        OPC_MoveParent,
/*  8733*/        OPC_MoveParent,
/*  8734*/        OPC_MoveChild1,
/*  8735*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8738*/        OPC_RecordChild0, // #2 = $Rm
/*  8739*/        OPC_MoveChild1,
/*  8740*/        OPC_CheckValueType, MVT::i16,
/*  8742*/        OPC_MoveParent,
/*  8743*/        OPC_MoveParent,
/*  8744*/        OPC_MoveParent,
/*  8745*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8747*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8750*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8753*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }))) - Complexity = 12
                  // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  8764*/      /*Scope*/ 29, /*->8794*/
/*  8765*/        OPC_RecordChild1, // #1 = $Rn
/*  8766*/        OPC_CheckType, MVT::i32,
/*  8768*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  8770*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/*  8773*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8779*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8782*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDrsi), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                  // Dst: (ADDrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/*  8794*/      0, /*End of Scope*/
/*  8795*/    /*Scope*/ 45, /*->8841*/
/*  8796*/      OPC_MoveChild0,
/*  8797*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8800*/      OPC_MoveChild0,
/*  8801*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8804*/      OPC_RecordChild0, // #0 = $Rn
/*  8805*/      OPC_MoveChild1,
/*  8806*/      OPC_CheckValueType, MVT::i16,
/*  8808*/      OPC_MoveParent,
/*  8809*/      OPC_MoveParent,
/*  8810*/      OPC_MoveChild1,
/*  8811*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8814*/      OPC_RecordChild0, // #1 = $Rm
/*  8815*/      OPC_MoveChild1,
/*  8816*/      OPC_CheckValueType, MVT::i16,
/*  8818*/      OPC_MoveParent,
/*  8819*/      OPC_MoveParent,
/*  8820*/      OPC_MoveParent,
/*  8821*/      OPC_RecordChild1, // #2 = $Ra
/*  8822*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8824*/      OPC_EmitInteger, MVT::i32, 14, 
/*  8827*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8830*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i16:{ *:[Other] })), GPR:{ *:[i32] }:$Ra) - Complexity = 12
                // Dst: (SMLABB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  8841*/    /*Scope*/ 30, /*->8872*/
/*  8842*/      OPC_RecordChild0, // #0 = $ShiftedRm
/*  8843*/      OPC_RecordChild1, // #1 = $Rn
/*  8844*/      OPC_CheckType, MVT::i32,
/*  8846*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  8848*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  8851*/      OPC_EmitInteger, MVT::i32, 14, 
/*  8854*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8857*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8860*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrs), 0,
                    MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                // Src: (add:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 12
                // Dst: (t2ADDrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/*  8872*/    /*Scope*/ 45, /*->8918*/
/*  8873*/      OPC_MoveChild0,
/*  8874*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8877*/      OPC_MoveChild0,
/*  8878*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8881*/      OPC_RecordChild0, // #0 = $Rn
/*  8882*/      OPC_MoveChild1,
/*  8883*/      OPC_CheckValueType, MVT::i16,
/*  8885*/      OPC_MoveParent,
/*  8886*/      OPC_MoveParent,
/*  8887*/      OPC_MoveChild1,
/*  8888*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8891*/      OPC_RecordChild0, // #1 = $Rm
/*  8892*/      OPC_MoveChild1,
/*  8893*/      OPC_CheckValueType, MVT::i16,
/*  8895*/      OPC_MoveParent,
/*  8896*/      OPC_MoveParent,
/*  8897*/      OPC_MoveParent,
/*  8898*/      OPC_RecordChild1, // #2 = $Ra
/*  8899*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8901*/      OPC_EmitInteger, MVT::i32, 14, 
/*  8904*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8907*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 12
                // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  8918*/    /*Scope*/ 115, /*->9034*/
/*  8919*/      OPC_RecordChild0, // #0 = $acc
/*  8920*/      OPC_Scope, 36, /*->8958*/ // 3 children in Scope
/*  8922*/        OPC_MoveChild1,
/*  8923*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8926*/        OPC_RecordChild0, // #1 = $a
/*  8927*/        OPC_MoveChild0,
/*  8928*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8930*/        OPC_MoveParent,
/*  8931*/        OPC_RecordChild1, // #2 = $b
/*  8932*/        OPC_MoveChild1,
/*  8933*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8935*/        OPC_MoveParent,
/*  8936*/        OPC_MoveParent,
/*  8937*/        OPC_CheckType, MVT::i32,
/*  8939*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8941*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8944*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8947*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$acc, (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$b)) - Complexity = 8
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  8958*/      /*Scope*/ 37, /*->8996*/
/*  8959*/        OPC_RecordChild1, // #1 = $imm
/*  8960*/        OPC_MoveChild1,
/*  8961*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8964*/        OPC_CheckPredicate, 17, // Predicate_imm1_255_neg
/*  8966*/        OPC_MoveParent,
/*  8967*/        OPC_CheckType, MVT::i32,
/*  8969*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  8971*/        OPC_EmitConvertToTarget, 1,
/*  8973*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/*  8976*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8979*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8982*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8985*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 8
                  // Dst: (t2SUBri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>>:$imm))
/*  8996*/      /*Scope*/ 36, /*->9033*/
/*  8997*/        OPC_MoveChild1,
/*  8998*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9001*/        OPC_RecordChild0, // #1 = $Rn
/*  9002*/        OPC_MoveChild0,
/*  9003*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  9005*/        OPC_MoveParent,
/*  9006*/        OPC_RecordChild1, // #2 = $Rm
/*  9007*/        OPC_MoveChild1,
/*  9008*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  9010*/        OPC_MoveParent,
/*  9011*/        OPC_MoveParent,
/*  9012*/        OPC_CheckType, MVT::i32,
/*  9014*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9016*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9019*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9022*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rm)) - Complexity = 8
                  // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9033*/      0, /*End of Scope*/
/*  9034*/    /*Scope*/ 60, /*->9095*/
/*  9035*/      OPC_MoveChild0,
/*  9036*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9039*/      OPC_RecordChild0, // #0 = $a
/*  9040*/      OPC_MoveChild0,
/*  9041*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  9043*/      OPC_MoveParent,
/*  9044*/      OPC_RecordChild1, // #1 = $b
/*  9045*/      OPC_MoveChild1,
/*  9046*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  9048*/      OPC_MoveParent,
/*  9049*/      OPC_MoveParent,
/*  9050*/      OPC_RecordChild1, // #2 = $acc
/*  9051*/      OPC_CheckType, MVT::i32,
/*  9053*/      OPC_Scope, 19, /*->9074*/ // 2 children in Scope
/*  9055*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9057*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9060*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9063*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$b), GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/*  9074*/      /*Scope*/ 19, /*->9094*/
/*  9075*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9077*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9080*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9083*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rm), rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9094*/      0, /*End of Scope*/
/*  9095*/    /*Scope*/ 25|128,3/*409*/, /*->9506*/
/*  9097*/      OPC_RecordChild0, // #0 = $Rn
/*  9098*/      OPC_RecordChild1, // #1 = $imm
/*  9099*/      OPC_MoveChild1,
/*  9100*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9103*/      OPC_Scope, 29, /*->9134*/ // 11 children in Scope
/*  9105*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/*  9107*/        OPC_MoveParent,
/*  9108*/        OPC_CheckType, MVT::i32,
/*  9110*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  9112*/        OPC_EmitConvertToTarget, 1,
/*  9114*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9117*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9120*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9123*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (ADDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  9134*/      /*Scope*/ 32, /*->9167*/
/*  9135*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/*  9137*/        OPC_MoveParent,
/*  9138*/        OPC_CheckType, MVT::i32,
/*  9140*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  9142*/        OPC_EmitConvertToTarget, 1,
/*  9144*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/*  9147*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9150*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9153*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9156*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (SUBri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>>:$imm))
/*  9167*/      /*Scope*/ 29, /*->9197*/
/*  9168*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/*  9170*/        OPC_MoveParent,
/*  9171*/        OPC_CheckType, MVT::i32,
/*  9173*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  9175*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  9178*/        OPC_EmitConvertToTarget, 1,
/*  9180*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9183*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9186*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDi3), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm3) - Complexity = 7
                  // Dst: (tADDi3:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm3)
/*  9197*/      /*Scope*/ 29, /*->9227*/
/*  9198*/        OPC_CheckPredicate, 8, // Predicate_imm8_255
/*  9200*/        OPC_MoveParent,
/*  9201*/        OPC_CheckType, MVT::i32,
/*  9203*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  9205*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  9208*/        OPC_EmitConvertToTarget, 1,
/*  9210*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9213*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9216*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDi8), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255>>:$imm8) - Complexity = 7
                  // Dst: (tADDi8:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm8)
/*  9227*/      /*Scope*/ 32, /*->9260*/
/*  9228*/        OPC_CheckPredicate, 19, // Predicate_imm0_7_neg
/*  9230*/        OPC_MoveParent,
/*  9231*/        OPC_CheckType, MVT::i32,
/*  9233*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  9235*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  9238*/        OPC_EmitConvertToTarget, 1,
/*  9240*/        OPC_EmitNodeXForm, 3, 3, // imm_neg_XFORM
/*  9243*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9246*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9249*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tSUBi3), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_7_neg>><<X:imm_neg_XFORM>>:$imm3) - Complexity = 7
                  // Dst: (tSUBi3:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm3))
/*  9260*/      /*Scope*/ 32, /*->9293*/
/*  9261*/        OPC_CheckPredicate, 20, // Predicate_imm8_255_neg
/*  9263*/        OPC_MoveParent,
/*  9264*/        OPC_CheckType, MVT::i32,
/*  9266*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*  9268*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*  9271*/        OPC_EmitConvertToTarget, 1,
/*  9273*/        OPC_EmitNodeXForm, 3, 3, // imm_neg_XFORM
/*  9276*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9279*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9282*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tSUBi8), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255_neg>><<X:imm_neg_XFORM>>:$imm8) - Complexity = 7
                  // Dst: (tSUBi8:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm8))
/*  9293*/      /*Scope*/ 29, /*->9323*/
/*  9294*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*  9296*/        OPC_MoveParent,
/*  9297*/        OPC_CheckType, MVT::i32,
/*  9299*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9301*/        OPC_EmitConvertToTarget, 1,
/*  9303*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9309*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9312*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                  // Dst: (t2ADDri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  9323*/      /*Scope*/ 25, /*->9349*/
/*  9324*/        OPC_CheckPredicate, 9, // Predicate_imm0_4095
/*  9326*/        OPC_MoveParent,
/*  9327*/        OPC_CheckType, MVT::i32,
/*  9329*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9331*/        OPC_EmitConvertToTarget, 1,
/*  9333*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9336*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9339*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDri12), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) - Complexity = 7
                  // Dst: (t2ADDri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/*  9349*/      /*Scope*/ 32, /*->9382*/
/*  9350*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/*  9352*/        OPC_MoveParent,
/*  9353*/        OPC_CheckType, MVT::i32,
/*  9355*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9357*/        OPC_EmitConvertToTarget, 1,
/*  9359*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/*  9362*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9365*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9368*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9371*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>><<X:t2_so_imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2SUBri:{ *:[i32] } GPR:{ *:[i32] }:$src, (t2_so_imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>>:$imm))
/*  9382*/      /*Scope*/ 28, /*->9411*/
/*  9383*/        OPC_CheckPredicate, 22, // Predicate_imm0_4095_neg
/*  9385*/        OPC_MoveParent,
/*  9386*/        OPC_CheckType, MVT::i32,
/*  9388*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9390*/        OPC_EmitConvertToTarget, 1,
/*  9392*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/*  9395*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9398*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9401*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri12), 0,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_4095_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2SUBri12:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_4095_neg>>:$imm))
/*  9411*/      /*Scope*/ 93, /*->9505*/
/*  9412*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/*  9414*/        OPC_MoveParent,
/*  9415*/        OPC_CheckType, MVT::i32,
/*  9417*/        OPC_Scope, 42, /*->9461*/ // 2 children in Scope
/*  9419*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*  9421*/          OPC_EmitConvertToTarget, 1,
/*  9423*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/*  9426*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9429*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9432*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*  9441*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9444*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9447*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9450*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 6, 7, 8, 9, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm) - Complexity = 7
                    // Dst: (SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$src, (MOVi16:{ *:[i32] } (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/*  9461*/        /*Scope*/ 42, /*->9504*/
/*  9462*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9464*/          OPC_EmitConvertToTarget, 1,
/*  9466*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/*  9469*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9472*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9475*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*  9484*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9487*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9490*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9493*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 6, 7, 8, 9, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm) - Complexity = 7
                    // Dst: (t2SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$src, (t2MOVi16:{ *:[i32] } (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/*  9504*/        0, /*End of Scope*/
/*  9505*/      0, /*End of Scope*/
/*  9506*/    /*Scope*/ 90, /*->9597*/
/*  9507*/      OPC_MoveChild0,
/*  9508*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::MUL),// ->9568
/*  9512*/        OPC_RecordChild0, // #0 = $Rn
/*  9513*/        OPC_RecordChild1, // #1 = $Rm
/*  9514*/        OPC_MoveParent,
/*  9515*/        OPC_RecordChild1, // #2 = $Ra
/*  9516*/        OPC_CheckType, MVT::i32,
/*  9518*/        OPC_Scope, 23, /*->9543*/ // 2 children in Scope
/*  9520*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9522*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9525*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9528*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9531*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MLA), 0,
                        MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) - Complexity = 6
                    // Dst: (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/*  9543*/        /*Scope*/ 23, /*->9567*/
/*  9544*/          OPC_CheckPatternPredicate, 11, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/*  9546*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9549*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9552*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9555*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MLAv5), 0,
                        MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) - Complexity = 6
                    // Dst: (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/*  9567*/        0, /*End of Scope*/
/*  9568*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::MULHS),// ->9596
/*  9571*/        OPC_RecordChild0, // #0 = $Rn
/*  9572*/        OPC_RecordChild1, // #1 = $Rm
/*  9573*/        OPC_MoveParent,
/*  9574*/        OPC_RecordChild1, // #2 = $Ra
/*  9575*/        OPC_CheckType, MVT::i32,
/*  9577*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9579*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9582*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9585*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMLA), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  9596*/      0, // EndSwitchOpcode
/*  9597*/    /*Scope*/ 119, /*->9717*/
/*  9598*/      OPC_RecordChild0, // #0 = $Ra
/*  9599*/      OPC_MoveChild1,
/*  9600*/      OPC_SwitchOpcode /*3 cases */, 24, TARGET_VAL(ARMISD::SMULWB),// ->9628
/*  9604*/        OPC_RecordChild0, // #1 = $Rn
/*  9605*/        OPC_RecordChild1, // #2 = $Rm
/*  9606*/        OPC_MoveParent,
/*  9607*/        OPC_CheckType, MVT::i32,
/*  9609*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9611*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9614*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9617*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (ARMsmulwb:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (SMLAWB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  9628*/      /*SwitchOpcode*/ 24, TARGET_VAL(ARMISD::SMULWT),// ->9655
/*  9631*/        OPC_RecordChild0, // #1 = $Rn
/*  9632*/        OPC_RecordChild1, // #2 = $Rm
/*  9633*/        OPC_MoveParent,
/*  9634*/        OPC_CheckType, MVT::i32,
/*  9636*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9638*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9641*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9644*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (ARMsmulwt:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (SMLAWT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  9655*/      /*SwitchOpcode*/ 58, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->9716
/*  9658*/        OPC_RecordChild0, // #1 = $Rm
/*  9659*/        OPC_MoveChild1,
/*  9660*/        OPC_Scope, 26, /*->9688*/ // 2 children in Scope
/*  9662*/          OPC_CheckValueType, MVT::i8,
/*  9664*/          OPC_MoveParent,
/*  9665*/          OPC_MoveParent,
/*  9666*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9668*/          OPC_EmitInteger, MVT::i32, 0, 
/*  9671*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9674*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9677*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i8:{ *:[Other] })) - Complexity = 6
                    // Dst: (SXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  9688*/        /*Scope*/ 26, /*->9715*/
/*  9689*/          OPC_CheckValueType, MVT::i16,
/*  9691*/          OPC_MoveParent,
/*  9692*/          OPC_MoveParent,
/*  9693*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9695*/          OPC_EmitInteger, MVT::i32, 0, 
/*  9698*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9701*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9704*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 6
                    // Dst: (SXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  9715*/        0, /*End of Scope*/
/*  9716*/      0, // EndSwitchOpcode
/*  9717*/    /*Scope*/ 59, /*->9777*/
/*  9718*/      OPC_MoveChild0,
/*  9719*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ISD::MUL),// ->9748
/*  9723*/        OPC_RecordChild0, // #0 = $Rn
/*  9724*/        OPC_RecordChild1, // #1 = $Rm
/*  9725*/        OPC_MoveParent,
/*  9726*/        OPC_RecordChild1, // #2 = $Ra
/*  9727*/        OPC_CheckType, MVT::i32,
/*  9729*/        OPC_CheckPatternPredicate, 12, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9731*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9734*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9737*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MLA), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9748*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::MULHS),// ->9776
/*  9751*/        OPC_RecordChild0, // #0 = $Rm
/*  9752*/        OPC_RecordChild1, // #1 = $Rn
/*  9753*/        OPC_MoveParent,
/*  9754*/        OPC_RecordChild1, // #2 = $Ra
/*  9755*/        OPC_CheckType, MVT::i32,
/*  9757*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9759*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9762*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9765*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMLA), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9776*/      0, // EndSwitchOpcode
/*  9777*/    /*Scope*/ 76|128,1/*204*/, /*->9983*/
/*  9779*/      OPC_RecordChild0, // #0 = $Ra
/*  9780*/      OPC_MoveChild1,
/*  9781*/      OPC_SwitchOpcode /*5 cases */, 24, TARGET_VAL(ARMISD::SMULWB),// ->9809
/*  9785*/        OPC_RecordChild0, // #1 = $Rn
/*  9786*/        OPC_RecordChild1, // #2 = $Rm
/*  9787*/        OPC_MoveParent,
/*  9788*/        OPC_CheckType, MVT::i32,
/*  9790*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9792*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9795*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9798*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (ARMsmulwb:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (t2SMLAWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9809*/      /*SwitchOpcode*/ 24, TARGET_VAL(ARMISD::SMULWT),// ->9836
/*  9812*/        OPC_RecordChild0, // #1 = $Rn
/*  9813*/        OPC_RecordChild1, // #2 = $Rm
/*  9814*/        OPC_MoveParent,
/*  9815*/        OPC_CheckType, MVT::i32,
/*  9817*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9819*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9822*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9825*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (ARMsmulwt:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (t2SMLAWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/*  9836*/      /*SwitchOpcode*/ 58, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->9897
/*  9839*/        OPC_RecordChild0, // #1 = $Rm
/*  9840*/        OPC_MoveChild1,
/*  9841*/        OPC_Scope, 26, /*->9869*/ // 2 children in Scope
/*  9843*/          OPC_CheckValueType, MVT::i8,
/*  9845*/          OPC_MoveParent,
/*  9846*/          OPC_MoveParent,
/*  9847*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9849*/          OPC_EmitInteger, MVT::i32, 0, 
/*  9852*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9855*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9858*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i8:{ *:[Other] })) - Complexity = 6
                    // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  9869*/        /*Scope*/ 26, /*->9896*/
/*  9870*/          OPC_CheckValueType, MVT::i16,
/*  9872*/          OPC_MoveParent,
/*  9873*/          OPC_MoveParent,
/*  9874*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9876*/          OPC_EmitInteger, MVT::i32, 0, 
/*  9879*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9882*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9885*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 6
                    // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/*  9896*/        0, /*End of Scope*/
/*  9897*/      /*SwitchOpcode*/ 55, TARGET_VAL(ISD::MUL),// ->9955
/*  9900*/        OPC_RecordChild0, // #1 = $Rn
/*  9901*/        OPC_RecordChild1, // #2 = $Rm
/*  9902*/        OPC_MoveParent,
/*  9903*/        OPC_CheckType, MVT::i32,
/*  9905*/        OPC_Scope, 23, /*->9930*/ // 2 children in Scope
/*  9907*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9909*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9912*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9915*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9918*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MLA), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/*  9930*/        /*Scope*/ 23, /*->9954*/
/*  9931*/          OPC_CheckPatternPredicate, 11, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/*  9933*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9936*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9939*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9942*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MLAv5), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/*  9954*/        0, /*End of Scope*/
/*  9955*/      /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->9982
/*  9958*/        OPC_RecordChild0, // #1 = $Rn
/*  9959*/        OPC_RecordChild1, // #2 = $Rm
/*  9960*/        OPC_MoveParent,
/*  9961*/        OPC_CheckType, MVT::i32,
/*  9963*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9965*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9971*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMLA), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/*  9982*/      0, // EndSwitchOpcode
/*  9983*/    /*Scope*/ 59, /*->10043*/
/*  9984*/      OPC_MoveChild0,
/*  9985*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ARMISD::SMULWB),// ->10014
/*  9989*/        OPC_RecordChild0, // #0 = $Rn
/*  9990*/        OPC_RecordChild1, // #1 = $Rm
/*  9991*/        OPC_MoveParent,
/*  9992*/        OPC_RecordChild1, // #2 = $Ra
/*  9993*/        OPC_CheckType, MVT::i32,
/*  9995*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9997*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10000*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10003*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (ARMsmulwb:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (SMLAWB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 10014*/      /*SwitchOpcode*/ 25, TARGET_VAL(ARMISD::SMULWT),// ->10042
/* 10017*/        OPC_RecordChild0, // #0 = $Rn
/* 10018*/        OPC_RecordChild1, // #1 = $Rm
/* 10019*/        OPC_MoveParent,
/* 10020*/        OPC_RecordChild1, // #2 = $Ra
/* 10021*/        OPC_CheckType, MVT::i32,
/* 10023*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10025*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10028*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10031*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (ARMsmulwt:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (SMLAWT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 10042*/      0, // EndSwitchOpcode
/* 10043*/    /*Scope*/ 58, /*->10102*/
/* 10044*/      OPC_RecordChild0, // #0 = $Ra
/* 10045*/      OPC_MoveChild1,
/* 10046*/      OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::MUL),// ->10074
/* 10050*/        OPC_RecordChild0, // #1 = $Rn
/* 10051*/        OPC_RecordChild1, // #2 = $Rm
/* 10052*/        OPC_MoveParent,
/* 10053*/        OPC_CheckType, MVT::i32,
/* 10055*/        OPC_CheckPatternPredicate, 12, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10057*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10060*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10063*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MLA), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10074*/      /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->10101
/* 10077*/        OPC_RecordChild0, // #1 = $Rm
/* 10078*/        OPC_RecordChild1, // #2 = $Rn
/* 10079*/        OPC_MoveParent,
/* 10080*/        OPC_CheckType, MVT::i32,
/* 10082*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10084*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10087*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10090*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMLA), 0,
                      MVT::i32, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)) - Complexity = 6
                  // Dst: (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10101*/      0, // EndSwitchOpcode
/* 10102*/    /*Scope*/ 46|128,1/*174*/, /*->10278*/
/* 10104*/      OPC_MoveChild0,
/* 10105*/      OPC_SwitchOpcode /*3 cases */, 25, TARGET_VAL(ARMISD::SMULWB),// ->10134
/* 10109*/        OPC_RecordChild0, // #0 = $Rn
/* 10110*/        OPC_RecordChild1, // #1 = $Rm
/* 10111*/        OPC_MoveParent,
/* 10112*/        OPC_RecordChild1, // #2 = $Ra
/* 10113*/        OPC_CheckType, MVT::i32,
/* 10115*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10117*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10120*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10123*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (ARMsmulwb:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (t2SMLAWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10134*/      /*SwitchOpcode*/ 25, TARGET_VAL(ARMISD::SMULWT),// ->10162
/* 10137*/        OPC_RecordChild0, // #0 = $Rn
/* 10138*/        OPC_RecordChild1, // #1 = $Rm
/* 10139*/        OPC_MoveParent,
/* 10140*/        OPC_RecordChild1, // #2 = $Ra
/* 10141*/        OPC_CheckType, MVT::i32,
/* 10143*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10145*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10148*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10151*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (ARMsmulwt:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) - Complexity = 6
                  // Dst: (t2SMLAWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10162*/      /*SwitchOpcode*/ 112, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10277
/* 10165*/        OPC_RecordChild0, // #0 = $Rm
/* 10166*/        OPC_MoveChild1,
/* 10167*/        OPC_Scope, 53, /*->10222*/ // 2 children in Scope
/* 10169*/          OPC_CheckValueType, MVT::i8,
/* 10171*/          OPC_MoveParent,
/* 10172*/          OPC_MoveParent,
/* 10173*/          OPC_RecordChild1, // #1 = $Rn
/* 10174*/          OPC_Scope, 22, /*->10198*/ // 2 children in Scope
/* 10176*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 10178*/            OPC_EmitInteger, MVT::i32, 0, 
/* 10181*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10184*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10187*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i8:{ *:[Other] }), GPR:{ *:[i32] }:$Rn) - Complexity = 6
                      // Dst: (SXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 10198*/          /*Scope*/ 22, /*->10221*/
/* 10199*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 10201*/            OPC_EmitInteger, MVT::i32, 0, 
/* 10204*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10207*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10210*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB), 0,
                          MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i8:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 6
                      // Dst: (t2SXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 10221*/          0, /*End of Scope*/
/* 10222*/        /*Scope*/ 53, /*->10276*/
/* 10223*/          OPC_CheckValueType, MVT::i16,
/* 10225*/          OPC_MoveParent,
/* 10226*/          OPC_MoveParent,
/* 10227*/          OPC_RecordChild1, // #1 = $Rn
/* 10228*/          OPC_Scope, 22, /*->10252*/ // 2 children in Scope
/* 10230*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 10232*/            OPC_EmitInteger, MVT::i32, 0, 
/* 10235*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10238*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10241*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, i16:{ *:[Other] }), GPR:{ *:[i32] }:$Rn) - Complexity = 6
                      // Dst: (SXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 10252*/          /*Scope*/ 22, /*->10275*/
/* 10253*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 10255*/            OPC_EmitInteger, MVT::i32, 0, 
/* 10258*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10261*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10264*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAH), 0,
                          MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 6
                      // Dst: (t2SXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 10275*/          0, /*End of Scope*/
/* 10276*/        0, /*End of Scope*/
/* 10277*/      0, // EndSwitchOpcode
/* 10278*/    /*Scope*/ 37|128,2/*293*/, /*->10573*/
/* 10280*/      OPC_RecordChild0, // #0 = $Rn
/* 10281*/      OPC_Scope, 89, /*->10372*/ // 2 children in Scope
/* 10283*/        OPC_RecordChild1, // #1 = $Rm
/* 10284*/        OPC_CheckType, MVT::i32,
/* 10286*/        OPC_Scope, 22, /*->10310*/ // 3 children in Scope
/* 10288*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 10290*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10293*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10296*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10299*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::ADDrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (ADDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 10310*/        /*Scope*/ 22, /*->10333*/
/* 10311*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 10313*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10316*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10319*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10322*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tADDrr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 10333*/        /*Scope*/ 37, /*->10371*/
/* 10334*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10336*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10339*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10342*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10345*/          OPC_Scope, 11, /*->10358*/ // 2 children in Scope
/* 10347*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrr), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 10358*/          /*Scope*/ 11, /*->10370*/
/* 10359*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ADDrr), 0,
                          MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 3
                      // Dst: (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 10370*/          0, /*End of Scope*/
/* 10371*/        0, /*End of Scope*/
/* 10372*/      /*Scope*/ 70|128,1/*198*/, /*->10572*/
/* 10374*/        OPC_MoveChild1,
/* 10375*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 10378*/        OPC_MoveChild0,
/* 10379*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 10382*/        OPC_Scope, 93, /*->10477*/ // 2 children in Scope
/* 10384*/          OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 10387*/          OPC_RecordChild1, // #1 = $Vn
/* 10388*/          OPC_Scope, 28, /*->10418*/ // 3 children in Scope
/* 10390*/            OPC_CheckChild1Type, MVT::v8i8,
/* 10392*/            OPC_RecordChild2, // #2 = $Vm
/* 10393*/            OPC_CheckChild2Type, MVT::v8i8,
/* 10395*/            OPC_MoveParent,
/* 10396*/            OPC_MoveParent,
/* 10397*/            OPC_CheckType, MVT::v8i16,
/* 10399*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10401*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10404*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10407*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 10418*/          /*Scope*/ 28, /*->10447*/
/* 10419*/            OPC_CheckChild1Type, MVT::v4i16,
/* 10421*/            OPC_RecordChild2, // #2 = $Vm
/* 10422*/            OPC_CheckChild2Type, MVT::v4i16,
/* 10424*/            OPC_MoveParent,
/* 10425*/            OPC_MoveParent,
/* 10426*/            OPC_CheckType, MVT::v4i32,
/* 10428*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10430*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10433*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10436*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 10447*/          /*Scope*/ 28, /*->10476*/
/* 10448*/            OPC_CheckChild1Type, MVT::v2i32,
/* 10450*/            OPC_RecordChild2, // #2 = $Vm
/* 10451*/            OPC_CheckChild2Type, MVT::v2i32,
/* 10453*/            OPC_MoveParent,
/* 10454*/            OPC_MoveParent,
/* 10455*/            OPC_CheckType, MVT::v2i64,
/* 10457*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10459*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10462*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10465*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 10476*/          0, /*End of Scope*/
/* 10477*/        /*Scope*/ 93, /*->10571*/
/* 10478*/          OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 10481*/          OPC_RecordChild1, // #1 = $Vn
/* 10482*/          OPC_Scope, 28, /*->10512*/ // 3 children in Scope
/* 10484*/            OPC_CheckChild1Type, MVT::v8i8,
/* 10486*/            OPC_RecordChild2, // #2 = $Vm
/* 10487*/            OPC_CheckChild2Type, MVT::v8i8,
/* 10489*/            OPC_MoveParent,
/* 10490*/            OPC_MoveParent,
/* 10491*/            OPC_CheckType, MVT::v8i16,
/* 10493*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10495*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10498*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10501*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 10512*/          /*Scope*/ 28, /*->10541*/
/* 10513*/            OPC_CheckChild1Type, MVT::v4i16,
/* 10515*/            OPC_RecordChild2, // #2 = $Vm
/* 10516*/            OPC_CheckChild2Type, MVT::v4i16,
/* 10518*/            OPC_MoveParent,
/* 10519*/            OPC_MoveParent,
/* 10520*/            OPC_CheckType, MVT::v4i32,
/* 10522*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10524*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10527*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10530*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 10541*/          /*Scope*/ 28, /*->10570*/
/* 10542*/            OPC_CheckChild1Type, MVT::v2i32,
/* 10544*/            OPC_RecordChild2, // #2 = $Vm
/* 10545*/            OPC_CheckChild2Type, MVT::v2i32,
/* 10547*/            OPC_MoveParent,
/* 10548*/            OPC_MoveParent,
/* 10549*/            OPC_CheckType, MVT::v2i64,
/* 10551*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10553*/            OPC_EmitInteger, MVT::i32, 14, 
/* 10556*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10559*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 10570*/          0, /*End of Scope*/
/* 10571*/        0, /*End of Scope*/
/* 10572*/      0, /*End of Scope*/
/* 10573*/    /*Scope*/ 76|128,1/*204*/, /*->10779*/
/* 10575*/      OPC_MoveChild0,
/* 10576*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 10579*/      OPC_MoveChild0,
/* 10580*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 10583*/      OPC_Scope, 96, /*->10681*/ // 2 children in Scope
/* 10585*/        OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 10588*/        OPC_RecordChild1, // #0 = $Vn
/* 10589*/        OPC_Scope, 29, /*->10620*/ // 3 children in Scope
/* 10591*/          OPC_CheckChild1Type, MVT::v8i8,
/* 10593*/          OPC_RecordChild2, // #1 = $Vm
/* 10594*/          OPC_CheckChild2Type, MVT::v8i8,
/* 10596*/          OPC_MoveParent,
/* 10597*/          OPC_MoveParent,
/* 10598*/          OPC_RecordChild1, // #2 = $src1
/* 10599*/          OPC_CheckType, MVT::v8i16,
/* 10601*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10603*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10606*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10609*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 10620*/        /*Scope*/ 29, /*->10650*/
/* 10621*/          OPC_CheckChild1Type, MVT::v4i16,
/* 10623*/          OPC_RecordChild2, // #1 = $Vm
/* 10624*/          OPC_CheckChild2Type, MVT::v4i16,
/* 10626*/          OPC_MoveParent,
/* 10627*/          OPC_MoveParent,
/* 10628*/          OPC_RecordChild1, // #2 = $src1
/* 10629*/          OPC_CheckType, MVT::v4i32,
/* 10631*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10633*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10636*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10639*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 10650*/        /*Scope*/ 29, /*->10680*/
/* 10651*/          OPC_CheckChild1Type, MVT::v2i32,
/* 10653*/          OPC_RecordChild2, // #1 = $Vm
/* 10654*/          OPC_CheckChild2Type, MVT::v2i32,
/* 10656*/          OPC_MoveParent,
/* 10657*/          OPC_MoveParent,
/* 10658*/          OPC_RecordChild1, // #2 = $src1
/* 10659*/          OPC_CheckType, MVT::v2i64,
/* 10661*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10663*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10666*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10669*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) - Complexity = 14
                    // Dst: (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 10680*/        0, /*End of Scope*/
/* 10681*/      /*Scope*/ 96, /*->10778*/
/* 10682*/        OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 10685*/        OPC_RecordChild1, // #0 = $Vn
/* 10686*/        OPC_Scope, 29, /*->10717*/ // 3 children in Scope
/* 10688*/          OPC_CheckChild1Type, MVT::v8i8,
/* 10690*/          OPC_RecordChild2, // #1 = $Vm
/* 10691*/          OPC_CheckChild2Type, MVT::v8i8,
/* 10693*/          OPC_MoveParent,
/* 10694*/          OPC_MoveParent,
/* 10695*/          OPC_RecordChild1, // #2 = $src1
/* 10696*/          OPC_CheckType, MVT::v8i16,
/* 10698*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10700*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10703*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10706*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 10717*/        /*Scope*/ 29, /*->10747*/
/* 10718*/          OPC_CheckChild1Type, MVT::v4i16,
/* 10720*/          OPC_RecordChild2, // #1 = $Vm
/* 10721*/          OPC_CheckChild2Type, MVT::v4i16,
/* 10723*/          OPC_MoveParent,
/* 10724*/          OPC_MoveParent,
/* 10725*/          OPC_RecordChild1, // #2 = $src1
/* 10726*/          OPC_CheckType, MVT::v4i32,
/* 10728*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10730*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10733*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10736*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 10747*/        /*Scope*/ 29, /*->10777*/
/* 10748*/          OPC_CheckChild1Type, MVT::v2i32,
/* 10750*/          OPC_RecordChild2, // #1 = $Vm
/* 10751*/          OPC_CheckChild2Type, MVT::v2i32,
/* 10753*/          OPC_MoveParent,
/* 10754*/          OPC_MoveParent,
/* 10755*/          OPC_RecordChild1, // #2 = $src1
/* 10756*/          OPC_CheckType, MVT::v2i64,
/* 10758*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10760*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10763*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10766*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABALuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) - Complexity = 14
                    // Dst: (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 10777*/        0, /*End of Scope*/
/* 10778*/      0, /*End of Scope*/
/* 10779*/    /*Scope*/ 107|128,2/*363*/, /*->11144*/
/* 10781*/      OPC_RecordChild0, // #0 = $src1
/* 10782*/      OPC_MoveChild1,
/* 10783*/      OPC_SwitchOpcode /*3 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::MUL),// ->10963
/* 10788*/        OPC_Scope, 2|128,1/*130*/, /*->10921*/ // 2 children in Scope
/* 10791*/          OPC_RecordChild0, // #1 = $Vn
/* 10792*/          OPC_MoveChild1,
/* 10793*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 10796*/          OPC_RecordChild0, // #2 = $Vm
/* 10797*/          OPC_Scope, 60, /*->10859*/ // 2 children in Scope
/* 10799*/            OPC_CheckChild0Type, MVT::v4i16,
/* 10801*/            OPC_RecordChild1, // #3 = $lane
/* 10802*/            OPC_MoveChild1,
/* 10803*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10806*/            OPC_MoveParent,
/* 10807*/            OPC_MoveParent,
/* 10808*/            OPC_MoveParent,
/* 10809*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->10834
/* 10812*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10814*/              OPC_EmitConvertToTarget, 3,
/* 10816*/              OPC_EmitInteger, MVT::i32, 14, 
/* 10819*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10822*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i16), 0,
                            MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLAslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 10834*/            /*SwitchType*/ 22, MVT::v8i16,// ->10858
/* 10836*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10838*/              OPC_EmitConvertToTarget, 3,
/* 10840*/              OPC_EmitInteger, MVT::i32, 14, 
/* 10843*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10846*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                            MVT::v8i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 10858*/            0, // EndSwitchType
/* 10859*/          /*Scope*/ 60, /*->10920*/
/* 10860*/            OPC_CheckChild0Type, MVT::v2i32,
/* 10862*/            OPC_RecordChild1, // #3 = $lane
/* 10863*/            OPC_MoveChild1,
/* 10864*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10867*/            OPC_MoveParent,
/* 10868*/            OPC_MoveParent,
/* 10869*/            OPC_MoveParent,
/* 10870*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->10895
/* 10873*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10875*/              OPC_EmitConvertToTarget, 3,
/* 10877*/              OPC_EmitInteger, MVT::i32, 14, 
/* 10880*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10883*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv2i32), 0,
                            MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLAslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 10895*/            /*SwitchType*/ 22, MVT::v4i32,// ->10919
/* 10897*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10899*/              OPC_EmitConvertToTarget, 3,
/* 10901*/              OPC_EmitInteger, MVT::i32, 14, 
/* 10904*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10907*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 10919*/            0, // EndSwitchType
/* 10920*/          0, /*End of Scope*/
/* 10921*/        /*Scope*/ 40, /*->10962*/
/* 10922*/          OPC_MoveChild0,
/* 10923*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 10926*/          OPC_RecordChild0, // #1 = $Vm
/* 10927*/          OPC_CheckChild0Type, MVT::v4i16,
/* 10929*/          OPC_RecordChild1, // #2 = $lane
/* 10930*/          OPC_MoveChild1,
/* 10931*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10934*/          OPC_MoveParent,
/* 10935*/          OPC_MoveParent,
/* 10936*/          OPC_RecordChild1, // #3 = $Vn
/* 10937*/          OPC_MoveParent,
/* 10938*/          OPC_CheckType, MVT::v4i16,
/* 10940*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10942*/          OPC_EmitConvertToTarget, 2,
/* 10944*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10947*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10950*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i16), 0,
                        MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 12
                    // Dst: (VMLAslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 10962*/        0, /*End of Scope*/
/* 10963*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLs),// ->11053
/* 10966*/        OPC_RecordChild0, // #1 = $Vn
/* 10967*/        OPC_Scope, 41, /*->11010*/ // 2 children in Scope
/* 10969*/          OPC_CheckChild0Type, MVT::v4i16,
/* 10971*/          OPC_MoveChild1,
/* 10972*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 10975*/          OPC_RecordChild0, // #2 = $Vm
/* 10976*/          OPC_CheckChild0Type, MVT::v4i16,
/* 10978*/          OPC_RecordChild1, // #3 = $lane
/* 10979*/          OPC_MoveChild1,
/* 10980*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10983*/          OPC_MoveParent,
/* 10984*/          OPC_MoveParent,
/* 10985*/          OPC_MoveParent,
/* 10986*/          OPC_CheckType, MVT::v4i32,
/* 10988*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 10990*/          OPC_EmitConvertToTarget, 3,
/* 10992*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10995*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10998*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALslsv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLALslsv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11010*/        /*Scope*/ 41, /*->11052*/
/* 11011*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11013*/          OPC_MoveChild1,
/* 11014*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11017*/          OPC_RecordChild0, // #2 = $Vm
/* 11018*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11020*/          OPC_RecordChild1, // #3 = $lane
/* 11021*/          OPC_MoveChild1,
/* 11022*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11025*/          OPC_MoveParent,
/* 11026*/          OPC_MoveParent,
/* 11027*/          OPC_MoveParent,
/* 11028*/          OPC_CheckType, MVT::v2i64,
/* 11030*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11032*/          OPC_EmitConvertToTarget, 3,
/* 11034*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11037*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11040*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALslsv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLALslsv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11052*/        0, /*End of Scope*/
/* 11053*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLu),// ->11143
/* 11056*/        OPC_RecordChild0, // #1 = $Vn
/* 11057*/        OPC_Scope, 41, /*->11100*/ // 2 children in Scope
/* 11059*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11061*/          OPC_MoveChild1,
/* 11062*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11065*/          OPC_RecordChild0, // #2 = $Vm
/* 11066*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11068*/          OPC_RecordChild1, // #3 = $lane
/* 11069*/          OPC_MoveChild1,
/* 11070*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11073*/          OPC_MoveParent,
/* 11074*/          OPC_MoveParent,
/* 11075*/          OPC_MoveParent,
/* 11076*/          OPC_CheckType, MVT::v4i32,
/* 11078*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11080*/          OPC_EmitConvertToTarget, 3,
/* 11082*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11085*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11088*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsluv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLALsluv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11100*/        /*Scope*/ 41, /*->11142*/
/* 11101*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11103*/          OPC_MoveChild1,
/* 11104*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11107*/          OPC_RecordChild0, // #2 = $Vm
/* 11108*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11110*/          OPC_RecordChild1, // #3 = $lane
/* 11111*/          OPC_MoveChild1,
/* 11112*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11115*/          OPC_MoveParent,
/* 11116*/          OPC_MoveParent,
/* 11117*/          OPC_MoveParent,
/* 11118*/          OPC_CheckType, MVT::v2i64,
/* 11120*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11122*/          OPC_EmitConvertToTarget, 3,
/* 11124*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11127*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11130*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsluv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLALsluv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11142*/        0, /*End of Scope*/
/* 11143*/      0, // EndSwitchOpcode
/* 11144*/    /*Scope*/ 90, /*->11235*/
/* 11145*/      OPC_MoveChild0,
/* 11146*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11149*/      OPC_Scope, 41, /*->11192*/ // 2 children in Scope
/* 11151*/        OPC_RecordChild0, // #0 = $Vn
/* 11152*/        OPC_MoveChild1,
/* 11153*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11156*/        OPC_RecordChild0, // #1 = $Vm
/* 11157*/        OPC_CheckChild0Type, MVT::v4i16,
/* 11159*/        OPC_RecordChild1, // #2 = $lane
/* 11160*/        OPC_MoveChild1,
/* 11161*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11164*/        OPC_MoveParent,
/* 11165*/        OPC_MoveParent,
/* 11166*/        OPC_MoveParent,
/* 11167*/        OPC_RecordChild1, // #3 = $src1
/* 11168*/        OPC_CheckType, MVT::v4i16,
/* 11170*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11172*/        OPC_EmitConvertToTarget, 2,
/* 11174*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11177*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11180*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i16), 0,
                      MVT::v4i16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v4i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11192*/      /*Scope*/ 41, /*->11234*/
/* 11193*/        OPC_MoveChild0,
/* 11194*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11197*/        OPC_RecordChild0, // #0 = $Vm
/* 11198*/        OPC_CheckChild0Type, MVT::v4i16,
/* 11200*/        OPC_RecordChild1, // #1 = $lane
/* 11201*/        OPC_MoveChild1,
/* 11202*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11205*/        OPC_MoveParent,
/* 11206*/        OPC_MoveParent,
/* 11207*/        OPC_RecordChild1, // #2 = $Vn
/* 11208*/        OPC_MoveParent,
/* 11209*/        OPC_RecordChild1, // #3 = $src1
/* 11210*/        OPC_CheckType, MVT::v4i16,
/* 11212*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11214*/        OPC_EmitConvertToTarget, 1,
/* 11216*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11219*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11222*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i16), 0,
                      MVT::v4i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn), DPR:{ *:[v4i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11234*/      0, /*End of Scope*/
/* 11235*/    /*Scope*/ 45, /*->11281*/
/* 11236*/      OPC_RecordChild0, // #0 = $src1
/* 11237*/      OPC_MoveChild1,
/* 11238*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11241*/      OPC_MoveChild0,
/* 11242*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11245*/      OPC_RecordChild0, // #1 = $Vm
/* 11246*/      OPC_CheckChild0Type, MVT::v2i32,
/* 11248*/      OPC_RecordChild1, // #2 = $lane
/* 11249*/      OPC_MoveChild1,
/* 11250*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11253*/      OPC_MoveParent,
/* 11254*/      OPC_MoveParent,
/* 11255*/      OPC_RecordChild1, // #3 = $Vn
/* 11256*/      OPC_MoveParent,
/* 11257*/      OPC_CheckType, MVT::v2i32,
/* 11259*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11261*/      OPC_EmitConvertToTarget, 2,
/* 11263*/      OPC_EmitInteger, MVT::i32, 14, 
/* 11266*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11269*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv2i32), 0,
                    MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 12
                // Dst: (VMLAslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11281*/    /*Scope*/ 90, /*->11372*/
/* 11282*/      OPC_MoveChild0,
/* 11283*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11286*/      OPC_Scope, 41, /*->11329*/ // 2 children in Scope
/* 11288*/        OPC_RecordChild0, // #0 = $Vn
/* 11289*/        OPC_MoveChild1,
/* 11290*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11293*/        OPC_RecordChild0, // #1 = $Vm
/* 11294*/        OPC_CheckChild0Type, MVT::v2i32,
/* 11296*/        OPC_RecordChild1, // #2 = $lane
/* 11297*/        OPC_MoveChild1,
/* 11298*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11301*/        OPC_MoveParent,
/* 11302*/        OPC_MoveParent,
/* 11303*/        OPC_MoveParent,
/* 11304*/        OPC_RecordChild1, // #3 = $src1
/* 11305*/        OPC_CheckType, MVT::v2i32,
/* 11307*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11309*/        OPC_EmitConvertToTarget, 2,
/* 11311*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11314*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11317*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v2i32] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11329*/      /*Scope*/ 41, /*->11371*/
/* 11330*/        OPC_MoveChild0,
/* 11331*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11334*/        OPC_RecordChild0, // #0 = $Vm
/* 11335*/        OPC_CheckChild0Type, MVT::v2i32,
/* 11337*/        OPC_RecordChild1, // #1 = $lane
/* 11338*/        OPC_MoveChild1,
/* 11339*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11342*/        OPC_MoveParent,
/* 11343*/        OPC_MoveParent,
/* 11344*/        OPC_RecordChild1, // #2 = $Vn
/* 11345*/        OPC_MoveParent,
/* 11346*/        OPC_RecordChild1, // #3 = $src1
/* 11347*/        OPC_CheckType, MVT::v2i32,
/* 11349*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11351*/        OPC_EmitConvertToTarget, 1,
/* 11353*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11356*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11359*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn), DPR:{ *:[v2i32] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11371*/      0, /*End of Scope*/
/* 11372*/    /*Scope*/ 45, /*->11418*/
/* 11373*/      OPC_RecordChild0, // #0 = $src1
/* 11374*/      OPC_MoveChild1,
/* 11375*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11378*/      OPC_MoveChild0,
/* 11379*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11382*/      OPC_RecordChild0, // #1 = $Vm
/* 11383*/      OPC_CheckChild0Type, MVT::v4i16,
/* 11385*/      OPC_RecordChild1, // #2 = $lane
/* 11386*/      OPC_MoveChild1,
/* 11387*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11390*/      OPC_MoveParent,
/* 11391*/      OPC_MoveParent,
/* 11392*/      OPC_RecordChild1, // #3 = $Vn
/* 11393*/      OPC_MoveParent,
/* 11394*/      OPC_CheckType, MVT::v8i16,
/* 11396*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11398*/      OPC_EmitConvertToTarget, 2,
/* 11400*/      OPC_EmitInteger, MVT::i32, 14, 
/* 11403*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11406*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                    MVT::v8i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn)) - Complexity = 12
                // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11418*/    /*Scope*/ 90, /*->11509*/
/* 11419*/      OPC_MoveChild0,
/* 11420*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11423*/      OPC_Scope, 41, /*->11466*/ // 2 children in Scope
/* 11425*/        OPC_RecordChild0, // #0 = $Vn
/* 11426*/        OPC_MoveChild1,
/* 11427*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11430*/        OPC_RecordChild0, // #1 = $Vm
/* 11431*/        OPC_CheckChild0Type, MVT::v4i16,
/* 11433*/        OPC_RecordChild1, // #2 = $lane
/* 11434*/        OPC_MoveChild1,
/* 11435*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11438*/        OPC_MoveParent,
/* 11439*/        OPC_MoveParent,
/* 11440*/        OPC_MoveParent,
/* 11441*/        OPC_RecordChild1, // #3 = $src1
/* 11442*/        OPC_CheckType, MVT::v8i16,
/* 11444*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11446*/        OPC_EmitConvertToTarget, 2,
/* 11448*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11451*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11454*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v8i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11466*/      /*Scope*/ 41, /*->11508*/
/* 11467*/        OPC_MoveChild0,
/* 11468*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11471*/        OPC_RecordChild0, // #0 = $Vm
/* 11472*/        OPC_CheckChild0Type, MVT::v4i16,
/* 11474*/        OPC_RecordChild1, // #1 = $lane
/* 11475*/        OPC_MoveChild1,
/* 11476*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11479*/        OPC_MoveParent,
/* 11480*/        OPC_MoveParent,
/* 11481*/        OPC_RecordChild1, // #2 = $Vn
/* 11482*/        OPC_MoveParent,
/* 11483*/        OPC_RecordChild1, // #3 = $src1
/* 11484*/        OPC_CheckType, MVT::v8i16,
/* 11486*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11488*/        OPC_EmitConvertToTarget, 1,
/* 11490*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11493*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11496*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn), QPR:{ *:[v8i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11508*/      0, /*End of Scope*/
/* 11509*/    /*Scope*/ 45, /*->11555*/
/* 11510*/      OPC_RecordChild0, // #0 = $src1
/* 11511*/      OPC_MoveChild1,
/* 11512*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11515*/      OPC_MoveChild0,
/* 11516*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11519*/      OPC_RecordChild0, // #1 = $Vm
/* 11520*/      OPC_CheckChild0Type, MVT::v2i32,
/* 11522*/      OPC_RecordChild1, // #2 = $lane
/* 11523*/      OPC_MoveChild1,
/* 11524*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11527*/      OPC_MoveParent,
/* 11528*/      OPC_MoveParent,
/* 11529*/      OPC_RecordChild1, // #3 = $Vn
/* 11530*/      OPC_MoveParent,
/* 11531*/      OPC_CheckType, MVT::v4i32,
/* 11533*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11535*/      OPC_EmitConvertToTarget, 2,
/* 11537*/      OPC_EmitInteger, MVT::i32, 14, 
/* 11540*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11543*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn)) - Complexity = 12
                // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11555*/    /*Scope*/ 20|128,2/*276*/, /*->11833*/
/* 11557*/      OPC_MoveChild0,
/* 11558*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::MUL),// ->11648
/* 11562*/        OPC_Scope, 41, /*->11605*/ // 2 children in Scope
/* 11564*/          OPC_RecordChild0, // #0 = $Vn
/* 11565*/          OPC_MoveChild1,
/* 11566*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11569*/          OPC_RecordChild0, // #1 = $Vm
/* 11570*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11572*/          OPC_RecordChild1, // #2 = $lane
/* 11573*/          OPC_MoveChild1,
/* 11574*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11577*/          OPC_MoveParent,
/* 11578*/          OPC_MoveParent,
/* 11579*/          OPC_MoveParent,
/* 11580*/          OPC_RecordChild1, // #3 = $src1
/* 11581*/          OPC_CheckType, MVT::v4i32,
/* 11583*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11585*/          OPC_EmitConvertToTarget, 2,
/* 11587*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11590*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11593*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                    // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11605*/        /*Scope*/ 41, /*->11647*/
/* 11606*/          OPC_MoveChild0,
/* 11607*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11610*/          OPC_RecordChild0, // #0 = $Vm
/* 11611*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11613*/          OPC_RecordChild1, // #1 = $lane
/* 11614*/          OPC_MoveChild1,
/* 11615*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11618*/          OPC_MoveParent,
/* 11619*/          OPC_MoveParent,
/* 11620*/          OPC_RecordChild1, // #2 = $Vn
/* 11621*/          OPC_MoveParent,
/* 11622*/          OPC_RecordChild1, // #3 = $src1
/* 11623*/          OPC_CheckType, MVT::v4i32,
/* 11625*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11627*/          OPC_EmitConvertToTarget, 1,
/* 11629*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11632*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11635*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                    // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11647*/        0, /*End of Scope*/
/* 11648*/      /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VMULLs),// ->11740
/* 11651*/        OPC_RecordChild0, // #0 = $Vn
/* 11652*/        OPC_Scope, 42, /*->11696*/ // 2 children in Scope
/* 11654*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11656*/          OPC_MoveChild1,
/* 11657*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11660*/          OPC_RecordChild0, // #1 = $Vm
/* 11661*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11663*/          OPC_RecordChild1, // #2 = $lane
/* 11664*/          OPC_MoveChild1,
/* 11665*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11668*/          OPC_MoveParent,
/* 11669*/          OPC_MoveParent,
/* 11670*/          OPC_MoveParent,
/* 11671*/          OPC_RecordChild1, // #3 = $src1
/* 11672*/          OPC_CheckType, MVT::v4i32,
/* 11674*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11676*/          OPC_EmitConvertToTarget, 2,
/* 11678*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11681*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11684*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALslsv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                    // Dst: (VMLALslsv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11696*/        /*Scope*/ 42, /*->11739*/
/* 11697*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11699*/          OPC_MoveChild1,
/* 11700*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11703*/          OPC_RecordChild0, // #1 = $Vm
/* 11704*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11706*/          OPC_RecordChild1, // #2 = $lane
/* 11707*/          OPC_MoveChild1,
/* 11708*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11711*/          OPC_MoveParent,
/* 11712*/          OPC_MoveParent,
/* 11713*/          OPC_MoveParent,
/* 11714*/          OPC_RecordChild1, // #3 = $src1
/* 11715*/          OPC_CheckType, MVT::v2i64,
/* 11717*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11719*/          OPC_EmitConvertToTarget, 2,
/* 11721*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11724*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11727*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALslsv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v2i64] } (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v2i64] }:$src1) - Complexity = 12
                    // Dst: (VMLALslsv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11739*/        0, /*End of Scope*/
/* 11740*/      /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VMULLu),// ->11832
/* 11743*/        OPC_RecordChild0, // #0 = $Vn
/* 11744*/        OPC_Scope, 42, /*->11788*/ // 2 children in Scope
/* 11746*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11748*/          OPC_MoveChild1,
/* 11749*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11752*/          OPC_RecordChild0, // #1 = $Vm
/* 11753*/          OPC_CheckChild0Type, MVT::v4i16,
/* 11755*/          OPC_RecordChild1, // #2 = $lane
/* 11756*/          OPC_MoveChild1,
/* 11757*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11760*/          OPC_MoveParent,
/* 11761*/          OPC_MoveParent,
/* 11762*/          OPC_MoveParent,
/* 11763*/          OPC_RecordChild1, // #3 = $src1
/* 11764*/          OPC_CheckType, MVT::v4i32,
/* 11766*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11768*/          OPC_EmitConvertToTarget, 2,
/* 11770*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11773*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11776*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsluv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                    // Dst: (VMLALsluv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11788*/        /*Scope*/ 42, /*->11831*/
/* 11789*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11791*/          OPC_MoveChild1,
/* 11792*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11795*/          OPC_RecordChild0, // #1 = $Vm
/* 11796*/          OPC_CheckChild0Type, MVT::v2i32,
/* 11798*/          OPC_RecordChild1, // #2 = $lane
/* 11799*/          OPC_MoveChild1,
/* 11800*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11803*/          OPC_MoveParent,
/* 11804*/          OPC_MoveParent,
/* 11805*/          OPC_MoveParent,
/* 11806*/          OPC_RecordChild1, // #3 = $src1
/* 11807*/          OPC_CheckType, MVT::v2i64,
/* 11809*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11811*/          OPC_EmitConvertToTarget, 2,
/* 11813*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11816*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11819*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsluv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (add:{ *:[v2i64] } (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v2i64] }:$src1) - Complexity = 12
                    // Dst: (VMLALsluv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 11831*/        0, /*End of Scope*/
/* 11832*/      0, // EndSwitchOpcode
/* 11833*/    /*Scope*/ 41|128,1/*169*/, /*->12004*/
/* 11835*/      OPC_RecordChild0, // #0 = $src1
/* 11836*/      OPC_MoveChild1,
/* 11837*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 11840*/      OPC_Scope, 106, /*->11948*/ // 2 children in Scope
/* 11842*/        OPC_RecordChild0, // #1 = $src2
/* 11843*/        OPC_MoveChild1,
/* 11844*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11847*/        OPC_RecordChild0, // #2 = $src3
/* 11848*/        OPC_Scope, 48, /*->11898*/ // 2 children in Scope
/* 11850*/          OPC_CheckChild0Type, MVT::v8i16,
/* 11852*/          OPC_RecordChild1, // #3 = $lane
/* 11853*/          OPC_MoveChild1,
/* 11854*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11857*/          OPC_MoveParent,
/* 11858*/          OPC_MoveParent,
/* 11859*/          OPC_MoveParent,
/* 11860*/          OPC_CheckType, MVT::v8i16,
/* 11862*/          OPC_EmitConvertToTarget, 3,
/* 11864*/          OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 11867*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 11875*/          OPC_EmitConvertToTarget, 3,
/* 11877*/          OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 11880*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11883*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11886*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                        MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 11898*/        /*Scope*/ 48, /*->11947*/
/* 11899*/          OPC_CheckChild0Type, MVT::v4i32,
/* 11901*/          OPC_RecordChild1, // #3 = $lane
/* 11902*/          OPC_MoveChild1,
/* 11903*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11906*/          OPC_MoveParent,
/* 11907*/          OPC_MoveParent,
/* 11908*/          OPC_MoveParent,
/* 11909*/          OPC_CheckType, MVT::v4i32,
/* 11911*/          OPC_EmitConvertToTarget, 3,
/* 11913*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 11916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 11924*/          OPC_EmitConvertToTarget, 3,
/* 11926*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 11929*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11932*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11935*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 11947*/        0, /*End of Scope*/
/* 11948*/      /*Scope*/ 54, /*->12003*/
/* 11949*/        OPC_MoveChild0,
/* 11950*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 11953*/        OPC_RecordChild0, // #1 = $src3
/* 11954*/        OPC_CheckChild0Type, MVT::v8i16,
/* 11956*/        OPC_RecordChild1, // #2 = $lane
/* 11957*/        OPC_MoveChild1,
/* 11958*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11961*/        OPC_MoveParent,
/* 11962*/        OPC_MoveParent,
/* 11963*/        OPC_RecordChild1, // #3 = $src2
/* 11964*/        OPC_MoveParent,
/* 11965*/        OPC_CheckType, MVT::v8i16,
/* 11967*/        OPC_EmitConvertToTarget, 2,
/* 11969*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 11972*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 11980*/        OPC_EmitConvertToTarget, 2,
/* 11982*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 11985*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11988*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11991*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 12
                  // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12003*/      0, /*End of Scope*/
/* 12004*/    /*Scope*/ 118, /*->12123*/
/* 12005*/      OPC_MoveChild0,
/* 12006*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12009*/      OPC_Scope, 55, /*->12066*/ // 2 children in Scope
/* 12011*/        OPC_RecordChild0, // #0 = $src2
/* 12012*/        OPC_MoveChild1,
/* 12013*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12016*/        OPC_RecordChild0, // #1 = $src3
/* 12017*/        OPC_CheckChild0Type, MVT::v8i16,
/* 12019*/        OPC_RecordChild1, // #2 = $lane
/* 12020*/        OPC_MoveChild1,
/* 12021*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12024*/        OPC_MoveParent,
/* 12025*/        OPC_MoveParent,
/* 12026*/        OPC_MoveParent,
/* 12027*/        OPC_RecordChild1, // #3 = $src1
/* 12028*/        OPC_CheckType, MVT::v8i16,
/* 12030*/        OPC_EmitConvertToTarget, 2,
/* 12032*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 12035*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 12043*/        OPC_EmitConvertToTarget, 2,
/* 12045*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 12048*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12051*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12054*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v8i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12066*/      /*Scope*/ 55, /*->12122*/
/* 12067*/        OPC_MoveChild0,
/* 12068*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12071*/        OPC_RecordChild0, // #0 = $src3
/* 12072*/        OPC_CheckChild0Type, MVT::v8i16,
/* 12074*/        OPC_RecordChild1, // #1 = $lane
/* 12075*/        OPC_MoveChild1,
/* 12076*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12079*/        OPC_MoveParent,
/* 12080*/        OPC_MoveParent,
/* 12081*/        OPC_RecordChild1, // #2 = $src2
/* 12082*/        OPC_MoveParent,
/* 12083*/        OPC_RecordChild1, // #3 = $src1
/* 12084*/        OPC_CheckType, MVT::v8i16,
/* 12086*/        OPC_EmitConvertToTarget, 1,
/* 12088*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 12091*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 5,  // Results = #6
/* 12099*/        OPC_EmitConvertToTarget, 1,
/* 12101*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 12104*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12110*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2), QPR:{ *:[v8i16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12122*/      0, /*End of Scope*/
/* 12123*/    /*Scope*/ 59, /*->12183*/
/* 12124*/      OPC_RecordChild0, // #0 = $src1
/* 12125*/      OPC_MoveChild1,
/* 12126*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12129*/      OPC_MoveChild0,
/* 12130*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12133*/      OPC_RecordChild0, // #1 = $src3
/* 12134*/      OPC_CheckChild0Type, MVT::v4i32,
/* 12136*/      OPC_RecordChild1, // #2 = $lane
/* 12137*/      OPC_MoveChild1,
/* 12138*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12141*/      OPC_MoveParent,
/* 12142*/      OPC_MoveParent,
/* 12143*/      OPC_RecordChild1, // #3 = $src2
/* 12144*/      OPC_MoveParent,
/* 12145*/      OPC_CheckType, MVT::v4i32,
/* 12147*/      OPC_EmitConvertToTarget, 2,
/* 12149*/      OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 12152*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 12160*/      OPC_EmitConvertToTarget, 2,
/* 12162*/      OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 12165*/      OPC_EmitInteger, MVT::i32, 14, 
/* 12168*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12171*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 12
                // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12183*/    /*Scope*/ 118, /*->12302*/
/* 12184*/      OPC_MoveChild0,
/* 12185*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12188*/      OPC_Scope, 55, /*->12245*/ // 2 children in Scope
/* 12190*/        OPC_RecordChild0, // #0 = $src2
/* 12191*/        OPC_MoveChild1,
/* 12192*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12195*/        OPC_RecordChild0, // #1 = $src3
/* 12196*/        OPC_CheckChild0Type, MVT::v4i32,
/* 12198*/        OPC_RecordChild1, // #2 = $lane
/* 12199*/        OPC_MoveChild1,
/* 12200*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12203*/        OPC_MoveParent,
/* 12204*/        OPC_MoveParent,
/* 12205*/        OPC_MoveParent,
/* 12206*/        OPC_RecordChild1, // #3 = $src1
/* 12207*/        OPC_CheckType, MVT::v4i32,
/* 12209*/        OPC_EmitConvertToTarget, 2,
/* 12211*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 12214*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 12222*/        OPC_EmitConvertToTarget, 2,
/* 12224*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 12227*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12230*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12245*/      /*Scope*/ 55, /*->12301*/
/* 12246*/        OPC_MoveChild0,
/* 12247*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12250*/        OPC_RecordChild0, // #0 = $src3
/* 12251*/        OPC_CheckChild0Type, MVT::v4i32,
/* 12253*/        OPC_RecordChild1, // #1 = $lane
/* 12254*/        OPC_MoveChild1,
/* 12255*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12258*/        OPC_MoveParent,
/* 12259*/        OPC_MoveParent,
/* 12260*/        OPC_RecordChild1, // #2 = $src2
/* 12261*/        OPC_MoveParent,
/* 12262*/        OPC_RecordChild1, // #3 = $src1
/* 12263*/        OPC_CheckType, MVT::v4i32,
/* 12265*/        OPC_EmitConvertToTarget, 1,
/* 12267*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 12270*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 5,  // Results = #6
/* 12278*/        OPC_EmitConvertToTarget, 1,
/* 12280*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 12283*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12286*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12289*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2), QPR:{ *:[v4i32] }:$src1) - Complexity = 12
                  // Dst: (VMLAslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 12301*/      0, /*End of Scope*/
/* 12302*/    /*Scope*/ 103|128,2/*359*/, /*->12663*/
/* 12304*/      OPC_RecordChild0, // #0 = $src1
/* 12305*/      OPC_MoveChild1,
/* 12306*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 12309*/      OPC_Scope, 46|128,1/*174*/, /*->12486*/ // 2 children in Scope
/* 12312*/        OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 12315*/        OPC_RecordChild1, // #1 = $Vn
/* 12316*/        OPC_Scope, 27, /*->12345*/ // 6 children in Scope
/* 12318*/          OPC_CheckChild1Type, MVT::v8i8,
/* 12320*/          OPC_RecordChild2, // #2 = $Vm
/* 12321*/          OPC_CheckChild2Type, MVT::v8i8,
/* 12323*/          OPC_MoveParent,
/* 12324*/          OPC_CheckType, MVT::v8i8,
/* 12326*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12328*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12331*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12334*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12345*/        /*Scope*/ 27, /*->12373*/
/* 12346*/          OPC_CheckChild1Type, MVT::v4i16,
/* 12348*/          OPC_RecordChild2, // #2 = $Vm
/* 12349*/          OPC_CheckChild2Type, MVT::v4i16,
/* 12351*/          OPC_MoveParent,
/* 12352*/          OPC_CheckType, MVT::v4i16,
/* 12354*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12356*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12359*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12362*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12373*/        /*Scope*/ 27, /*->12401*/
/* 12374*/          OPC_CheckChild1Type, MVT::v2i32,
/* 12376*/          OPC_RecordChild2, // #2 = $Vm
/* 12377*/          OPC_CheckChild2Type, MVT::v2i32,
/* 12379*/          OPC_MoveParent,
/* 12380*/          OPC_CheckType, MVT::v2i32,
/* 12382*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12384*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12387*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12390*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12401*/        /*Scope*/ 27, /*->12429*/
/* 12402*/          OPC_CheckChild1Type, MVT::v16i8,
/* 12404*/          OPC_RecordChild2, // #2 = $Vm
/* 12405*/          OPC_CheckChild2Type, MVT::v16i8,
/* 12407*/          OPC_MoveParent,
/* 12408*/          OPC_CheckType, MVT::v16i8,
/* 12410*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12412*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12415*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12418*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 1016:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 12429*/        /*Scope*/ 27, /*->12457*/
/* 12430*/          OPC_CheckChild1Type, MVT::v8i16,
/* 12432*/          OPC_RecordChild2, // #2 = $Vm
/* 12433*/          OPC_CheckChild2Type, MVT::v8i16,
/* 12435*/          OPC_MoveParent,
/* 12436*/          OPC_CheckType, MVT::v8i16,
/* 12438*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12440*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12446*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1016:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 12457*/        /*Scope*/ 27, /*->12485*/
/* 12458*/          OPC_CheckChild1Type, MVT::v4i32,
/* 12460*/          OPC_RecordChild2, // #2 = $Vm
/* 12461*/          OPC_CheckChild2Type, MVT::v4i32,
/* 12463*/          OPC_MoveParent,
/* 12464*/          OPC_CheckType, MVT::v4i32,
/* 12466*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12468*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12471*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12474*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1016:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 12485*/        0, /*End of Scope*/
/* 12486*/      /*Scope*/ 46|128,1/*174*/, /*->12662*/
/* 12488*/        OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 12491*/        OPC_RecordChild1, // #1 = $Vn
/* 12492*/        OPC_Scope, 27, /*->12521*/ // 6 children in Scope
/* 12494*/          OPC_CheckChild1Type, MVT::v8i8,
/* 12496*/          OPC_RecordChild2, // #2 = $Vm
/* 12497*/          OPC_CheckChild2Type, MVT::v8i8,
/* 12499*/          OPC_MoveParent,
/* 12500*/          OPC_CheckType, MVT::v8i8,
/* 12502*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12504*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12507*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12510*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12521*/        /*Scope*/ 27, /*->12549*/
/* 12522*/          OPC_CheckChild1Type, MVT::v4i16,
/* 12524*/          OPC_RecordChild2, // #2 = $Vm
/* 12525*/          OPC_CheckChild2Type, MVT::v4i16,
/* 12527*/          OPC_MoveParent,
/* 12528*/          OPC_CheckType, MVT::v4i16,
/* 12530*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12532*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12535*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12538*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12549*/        /*Scope*/ 27, /*->12577*/
/* 12550*/          OPC_CheckChild1Type, MVT::v2i32,
/* 12552*/          OPC_RecordChild2, // #2 = $Vm
/* 12553*/          OPC_CheckChild2Type, MVT::v2i32,
/* 12555*/          OPC_MoveParent,
/* 12556*/          OPC_CheckType, MVT::v2i32,
/* 12558*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12560*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12563*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12566*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12577*/        /*Scope*/ 27, /*->12605*/
/* 12578*/          OPC_CheckChild1Type, MVT::v16i8,
/* 12580*/          OPC_RecordChild2, // #2 = $Vm
/* 12581*/          OPC_CheckChild2Type, MVT::v16i8,
/* 12583*/          OPC_MoveParent,
/* 12584*/          OPC_CheckType, MVT::v16i8,
/* 12586*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12588*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12591*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12594*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 1017:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 12605*/        /*Scope*/ 27, /*->12633*/
/* 12606*/          OPC_CheckChild1Type, MVT::v8i16,
/* 12608*/          OPC_RecordChild2, // #2 = $Vm
/* 12609*/          OPC_CheckChild2Type, MVT::v8i16,
/* 12611*/          OPC_MoveParent,
/* 12612*/          OPC_CheckType, MVT::v8i16,
/* 12614*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12616*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12619*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12622*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1017:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 12633*/        /*Scope*/ 27, /*->12661*/
/* 12634*/          OPC_CheckChild1Type, MVT::v4i32,
/* 12636*/          OPC_RecordChild2, // #2 = $Vm
/* 12637*/          OPC_CheckChild2Type, MVT::v4i32,
/* 12639*/          OPC_MoveParent,
/* 12640*/          OPC_CheckType, MVT::v4i32,
/* 12642*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12644*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12647*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12650*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1017:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 12661*/        0, /*End of Scope*/
/* 12662*/      0, /*End of Scope*/
/* 12663*/    /*Scope*/ 7|128,4/*519*/, /*->13184*/
/* 12665*/      OPC_MoveChild0,
/* 12666*/      OPC_SwitchOpcode /*3 cases */, 110|128,2/*366*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->13037
/* 12671*/        OPC_Scope, 52|128,1/*180*/, /*->12854*/ // 2 children in Scope
/* 12674*/          OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 12677*/          OPC_RecordChild1, // #0 = $Vn
/* 12678*/          OPC_Scope, 28, /*->12708*/ // 6 children in Scope
/* 12680*/            OPC_CheckChild1Type, MVT::v8i8,
/* 12682*/            OPC_RecordChild2, // #1 = $Vm
/* 12683*/            OPC_CheckChild2Type, MVT::v8i8,
/* 12685*/            OPC_MoveParent,
/* 12686*/            OPC_RecordChild1, // #2 = $src1
/* 12687*/            OPC_CheckType, MVT::v8i8,
/* 12689*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12691*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12694*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12697*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i8), 0,
                          MVT::v8i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) - Complexity = 11
                      // Dst: (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12708*/          /*Scope*/ 28, /*->12737*/
/* 12709*/            OPC_CheckChild1Type, MVT::v4i16,
/* 12711*/            OPC_RecordChild2, // #1 = $Vm
/* 12712*/            OPC_CheckChild2Type, MVT::v4i16,
/* 12714*/            OPC_MoveParent,
/* 12715*/            OPC_RecordChild1, // #2 = $src1
/* 12716*/            OPC_CheckType, MVT::v4i16,
/* 12718*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12720*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12723*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12726*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 11
                      // Dst: (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12737*/          /*Scope*/ 28, /*->12766*/
/* 12738*/            OPC_CheckChild1Type, MVT::v2i32,
/* 12740*/            OPC_RecordChild2, // #1 = $Vm
/* 12741*/            OPC_CheckChild2Type, MVT::v2i32,
/* 12743*/            OPC_MoveParent,
/* 12744*/            OPC_RecordChild1, // #2 = $src1
/* 12745*/            OPC_CheckType, MVT::v2i32,
/* 12747*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12749*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12752*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12755*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 11
                      // Dst: (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12766*/          /*Scope*/ 28, /*->12795*/
/* 12767*/            OPC_CheckChild1Type, MVT::v16i8,
/* 12769*/            OPC_RecordChild2, // #1 = $Vm
/* 12770*/            OPC_CheckChild2Type, MVT::v16i8,
/* 12772*/            OPC_MoveParent,
/* 12773*/            OPC_RecordChild1, // #2 = $src1
/* 12774*/            OPC_CheckType, MVT::v16i8,
/* 12776*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12778*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12781*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12784*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv16i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1016:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) - Complexity = 11
                      // Dst: (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 12795*/          /*Scope*/ 28, /*->12824*/
/* 12796*/            OPC_CheckChild1Type, MVT::v8i16,
/* 12798*/            OPC_RecordChild2, // #1 = $Vm
/* 12799*/            OPC_CheckChild2Type, MVT::v8i16,
/* 12801*/            OPC_MoveParent,
/* 12802*/            OPC_RecordChild1, // #2 = $src1
/* 12803*/            OPC_CheckType, MVT::v8i16,
/* 12805*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12807*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12810*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12813*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1016:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 11
                      // Dst: (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 12824*/          /*Scope*/ 28, /*->12853*/
/* 12825*/            OPC_CheckChild1Type, MVT::v4i32,
/* 12827*/            OPC_RecordChild2, // #1 = $Vm
/* 12828*/            OPC_CheckChild2Type, MVT::v4i32,
/* 12830*/            OPC_MoveParent,
/* 12831*/            OPC_RecordChild1, // #2 = $src1
/* 12832*/            OPC_CheckType, MVT::v4i32,
/* 12834*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12836*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12839*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12842*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1016:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                      // Dst: (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 12853*/          0, /*End of Scope*/
/* 12854*/        /*Scope*/ 52|128,1/*180*/, /*->13036*/
/* 12856*/          OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 12859*/          OPC_RecordChild1, // #0 = $Vn
/* 12860*/          OPC_Scope, 28, /*->12890*/ // 6 children in Scope
/* 12862*/            OPC_CheckChild1Type, MVT::v8i8,
/* 12864*/            OPC_RecordChild2, // #1 = $Vm
/* 12865*/            OPC_CheckChild2Type, MVT::v8i8,
/* 12867*/            OPC_MoveParent,
/* 12868*/            OPC_RecordChild1, // #2 = $src1
/* 12869*/            OPC_CheckType, MVT::v8i8,
/* 12871*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12873*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12876*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12879*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i8), 0,
                          MVT::v8i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) - Complexity = 11
                      // Dst: (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12890*/          /*Scope*/ 28, /*->12919*/
/* 12891*/            OPC_CheckChild1Type, MVT::v4i16,
/* 12893*/            OPC_RecordChild2, // #1 = $Vm
/* 12894*/            OPC_CheckChild2Type, MVT::v4i16,
/* 12896*/            OPC_MoveParent,
/* 12897*/            OPC_RecordChild1, // #2 = $src1
/* 12898*/            OPC_CheckType, MVT::v4i16,
/* 12900*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12902*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12905*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12908*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 11
                      // Dst: (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12919*/          /*Scope*/ 28, /*->12948*/
/* 12920*/            OPC_CheckChild1Type, MVT::v2i32,
/* 12922*/            OPC_RecordChild2, // #1 = $Vm
/* 12923*/            OPC_CheckChild2Type, MVT::v2i32,
/* 12925*/            OPC_MoveParent,
/* 12926*/            OPC_RecordChild1, // #2 = $src1
/* 12927*/            OPC_CheckType, MVT::v2i32,
/* 12929*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12931*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12934*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12937*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 11
                      // Dst: (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12948*/          /*Scope*/ 28, /*->12977*/
/* 12949*/            OPC_CheckChild1Type, MVT::v16i8,
/* 12951*/            OPC_RecordChild2, // #1 = $Vm
/* 12952*/            OPC_CheckChild2Type, MVT::v16i8,
/* 12954*/            OPC_MoveParent,
/* 12955*/            OPC_RecordChild1, // #2 = $src1
/* 12956*/            OPC_CheckType, MVT::v16i8,
/* 12958*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12960*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12963*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12966*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv16i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1017:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) - Complexity = 11
                      // Dst: (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 12977*/          /*Scope*/ 28, /*->13006*/
/* 12978*/            OPC_CheckChild1Type, MVT::v8i16,
/* 12980*/            OPC_RecordChild2, // #1 = $Vm
/* 12981*/            OPC_CheckChild2Type, MVT::v8i16,
/* 12983*/            OPC_MoveParent,
/* 12984*/            OPC_RecordChild1, // #2 = $src1
/* 12985*/            OPC_CheckType, MVT::v8i16,
/* 12987*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12989*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12992*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12995*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1017:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 11
                      // Dst: (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 13006*/          /*Scope*/ 28, /*->13035*/
/* 13007*/            OPC_CheckChild1Type, MVT::v4i32,
/* 13009*/            OPC_RecordChild2, // #1 = $Vm
/* 13010*/            OPC_CheckChild2Type, MVT::v4i32,
/* 13012*/            OPC_MoveParent,
/* 13013*/            OPC_RecordChild1, // #2 = $src1
/* 13014*/            OPC_CheckType, MVT::v4i32,
/* 13016*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13018*/            OPC_EmitInteger, MVT::i32, 14, 
/* 13021*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13024*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1017:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                      // Dst: (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 13035*/          0, /*End of Scope*/
/* 13036*/        0, /*End of Scope*/
/* 13037*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::SIGN_EXTEND),// ->13110
/* 13040*/        OPC_RecordChild0, // #0 = $Vn
/* 13041*/        OPC_MoveParent,
/* 13042*/        OPC_MoveChild1,
/* 13043*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 13046*/        OPC_RecordChild0, // #1 = $Vm
/* 13047*/        OPC_MoveParent,
/* 13048*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->13069
/* 13051*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13053*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13056*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13059*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 13069*/        /*SwitchType*/ 18, MVT::v4i32,// ->13089
/* 13071*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13073*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13076*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13079*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 13089*/        /*SwitchType*/ 18, MVT::v2i64,// ->13109
/* 13091*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13093*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13096*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13099*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 13109*/        0, // EndSwitchType
/* 13110*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::ZERO_EXTEND),// ->13183
/* 13113*/        OPC_RecordChild0, // #0 = $Vn
/* 13114*/        OPC_MoveParent,
/* 13115*/        OPC_MoveChild1,
/* 13116*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 13119*/        OPC_RecordChild0, // #1 = $Vm
/* 13120*/        OPC_MoveParent,
/* 13121*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->13142
/* 13124*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13126*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13129*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13132*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 13142*/        /*SwitchType*/ 18, MVT::v4i32,// ->13162
/* 13144*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13146*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13149*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13152*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 13162*/        /*SwitchType*/ 18, MVT::v2i64,// ->13182
/* 13164*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13166*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13169*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13172*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDLuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 9
                    // Dst: (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 13182*/        0, // EndSwitchType
/* 13183*/      0, // EndSwitchOpcode
/* 13184*/    /*Scope*/ 28|128,6/*796*/, /*->13982*/
/* 13186*/      OPC_RecordChild0, // #0 = $src1
/* 13187*/      OPC_MoveChild1,
/* 13188*/      OPC_SwitchOpcode /*4 cases */, 66|128,1/*194*/, TARGET_VAL(ARMISD::VSHRs),// ->13387
/* 13193*/        OPC_RecordChild0, // #1 = $Vm
/* 13194*/        OPC_RecordChild1, // #2 = $SIMM
/* 13195*/        OPC_MoveChild1,
/* 13196*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13199*/        OPC_MoveParent,
/* 13200*/        OPC_MoveParent,
/* 13201*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->13225
/* 13204*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13206*/          OPC_EmitConvertToTarget, 2,
/* 13208*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13211*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13214*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13225*/        /*SwitchType*/ 21, MVT::v4i16,// ->13248
/* 13227*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13229*/          OPC_EmitConvertToTarget, 2,
/* 13231*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13234*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13237*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13248*/        /*SwitchType*/ 21, MVT::v2i32,// ->13271
/* 13250*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13252*/          OPC_EmitConvertToTarget, 2,
/* 13254*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13257*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13260*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13271*/        /*SwitchType*/ 21, MVT::v1i64,// ->13294
/* 13273*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13275*/          OPC_EmitConvertToTarget, 2,
/* 13277*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13280*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13283*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13294*/        /*SwitchType*/ 21, MVT::v16i8,// ->13317
/* 13296*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13298*/          OPC_EmitConvertToTarget, 2,
/* 13300*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13303*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13306*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13317*/        /*SwitchType*/ 21, MVT::v8i16,// ->13340
/* 13319*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13321*/          OPC_EmitConvertToTarget, 2,
/* 13323*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13326*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13329*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13340*/        /*SwitchType*/ 21, MVT::v4i32,// ->13363
/* 13342*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13344*/          OPC_EmitConvertToTarget, 2,
/* 13346*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13349*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13352*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13363*/        /*SwitchType*/ 21, MVT::v2i64,// ->13386
/* 13365*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13367*/          OPC_EmitConvertToTarget, 2,
/* 13369*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13372*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13375*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13386*/        0, // EndSwitchType
/* 13387*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSHRu),// ->13585
/* 13391*/        OPC_RecordChild0, // #1 = $Vm
/* 13392*/        OPC_RecordChild1, // #2 = $SIMM
/* 13393*/        OPC_MoveChild1,
/* 13394*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13397*/        OPC_MoveParent,
/* 13398*/        OPC_MoveParent,
/* 13399*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->13423
/* 13402*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13404*/          OPC_EmitConvertToTarget, 2,
/* 13406*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13409*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13412*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13423*/        /*SwitchType*/ 21, MVT::v4i16,// ->13446
/* 13425*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13427*/          OPC_EmitConvertToTarget, 2,
/* 13429*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13432*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13446*/        /*SwitchType*/ 21, MVT::v2i32,// ->13469
/* 13448*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13450*/          OPC_EmitConvertToTarget, 2,
/* 13452*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13455*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13458*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13469*/        /*SwitchType*/ 21, MVT::v1i64,// ->13492
/* 13471*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13473*/          OPC_EmitConvertToTarget, 2,
/* 13475*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13478*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13481*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13492*/        /*SwitchType*/ 21, MVT::v16i8,// ->13515
/* 13494*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13496*/          OPC_EmitConvertToTarget, 2,
/* 13498*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13501*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13504*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13515*/        /*SwitchType*/ 21, MVT::v8i16,// ->13538
/* 13517*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13519*/          OPC_EmitConvertToTarget, 2,
/* 13521*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13524*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13527*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13538*/        /*SwitchType*/ 21, MVT::v4i32,// ->13561
/* 13540*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13542*/          OPC_EmitConvertToTarget, 2,
/* 13544*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13547*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13550*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13561*/        /*SwitchType*/ 21, MVT::v2i64,// ->13584
/* 13563*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13565*/          OPC_EmitConvertToTarget, 2,
/* 13567*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13570*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13573*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13584*/        0, // EndSwitchType
/* 13585*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VRSHRs),// ->13783
/* 13589*/        OPC_RecordChild0, // #1 = $Vm
/* 13590*/        OPC_RecordChild1, // #2 = $SIMM
/* 13591*/        OPC_MoveChild1,
/* 13592*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13595*/        OPC_MoveParent,
/* 13596*/        OPC_MoveParent,
/* 13597*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->13621
/* 13600*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13602*/          OPC_EmitConvertToTarget, 2,
/* 13604*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13607*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13610*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvrshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13621*/        /*SwitchType*/ 21, MVT::v4i16,// ->13644
/* 13623*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13625*/          OPC_EmitConvertToTarget, 2,
/* 13627*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13630*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13633*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvrshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13644*/        /*SwitchType*/ 21, MVT::v2i32,// ->13667
/* 13646*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13648*/          OPC_EmitConvertToTarget, 2,
/* 13650*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13653*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13656*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvrshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13667*/        /*SwitchType*/ 21, MVT::v1i64,// ->13690
/* 13669*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13671*/          OPC_EmitConvertToTarget, 2,
/* 13673*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13676*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13679*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvrshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13690*/        /*SwitchType*/ 21, MVT::v16i8,// ->13713
/* 13692*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13694*/          OPC_EmitConvertToTarget, 2,
/* 13696*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13699*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13702*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvrshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13713*/        /*SwitchType*/ 21, MVT::v8i16,// ->13736
/* 13715*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13717*/          OPC_EmitConvertToTarget, 2,
/* 13719*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13722*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13725*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvrshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13736*/        /*SwitchType*/ 21, MVT::v4i32,// ->13759
/* 13738*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13740*/          OPC_EmitConvertToTarget, 2,
/* 13742*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13745*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13748*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvrshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13759*/        /*SwitchType*/ 21, MVT::v2i64,// ->13782
/* 13761*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13763*/          OPC_EmitConvertToTarget, 2,
/* 13765*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13768*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13771*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvrshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13782*/        0, // EndSwitchType
/* 13783*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VRSHRu),// ->13981
/* 13787*/        OPC_RecordChild0, // #1 = $Vm
/* 13788*/        OPC_RecordChild1, // #2 = $SIMM
/* 13789*/        OPC_MoveChild1,
/* 13790*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13793*/        OPC_MoveParent,
/* 13794*/        OPC_MoveParent,
/* 13795*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->13819
/* 13798*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13800*/          OPC_EmitConvertToTarget, 2,
/* 13802*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13805*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13808*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvrshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13819*/        /*SwitchType*/ 21, MVT::v4i16,// ->13842
/* 13821*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13823*/          OPC_EmitConvertToTarget, 2,
/* 13825*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13828*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13831*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvrshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13842*/        /*SwitchType*/ 21, MVT::v2i32,// ->13865
/* 13844*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13846*/          OPC_EmitConvertToTarget, 2,
/* 13848*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13851*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13854*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvrshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13865*/        /*SwitchType*/ 21, MVT::v1i64,// ->13888
/* 13867*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13869*/          OPC_EmitConvertToTarget, 2,
/* 13871*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13874*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13877*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvrshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13888*/        /*SwitchType*/ 21, MVT::v16i8,// ->13911
/* 13890*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13892*/          OPC_EmitConvertToTarget, 2,
/* 13894*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13897*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13900*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvrshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13911*/        /*SwitchType*/ 21, MVT::v8i16,// ->13934
/* 13913*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13915*/          OPC_EmitConvertToTarget, 2,
/* 13917*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13920*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13923*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvrshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13934*/        /*SwitchType*/ 21, MVT::v4i32,// ->13957
/* 13936*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13938*/          OPC_EmitConvertToTarget, 2,
/* 13940*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13943*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13946*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvrshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13957*/        /*SwitchType*/ 21, MVT::v2i64,// ->13980
/* 13959*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13961*/          OPC_EmitConvertToTarget, 2,
/* 13963*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13966*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13969*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvrshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 13980*/        0, // EndSwitchType
/* 13981*/      0, // EndSwitchOpcode
/* 13982*/    /*Scope*/ 31|128,6/*799*/, /*->14783*/
/* 13984*/      OPC_MoveChild0,
/* 13985*/      OPC_SwitchOpcode /*4 cases */, 67|128,1/*195*/, TARGET_VAL(ARMISD::VSHRs),// ->14185
/* 13990*/        OPC_RecordChild0, // #0 = $Vm
/* 13991*/        OPC_RecordChild1, // #1 = $SIMM
/* 13992*/        OPC_MoveChild1,
/* 13993*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13996*/        OPC_MoveParent,
/* 13997*/        OPC_MoveParent,
/* 13998*/        OPC_RecordChild1, // #2 = $src1
/* 13999*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->14023
/* 14002*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14004*/          OPC_EmitConvertToTarget, 1,
/* 14006*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14012*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14023*/        /*SwitchType*/ 21, MVT::v4i16,// ->14046
/* 14025*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14027*/          OPC_EmitConvertToTarget, 1,
/* 14029*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14032*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14035*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14046*/        /*SwitchType*/ 21, MVT::v2i32,// ->14069
/* 14048*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14050*/          OPC_EmitConvertToTarget, 1,
/* 14052*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14055*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14058*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14069*/        /*SwitchType*/ 21, MVT::v1i64,// ->14092
/* 14071*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14073*/          OPC_EmitConvertToTarget, 1,
/* 14075*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14078*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14081*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14092*/        /*SwitchType*/ 21, MVT::v16i8,// ->14115
/* 14094*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14096*/          OPC_EmitConvertToTarget, 1,
/* 14098*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14101*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14104*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14115*/        /*SwitchType*/ 21, MVT::v8i16,// ->14138
/* 14117*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14119*/          OPC_EmitConvertToTarget, 1,
/* 14121*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14124*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14127*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14138*/        /*SwitchType*/ 21, MVT::v4i32,// ->14161
/* 14140*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14142*/          OPC_EmitConvertToTarget, 1,
/* 14144*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14147*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14150*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14161*/        /*SwitchType*/ 21, MVT::v2i64,// ->14184
/* 14163*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14165*/          OPC_EmitConvertToTarget, 1,
/* 14167*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14170*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14173*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14184*/        0, // EndSwitchType
/* 14185*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VSHRu),// ->14384
/* 14189*/        OPC_RecordChild0, // #0 = $Vm
/* 14190*/        OPC_RecordChild1, // #1 = $SIMM
/* 14191*/        OPC_MoveChild1,
/* 14192*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14195*/        OPC_MoveParent,
/* 14196*/        OPC_MoveParent,
/* 14197*/        OPC_RecordChild1, // #2 = $src1
/* 14198*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->14222
/* 14201*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14203*/          OPC_EmitConvertToTarget, 1,
/* 14205*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14208*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14211*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14222*/        /*SwitchType*/ 21, MVT::v4i16,// ->14245
/* 14224*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14226*/          OPC_EmitConvertToTarget, 1,
/* 14228*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14231*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14234*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14245*/        /*SwitchType*/ 21, MVT::v2i32,// ->14268
/* 14247*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14249*/          OPC_EmitConvertToTarget, 1,
/* 14251*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14254*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14257*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14268*/        /*SwitchType*/ 21, MVT::v1i64,// ->14291
/* 14270*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14272*/          OPC_EmitConvertToTarget, 1,
/* 14274*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14277*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14280*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14291*/        /*SwitchType*/ 21, MVT::v16i8,// ->14314
/* 14293*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14295*/          OPC_EmitConvertToTarget, 1,
/* 14297*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14300*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14303*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14314*/        /*SwitchType*/ 21, MVT::v8i16,// ->14337
/* 14316*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14318*/          OPC_EmitConvertToTarget, 1,
/* 14320*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14323*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14326*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14337*/        /*SwitchType*/ 21, MVT::v4i32,// ->14360
/* 14339*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14341*/          OPC_EmitConvertToTarget, 1,
/* 14343*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14346*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14349*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14360*/        /*SwitchType*/ 21, MVT::v2i64,// ->14383
/* 14362*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14364*/          OPC_EmitConvertToTarget, 1,
/* 14366*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14369*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14372*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14383*/        0, // EndSwitchType
/* 14384*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VRSHRs),// ->14583
/* 14388*/        OPC_RecordChild0, // #0 = $Vm
/* 14389*/        OPC_RecordChild1, // #1 = $SIMM
/* 14390*/        OPC_MoveChild1,
/* 14391*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14394*/        OPC_MoveParent,
/* 14395*/        OPC_MoveParent,
/* 14396*/        OPC_RecordChild1, // #2 = $src1
/* 14397*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->14421
/* 14400*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14402*/          OPC_EmitConvertToTarget, 1,
/* 14404*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14407*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14410*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvrshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14421*/        /*SwitchType*/ 21, MVT::v4i16,// ->14444
/* 14423*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14425*/          OPC_EmitConvertToTarget, 1,
/* 14427*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14430*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14433*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvrshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14444*/        /*SwitchType*/ 21, MVT::v2i32,// ->14467
/* 14446*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14448*/          OPC_EmitConvertToTarget, 1,
/* 14450*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14453*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14456*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvrshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14467*/        /*SwitchType*/ 21, MVT::v1i64,// ->14490
/* 14469*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14471*/          OPC_EmitConvertToTarget, 1,
/* 14473*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14476*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14479*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvrshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14490*/        /*SwitchType*/ 21, MVT::v16i8,// ->14513
/* 14492*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14494*/          OPC_EmitConvertToTarget, 1,
/* 14496*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14499*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14502*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvrshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14513*/        /*SwitchType*/ 21, MVT::v8i16,// ->14536
/* 14515*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14517*/          OPC_EmitConvertToTarget, 1,
/* 14519*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14522*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14525*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvrshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14536*/        /*SwitchType*/ 21, MVT::v4i32,// ->14559
/* 14538*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14540*/          OPC_EmitConvertToTarget, 1,
/* 14542*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14545*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14548*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvrshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14559*/        /*SwitchType*/ 21, MVT::v2i64,// ->14582
/* 14561*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14563*/          OPC_EmitConvertToTarget, 1,
/* 14565*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14568*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14571*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvrshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14582*/        0, // EndSwitchType
/* 14583*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VRSHRu),// ->14782
/* 14587*/        OPC_RecordChild0, // #0 = $Vm
/* 14588*/        OPC_RecordChild1, // #1 = $SIMM
/* 14589*/        OPC_MoveChild1,
/* 14590*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14593*/        OPC_MoveParent,
/* 14594*/        OPC_MoveParent,
/* 14595*/        OPC_RecordChild1, // #2 = $src1
/* 14596*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->14620
/* 14599*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14601*/          OPC_EmitConvertToTarget, 1,
/* 14603*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14606*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14609*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvrshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14620*/        /*SwitchType*/ 21, MVT::v4i16,// ->14643
/* 14622*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14624*/          OPC_EmitConvertToTarget, 1,
/* 14626*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14629*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14632*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvrshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14643*/        /*SwitchType*/ 21, MVT::v2i32,// ->14666
/* 14645*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14647*/          OPC_EmitConvertToTarget, 1,
/* 14649*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14652*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14655*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvrshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14666*/        /*SwitchType*/ 21, MVT::v1i64,// ->14689
/* 14668*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14670*/          OPC_EmitConvertToTarget, 1,
/* 14672*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14675*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14678*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvrshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14689*/        /*SwitchType*/ 21, MVT::v16i8,// ->14712
/* 14691*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14693*/          OPC_EmitConvertToTarget, 1,
/* 14695*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14698*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14701*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvrshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14712*/        /*SwitchType*/ 21, MVT::v8i16,// ->14735
/* 14714*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14716*/          OPC_EmitConvertToTarget, 1,
/* 14718*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14721*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14724*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvrshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14735*/        /*SwitchType*/ 21, MVT::v4i32,// ->14758
/* 14737*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14739*/          OPC_EmitConvertToTarget, 1,
/* 14741*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14744*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14747*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvrshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14758*/        /*SwitchType*/ 21, MVT::v2i64,// ->14781
/* 14760*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14762*/          OPC_EmitConvertToTarget, 1,
/* 14764*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14767*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14770*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvrshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14781*/        0, // EndSwitchType
/* 14782*/      0, // EndSwitchOpcode
/* 14783*/    /*Scope*/ 57|128,3/*441*/, /*->15226*/
/* 14785*/      OPC_RecordChild0, // #0 = $Vn
/* 14786*/      OPC_MoveChild1,
/* 14787*/      OPC_SwitchOpcode /*5 cases */, 64, TARGET_VAL(ISD::SIGN_EXTEND),// ->14855
/* 14791*/        OPC_RecordChild0, // #1 = $Vm
/* 14792*/        OPC_MoveParent,
/* 14793*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->14814
/* 14796*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14798*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14801*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14804*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14814*/        /*SwitchType*/ 18, MVT::v4i32,// ->14834
/* 14816*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14818*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14821*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14824*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14834*/        /*SwitchType*/ 18, MVT::v2i64,// ->14854
/* 14836*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14838*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14841*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14844*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14854*/        0, // EndSwitchType
/* 14855*/      /*SwitchOpcode*/ 64, TARGET_VAL(ISD::ZERO_EXTEND),// ->14922
/* 14858*/        OPC_RecordChild0, // #1 = $Vm
/* 14859*/        OPC_MoveParent,
/* 14860*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->14881
/* 14863*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14865*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14868*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14871*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14881*/        /*SwitchType*/ 18, MVT::v4i32,// ->14901
/* 14883*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14885*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14888*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14891*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14901*/        /*SwitchType*/ 18, MVT::v2i64,// ->14921
/* 14903*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14905*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14908*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14911*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                    // Dst: (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14921*/        0, // EndSwitchType
/* 14922*/      /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::MUL),// ->15057
/* 14926*/        OPC_RecordChild0, // #1 = $Vn
/* 14927*/        OPC_RecordChild1, // #2 = $Vm
/* 14928*/        OPC_MoveParent,
/* 14929*/        OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->14951
/* 14932*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14934*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14937*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14940*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14951*/        /*SwitchType*/ 19, MVT::v4i16,// ->14972
/* 14953*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14955*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14958*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14961*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14972*/        /*SwitchType*/ 19, MVT::v2i32,// ->14993
/* 14974*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14976*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14979*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14982*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14993*/        /*SwitchType*/ 19, MVT::v16i8,// ->15014
/* 14995*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14997*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15000*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15003*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 15014*/        /*SwitchType*/ 19, MVT::v8i16,// ->15035
/* 15016*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15018*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15021*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15024*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 15035*/        /*SwitchType*/ 19, MVT::v4i32,// ->15056
/* 15037*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15039*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15042*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15045*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 6
                    // Dst: (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 15056*/        0, // EndSwitchType
/* 15057*/      /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLs),// ->15141
/* 15060*/        OPC_RecordChild0, // #1 = $Vn
/* 15061*/        OPC_Scope, 25, /*->15088*/ // 3 children in Scope
/* 15063*/          OPC_CheckChild0Type, MVT::v8i8,
/* 15065*/          OPC_RecordChild1, // #2 = $Vm
/* 15066*/          OPC_MoveParent,
/* 15067*/          OPC_CheckType, MVT::v8i16,
/* 15069*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15071*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15074*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15077*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvmulls:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15088*/        /*Scope*/ 25, /*->15114*/
/* 15089*/          OPC_CheckChild0Type, MVT::v4i16,
/* 15091*/          OPC_RecordChild1, // #2 = $Vm
/* 15092*/          OPC_MoveParent,
/* 15093*/          OPC_CheckType, MVT::v4i32,
/* 15095*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15097*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15100*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15103*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15114*/        /*Scope*/ 25, /*->15140*/
/* 15115*/          OPC_CheckChild0Type, MVT::v2i32,
/* 15117*/          OPC_RecordChild1, // #2 = $Vm
/* 15118*/          OPC_MoveParent,
/* 15119*/          OPC_CheckType, MVT::v2i64,
/* 15121*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15123*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15126*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15129*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15140*/        0, /*End of Scope*/
/* 15141*/      /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLu),// ->15225
/* 15144*/        OPC_RecordChild0, // #1 = $Vn
/* 15145*/        OPC_Scope, 25, /*->15172*/ // 3 children in Scope
/* 15147*/          OPC_CheckChild0Type, MVT::v8i8,
/* 15149*/          OPC_RecordChild1, // #2 = $Vm
/* 15150*/          OPC_MoveParent,
/* 15151*/          OPC_CheckType, MVT::v8i16,
/* 15153*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15155*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15158*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15161*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvmullu:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15172*/        /*Scope*/ 25, /*->15198*/
/* 15173*/          OPC_CheckChild0Type, MVT::v4i16,
/* 15175*/          OPC_RecordChild1, // #2 = $Vm
/* 15176*/          OPC_MoveParent,
/* 15177*/          OPC_CheckType, MVT::v4i32,
/* 15179*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15181*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15184*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15187*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15198*/        /*Scope*/ 25, /*->15224*/
/* 15199*/          OPC_CheckChild0Type, MVT::v2i32,
/* 15201*/          OPC_RecordChild1, // #2 = $Vm
/* 15202*/          OPC_MoveParent,
/* 15203*/          OPC_CheckType, MVT::v2i64,
/* 15205*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15207*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15210*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15213*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                    // Dst: (VMLALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15224*/        0, /*End of Scope*/
/* 15225*/      0, // EndSwitchOpcode
/* 15226*/    /*Scope*/ 65|128,3/*449*/, /*->15677*/
/* 15228*/      OPC_MoveChild0,
/* 15229*/      OPC_SwitchOpcode /*5 cases */, 65, TARGET_VAL(ISD::SIGN_EXTEND),// ->15298
/* 15233*/        OPC_RecordChild0, // #0 = $Vm
/* 15234*/        OPC_MoveParent,
/* 15235*/        OPC_RecordChild1, // #1 = $Vn
/* 15236*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->15257
/* 15239*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15241*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15244*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15247*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) - Complexity = 6
                    // Dst: (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15257*/        /*SwitchType*/ 18, MVT::v4i32,// ->15277
/* 15259*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15261*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15264*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15267*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 6
                    // Dst: (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15277*/        /*SwitchType*/ 18, MVT::v2i64,// ->15297
/* 15279*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15281*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15284*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15287*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) - Complexity = 6
                    // Dst: (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15297*/        0, // EndSwitchType
/* 15298*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::ZERO_EXTEND),// ->15366
/* 15301*/        OPC_RecordChild0, // #0 = $Vm
/* 15302*/        OPC_MoveParent,
/* 15303*/        OPC_RecordChild1, // #1 = $Vn
/* 15304*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->15325
/* 15307*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15309*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15312*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15315*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) - Complexity = 6
                    // Dst: (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15325*/        /*SwitchType*/ 18, MVT::v4i32,// ->15345
/* 15327*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15329*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15332*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15335*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 6
                    // Dst: (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15345*/        /*SwitchType*/ 18, MVT::v2i64,// ->15365
/* 15347*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15349*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15352*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15355*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDWuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) - Complexity = 6
                    // Dst: (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15365*/        0, // EndSwitchType
/* 15366*/      /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ISD::MUL),// ->15502
/* 15370*/        OPC_RecordChild0, // #0 = $Vn
/* 15371*/        OPC_RecordChild1, // #1 = $Vm
/* 15372*/        OPC_MoveParent,
/* 15373*/        OPC_RecordChild1, // #2 = $src1
/* 15374*/        OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->15396
/* 15377*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15379*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15382*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15385*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i8] } (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) - Complexity = 6
                    // Dst: (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15396*/        /*SwitchType*/ 19, MVT::v4i16,// ->15417
/* 15398*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15400*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15403*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15406*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 6
                    // Dst: (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15417*/        /*SwitchType*/ 19, MVT::v2i32,// ->15438
/* 15419*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15421*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15424*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15427*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 6
                    // Dst: (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15438*/        /*SwitchType*/ 19, MVT::v16i8,// ->15459
/* 15440*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15442*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15445*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15448*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v16i8] } (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) - Complexity = 6
                    // Dst: (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 15459*/        /*SwitchType*/ 19, MVT::v8i16,// ->15480
/* 15461*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15463*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15466*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15469*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 6
                    // Dst: (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 15480*/        /*SwitchType*/ 19, MVT::v4i32,// ->15501
/* 15482*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15484*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15487*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15490*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 6
                    // Dst: (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 15501*/        0, // EndSwitchType
/* 15502*/      /*SwitchOpcode*/ 84, TARGET_VAL(ARMISD::VMULLs),// ->15589
/* 15505*/        OPC_RecordChild0, // #0 = $Vn
/* 15506*/        OPC_Scope, 26, /*->15534*/ // 3 children in Scope
/* 15508*/          OPC_CheckChild0Type, MVT::v8i8,
/* 15510*/          OPC_RecordChild1, // #1 = $Vm
/* 15511*/          OPC_MoveParent,
/* 15512*/          OPC_RecordChild1, // #2 = $src1
/* 15513*/          OPC_CheckType, MVT::v8i16,
/* 15515*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15517*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15520*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15523*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (NEONvmulls:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 6
                    // Dst: (VMLALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15534*/        /*Scope*/ 26, /*->15561*/
/* 15535*/          OPC_CheckChild0Type, MVT::v4i16,
/* 15537*/          OPC_RecordChild1, // #1 = $Vm
/* 15538*/          OPC_MoveParent,
/* 15539*/          OPC_RecordChild1, // #2 = $src1
/* 15540*/          OPC_CheckType, MVT::v4i32,
/* 15542*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15544*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15547*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15550*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 6
                    // Dst: (VMLALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15561*/        /*Scope*/ 26, /*->15588*/
/* 15562*/          OPC_CheckChild0Type, MVT::v2i32,
/* 15564*/          OPC_RecordChild1, // #1 = $Vm
/* 15565*/          OPC_MoveParent,
/* 15566*/          OPC_RecordChild1, // #2 = $src1
/* 15567*/          OPC_CheckType, MVT::v2i64,
/* 15569*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15571*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15574*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15577*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v2i64] } (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) - Complexity = 6
                    // Dst: (VMLALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15588*/        0, /*End of Scope*/
/* 15589*/      /*SwitchOpcode*/ 84, TARGET_VAL(ARMISD::VMULLu),// ->15676
/* 15592*/        OPC_RecordChild0, // #0 = $Vn
/* 15593*/        OPC_Scope, 26, /*->15621*/ // 3 children in Scope
/* 15595*/          OPC_CheckChild0Type, MVT::v8i8,
/* 15597*/          OPC_RecordChild1, // #1 = $Vm
/* 15598*/          OPC_MoveParent,
/* 15599*/          OPC_RecordChild1, // #2 = $src1
/* 15600*/          OPC_CheckType, MVT::v8i16,
/* 15602*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15604*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15607*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15610*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (NEONvmullu:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 6
                    // Dst: (VMLALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15621*/        /*Scope*/ 26, /*->15648*/
/* 15622*/          OPC_CheckChild0Type, MVT::v4i16,
/* 15624*/          OPC_RecordChild1, // #1 = $Vm
/* 15625*/          OPC_MoveParent,
/* 15626*/          OPC_RecordChild1, // #2 = $src1
/* 15627*/          OPC_CheckType, MVT::v4i32,
/* 15629*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15631*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15634*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15637*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 6
                    // Dst: (VMLALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15648*/        /*Scope*/ 26, /*->15675*/
/* 15649*/          OPC_CheckChild0Type, MVT::v2i32,
/* 15651*/          OPC_RecordChild1, // #1 = $Vm
/* 15652*/          OPC_MoveParent,
/* 15653*/          OPC_RecordChild1, // #2 = $src1
/* 15654*/          OPC_CheckType, MVT::v2i64,
/* 15656*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15658*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15661*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15664*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLALuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (add:{ *:[v2i64] } (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) - Complexity = 6
                    // Dst: (VMLALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15675*/        0, /*End of Scope*/
/* 15676*/      0, // EndSwitchOpcode
/* 15677*/    /*Scope*/ 36|128,1/*164*/, /*->15843*/
/* 15679*/      OPC_RecordChild0, // #0 = $Vn
/* 15680*/      OPC_RecordChild1, // #1 = $Vm
/* 15681*/      OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->15702
/* 15684*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15686*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15689*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15692*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VADDv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 15702*/      /*SwitchType*/ 18, MVT::v4i16,// ->15722
/* 15704*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15706*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15709*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15712*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VADDv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 15722*/      /*SwitchType*/ 18, MVT::v2i32,// ->15742
/* 15724*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15726*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15729*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15732*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VADDv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 15742*/      /*SwitchType*/ 18, MVT::v16i8,// ->15762
/* 15744*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15746*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15749*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15752*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VADDv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 15762*/      /*SwitchType*/ 18, MVT::v8i16,// ->15782
/* 15764*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15766*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15769*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15772*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VADDv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 15782*/      /*SwitchType*/ 18, MVT::v4i32,// ->15802
/* 15784*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15786*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15792*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VADDv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 15802*/      /*SwitchType*/ 18, MVT::v1i64,// ->15822
/* 15804*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15806*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15809*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15812*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                  // Dst: (VADDv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 15822*/      /*SwitchType*/ 18, MVT::v2i64,// ->15842
/* 15824*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15826*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15829*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15832*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                  // Dst: (VADDv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 15842*/      0, // EndSwitchType
/* 15843*/    0, /*End of Scope*/
/* 15844*/  /*SwitchOpcode*/ 37|128,19/*2469*/, TARGET_VAL(ISD::AND),// ->18317
/* 15848*/    OPC_Scope, 63, /*->15913*/ // 35 children in Scope
/* 15850*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 15855*/      OPC_MoveChild0,
/* 15856*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 15859*/      OPC_RecordChild0, // #0 = $Src
/* 15860*/      OPC_CheckChild1Integer, 8, 
/* 15862*/      OPC_CheckChild1Type, MVT::i32,
/* 15864*/      OPC_MoveParent,
/* 15865*/      OPC_CheckType, MVT::i32,
/* 15867*/      OPC_Scope, 21, /*->15890*/ // 2 children in Scope
/* 15869*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 15871*/        OPC_EmitInteger, MVT::i32, 1, 
/* 15874*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15877*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15880*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) - Complexity = 32
                  // Dst: (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
/* 15890*/      /*Scope*/ 21, /*->15912*/
/* 15891*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 15893*/        OPC_EmitInteger, MVT::i32, 1, 
/* 15896*/        OPC_EmitInteger, MVT::i32, 14, 
/* 15899*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15902*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) - Complexity = 32
                  // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
/* 15912*/      0, /*End of Scope*/
/* 15913*/    /*Scope*/ 44, /*->15958*/
/* 15914*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 15917*/      OPC_MoveChild0,
/* 15918*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 15921*/      OPC_RecordChild0, // #0 = $Rm
/* 15922*/      OPC_RecordChild1, // #1 = $rot
/* 15923*/      OPC_MoveChild1,
/* 15924*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15927*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 15929*/      OPC_CheckType, MVT::i32,
/* 15931*/      OPC_MoveParent,
/* 15932*/      OPC_MoveParent,
/* 15933*/      OPC_CheckType, MVT::i32,
/* 15935*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 15937*/      OPC_EmitConvertToTarget, 1,
/* 15939*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 15942*/      OPC_EmitInteger, MVT::i32, 14, 
/* 15945*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15948*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }) - Complexity = 31
                // Dst: (UXTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/* 15958*/    /*Scope*/ 45, /*->16004*/
/* 15959*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 15963*/      OPC_MoveChild0,
/* 15964*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 15967*/      OPC_RecordChild0, // #0 = $Rm
/* 15968*/      OPC_RecordChild1, // #1 = $rot
/* 15969*/      OPC_MoveChild1,
/* 15970*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15973*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 15975*/      OPC_CheckType, MVT::i32,
/* 15977*/      OPC_MoveParent,
/* 15978*/      OPC_MoveParent,
/* 15979*/      OPC_CheckType, MVT::i32,
/* 15981*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 15983*/      OPC_EmitConvertToTarget, 1,
/* 15985*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 15988*/      OPC_EmitInteger, MVT::i32, 14, 
/* 15991*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15994*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTH), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] }) - Complexity = 31
                // Dst: (UXTH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/* 16004*/    /*Scope*/ 46, /*->16051*/
/* 16005*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 16010*/      OPC_MoveChild0,
/* 16011*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 16014*/      OPC_RecordChild0, // #0 = $Rm
/* 16015*/      OPC_RecordChild1, // #1 = $rot
/* 16016*/      OPC_MoveChild1,
/* 16017*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16020*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 16022*/      OPC_CheckType, MVT::i32,
/* 16024*/      OPC_MoveParent,
/* 16025*/      OPC_MoveParent,
/* 16026*/      OPC_CheckType, MVT::i32,
/* 16028*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 16030*/      OPC_EmitConvertToTarget, 1,
/* 16032*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 16035*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16038*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16041*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 16711935:{ *:[i32] }) - Complexity = 31
                // Dst: (UXTB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/* 16051*/    /*Scope*/ 44, /*->16096*/
/* 16052*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 16055*/      OPC_MoveChild0,
/* 16056*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 16059*/      OPC_RecordChild0, // #0 = $Rm
/* 16060*/      OPC_RecordChild1, // #1 = $rot
/* 16061*/      OPC_MoveChild1,
/* 16062*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16065*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 16067*/      OPC_CheckType, MVT::i32,
/* 16069*/      OPC_MoveParent,
/* 16070*/      OPC_MoveParent,
/* 16071*/      OPC_CheckType, MVT::i32,
/* 16073*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 16075*/      OPC_EmitConvertToTarget, 1,
/* 16077*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 16080*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16083*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16086*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 255:{ *:[i32] }) - Complexity = 31
                // Dst: (t2UXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 16096*/    /*Scope*/ 45, /*->16142*/
/* 16097*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16101*/      OPC_MoveChild0,
/* 16102*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 16105*/      OPC_RecordChild0, // #0 = $Rm
/* 16106*/      OPC_RecordChild1, // #1 = $rot
/* 16107*/      OPC_MoveChild1,
/* 16108*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16111*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 16113*/      OPC_CheckType, MVT::i32,
/* 16115*/      OPC_MoveParent,
/* 16116*/      OPC_MoveParent,
/* 16117*/      OPC_CheckType, MVT::i32,
/* 16119*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 16121*/      OPC_EmitConvertToTarget, 1,
/* 16123*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 16126*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16129*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16132*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTH), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 65535:{ *:[i32] }) - Complexity = 31
                // Dst: (t2UXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 16142*/    /*Scope*/ 46, /*->16189*/
/* 16143*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 16148*/      OPC_MoveChild0,
/* 16149*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 16152*/      OPC_RecordChild0, // #0 = $Rm
/* 16153*/      OPC_RecordChild1, // #1 = $rot
/* 16154*/      OPC_MoveChild1,
/* 16155*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16158*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 16160*/      OPC_CheckType, MVT::i32,
/* 16162*/      OPC_MoveParent,
/* 16163*/      OPC_MoveParent,
/* 16164*/      OPC_CheckType, MVT::i32,
/* 16166*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 16168*/      OPC_EmitConvertToTarget, 1,
/* 16170*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 16173*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16176*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16179*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                // Src: (and:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), 16711935:{ *:[i32] }) - Complexity = 31
                // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 16189*/    /*Scope*/ 27, /*->16217*/
/* 16190*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 16193*/      OPC_RecordChild0, // #0 = $Src
/* 16194*/      OPC_CheckType, MVT::i32,
/* 16196*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 16198*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16201*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16204*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16207*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 255:{ *:[i32] }) - Complexity = 24
                // Dst: (UXTB:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 16217*/    /*Scope*/ 28, /*->16246*/
/* 16218*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16222*/      OPC_RecordChild0, // #0 = $Src
/* 16223*/      OPC_CheckType, MVT::i32,
/* 16225*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 16227*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16230*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16233*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16236*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTH), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 65535:{ *:[i32] }) - Complexity = 24
                // Dst: (UXTH:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 16246*/    /*Scope*/ 29, /*->16276*/
/* 16247*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 16252*/      OPC_RecordChild0, // #0 = $Src
/* 16253*/      OPC_CheckType, MVT::i32,
/* 16255*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 16257*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16260*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16263*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16266*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 16711935:{ *:[i32] }) - Complexity = 24
                // Dst: (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 16276*/    /*Scope*/ 27, /*->16304*/
/* 16277*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 16280*/      OPC_RecordChild0, // #0 = $Rm
/* 16281*/      OPC_CheckType, MVT::i32,
/* 16283*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 16285*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16288*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16291*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16294*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) - Complexity = 24
                // Dst: (t2UXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 16304*/    /*Scope*/ 28, /*->16333*/
/* 16305*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16309*/      OPC_RecordChild0, // #0 = $Rm
/* 16310*/      OPC_CheckType, MVT::i32,
/* 16312*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 16314*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16317*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16320*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16323*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTH), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) - Complexity = 24
                // Dst: (t2UXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 16333*/    /*Scope*/ 29, /*->16363*/
/* 16334*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 16339*/      OPC_RecordChild0, // #0 = $Rm
/* 16340*/      OPC_CheckType, MVT::i32,
/* 16342*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 16344*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16347*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16350*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16353*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16711935:{ *:[i32] }) - Complexity = 24
                // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 16363*/    /*Scope*/ 47, /*->16411*/
/* 16364*/      OPC_RecordChild0, // #0 = $Rn
/* 16365*/      OPC_MoveChild1,
/* 16366*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16369*/      OPC_RecordChild0, // #1 = $shift
/* 16370*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16381*/      OPC_MoveParent,
/* 16382*/      OPC_CheckType, MVT::i32,
/* 16384*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16386*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 16389*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16392*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16395*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16398*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrsr), 0,
                    MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, -1:{ *:[i32] })) - Complexity = 23
                // Dst: (BICrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 16411*/    /*Scope*/ 39, /*->16451*/
/* 16412*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 16415*/      OPC_MoveChild0,
/* 16416*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 16419*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 16420*/      OPC_CheckFoldableChainNode,
/* 16421*/      OPC_CheckChild1Integer, 94|128,7/*990*/, 
/* 16424*/      OPC_RecordChild2, // #1 = $addr
/* 16425*/      OPC_CheckChild2Type, MVT::i32,
/* 16427*/      OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 16429*/      OPC_MoveParent,
/* 16430*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 16432*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 16435*/      OPC_EmitMergeInputChains1_0,
/* 16436*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16439*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16442*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXB), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>>, 255:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 16451*/    /*Scope*/ 40, /*->16492*/
/* 16452*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16456*/      OPC_MoveChild0,
/* 16457*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 16460*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 16461*/      OPC_CheckFoldableChainNode,
/* 16462*/      OPC_CheckChild1Integer, 94|128,7/*990*/, 
/* 16465*/      OPC_RecordChild2, // #1 = $addr
/* 16466*/      OPC_CheckChild2Type, MVT::i32,
/* 16468*/      OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 16470*/      OPC_MoveParent,
/* 16471*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 16473*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 16476*/      OPC_EmitMergeInputChains1_0,
/* 16477*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16480*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16483*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXH), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>>, 65535:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 16492*/    /*Scope*/ 39, /*->16532*/
/* 16493*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 16496*/      OPC_MoveChild0,
/* 16497*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 16500*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 16501*/      OPC_CheckFoldableChainNode,
/* 16502*/      OPC_CheckChild1Integer, 88|128,7/*984*/, 
/* 16505*/      OPC_RecordChild2, // #1 = $addr
/* 16506*/      OPC_CheckChild2Type, MVT::i32,
/* 16508*/      OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 16510*/      OPC_MoveParent,
/* 16511*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 16513*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 16516*/      OPC_EmitMergeInputChains1_0,
/* 16517*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16520*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16523*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXB), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>>, 255:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 16532*/    /*Scope*/ 40, /*->16573*/
/* 16533*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16537*/      OPC_MoveChild0,
/* 16538*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 16541*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 16542*/      OPC_CheckFoldableChainNode,
/* 16543*/      OPC_CheckChild1Integer, 88|128,7/*984*/, 
/* 16546*/      OPC_RecordChild2, // #1 = $addr
/* 16547*/      OPC_CheckChild2Type, MVT::i32,
/* 16549*/      OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 16551*/      OPC_MoveParent,
/* 16552*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 16554*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 16557*/      OPC_EmitMergeInputChains1_0,
/* 16558*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16561*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16564*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXH), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>>, 65535:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 16573*/    /*Scope*/ 47, /*->16621*/
/* 16574*/      OPC_MoveChild0,
/* 16575*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16578*/      OPC_RecordChild0, // #0 = $shift
/* 16579*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16590*/      OPC_MoveParent,
/* 16591*/      OPC_RecordChild1, // #1 = $Rn
/* 16592*/      OPC_CheckType, MVT::i32,
/* 16594*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16596*/      OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 16599*/      OPC_EmitInteger, MVT::i32, 14, 
/* 16602*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16605*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16608*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrsr), 0,
                    MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                // Src: (and:{ *:[i32] } (xor:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 23
                // Dst: (BICrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 16621*/    /*Scope*/ 76, /*->16698*/
/* 16622*/      OPC_RecordChild0, // #0 = $Rn
/* 16623*/      OPC_MoveChild1,
/* 16624*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16627*/      OPC_RecordChild0, // #1 = $shift
/* 16628*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16639*/      OPC_MoveParent,
/* 16640*/      OPC_CheckType, MVT::i32,
/* 16642*/      OPC_Scope, 26, /*->16670*/ // 2 children in Scope
/* 16644*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16646*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 16649*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16652*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16655*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16658*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrsi), 0,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (BICrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 16670*/      /*Scope*/ 26, /*->16697*/
/* 16671*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 16673*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 16676*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16679*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16682*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16685*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICrs), 0,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (t2BICrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 16697*/      0, /*End of Scope*/
/* 16698*/    /*Scope*/ 76, /*->16775*/
/* 16699*/      OPC_MoveChild0,
/* 16700*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16703*/      OPC_RecordChild0, // #0 = $shift
/* 16704*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16715*/      OPC_MoveParent,
/* 16716*/      OPC_RecordChild1, // #1 = $Rn
/* 16717*/      OPC_CheckType, MVT::i32,
/* 16719*/      OPC_Scope, 26, /*->16747*/ // 2 children in Scope
/* 16721*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16723*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 16726*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16729*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16732*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16735*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrsi), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 20
                  // Dst: (BICrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 16747*/      /*Scope*/ 26, /*->16774*/
/* 16748*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 16750*/        OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 16753*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16756*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16759*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16762*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICrs), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 20
                  // Dst: (t2BICrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 16774*/      0, /*End of Scope*/
/* 16775*/    /*Scope*/ 84|128,1/*212*/, /*->16989*/
/* 16777*/      OPC_RecordChild0, // #0 = $Rn
/* 16778*/      OPC_Scope, 30, /*->16810*/ // 4 children in Scope
/* 16780*/        OPC_RecordChild1, // #1 = $shift
/* 16781*/        OPC_CheckType, MVT::i32,
/* 16783*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16785*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 16788*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16791*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16794*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16797*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDrsr), 0,
                      MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                  // Dst: (ANDrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 16810*/      /*Scope*/ 95, /*->16906*/
/* 16811*/        OPC_MoveChild1,
/* 16812*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16815*/        OPC_RecordChild0, // #1 = $imm
/* 16816*/        OPC_MoveChild0,
/* 16817*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16820*/        OPC_Scope, 41, /*->16863*/ // 2 children in Scope
/* 16822*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 16824*/          OPC_MoveParent,
/* 16825*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16836*/          OPC_MoveParent,
/* 16837*/          OPC_CheckType, MVT::i32,
/* 16839*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16841*/          OPC_EmitConvertToTarget, 1,
/* 16843*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16846*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16849*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16852*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::BICri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] })) - Complexity = 15
                    // Dst: (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16863*/        /*Scope*/ 41, /*->16905*/
/* 16864*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 16866*/          OPC_MoveParent,
/* 16867*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16878*/          OPC_MoveParent,
/* 16879*/          OPC_CheckType, MVT::i32,
/* 16881*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 16883*/          OPC_EmitConvertToTarget, 1,
/* 16885*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16888*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16891*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16894*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) - Complexity = 15
                    // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16905*/        0, /*End of Scope*/
/* 16906*/      /*Scope*/ 30, /*->16937*/
/* 16907*/        OPC_RecordChild1, // #1 = $Rn
/* 16908*/        OPC_CheckType, MVT::i32,
/* 16910*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16912*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 16915*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16918*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16921*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16924*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDrsr), 0,
                      MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (ANDrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 16937*/      /*Scope*/ 50, /*->16988*/
/* 16938*/        OPC_MoveChild1,
/* 16939*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16942*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16953*/        OPC_RecordChild1, // #1 = $imm
/* 16954*/        OPC_MoveChild1,
/* 16955*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16958*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 16960*/        OPC_MoveParent,
/* 16961*/        OPC_MoveParent,
/* 16962*/        OPC_CheckType, MVT::i32,
/* 16964*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 16966*/        OPC_EmitConvertToTarget, 1,
/* 16968*/        OPC_EmitInteger, MVT::i32, 14, 
/* 16971*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16974*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16977*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)) - Complexity = 15
                  // Dst: (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16988*/      0, /*End of Scope*/
/* 16989*/    /*Scope*/ 102, /*->17092*/
/* 16990*/      OPC_MoveChild0,
/* 16991*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 16994*/      OPC_Scope, 47, /*->17043*/ // 2 children in Scope
/* 16996*/        OPC_RecordChild0, // #0 = $imm
/* 16997*/        OPC_MoveChild0,
/* 16998*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17001*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 17003*/        OPC_MoveParent,
/* 17004*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17015*/        OPC_MoveParent,
/* 17016*/        OPC_RecordChild1, // #1 = $Rn
/* 17017*/        OPC_CheckType, MVT::i32,
/* 17019*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17021*/        OPC_EmitConvertToTarget, 0,
/* 17023*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17026*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17029*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17032*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17043*/      /*Scope*/ 47, /*->17091*/
/* 17044*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17055*/        OPC_RecordChild1, // #0 = $imm
/* 17056*/        OPC_MoveChild1,
/* 17057*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17060*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 17062*/        OPC_MoveParent,
/* 17063*/        OPC_MoveParent,
/* 17064*/        OPC_RecordChild1, // #1 = $Rn
/* 17065*/        OPC_CheckType, MVT::i32,
/* 17067*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17069*/        OPC_EmitConvertToTarget, 0,
/* 17071*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17074*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17077*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17080*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm), GPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17091*/      0, /*End of Scope*/
/* 17092*/    /*Scope*/ 51, /*->17144*/
/* 17093*/      OPC_RecordChild0, // #0 = $Rn
/* 17094*/      OPC_MoveChild1,
/* 17095*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 17098*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17109*/      OPC_RecordChild1, // #1 = $imm
/* 17110*/      OPC_MoveChild1,
/* 17111*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17114*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 17116*/      OPC_MoveParent,
/* 17117*/      OPC_MoveParent,
/* 17118*/      OPC_CheckType, MVT::i32,
/* 17120*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17122*/      OPC_EmitConvertToTarget, 1,
/* 17124*/      OPC_EmitInteger, MVT::i32, 14, 
/* 17127*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17130*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17133*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                    MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) - Complexity = 15
                // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17144*/    /*Scope*/ 102, /*->17247*/
/* 17145*/      OPC_MoveChild0,
/* 17146*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 17149*/      OPC_Scope, 47, /*->17198*/ // 2 children in Scope
/* 17151*/        OPC_RecordChild0, // #0 = $imm
/* 17152*/        OPC_MoveChild0,
/* 17153*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17156*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 17158*/        OPC_MoveParent,
/* 17159*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17170*/        OPC_MoveParent,
/* 17171*/        OPC_RecordChild1, // #1 = $Rn
/* 17172*/        OPC_CheckType, MVT::i32,
/* 17174*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17176*/        OPC_EmitConvertToTarget, 0,
/* 17178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17184*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17187*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17198*/      /*Scope*/ 47, /*->17246*/
/* 17199*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17210*/        OPC_RecordChild1, // #0 = $imm
/* 17211*/        OPC_MoveChild1,
/* 17212*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17215*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 17217*/        OPC_MoveParent,
/* 17218*/        OPC_MoveParent,
/* 17219*/        OPC_RecordChild1, // #1 = $Rn
/* 17220*/        OPC_CheckType, MVT::i32,
/* 17222*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17224*/        OPC_EmitConvertToTarget, 0,
/* 17226*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17229*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17232*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17235*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) - Complexity = 15
                  // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17246*/      0, /*End of Scope*/
/* 17247*/    /*Scope*/ 80|128,1/*208*/, /*->17457*/
/* 17249*/      OPC_RecordChild0, // #0 = $Rn
/* 17250*/      OPC_Scope, 113, /*->17365*/ // 2 children in Scope
/* 17252*/        OPC_RecordChild1, // #1 = $shift
/* 17253*/        OPC_CheckType, MVT::i32,
/* 17255*/        OPC_Scope, 26, /*->17283*/ // 4 children in Scope
/* 17257*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17259*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 17262*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17265*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17268*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17271*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDrsi), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                    // Dst: (ANDrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 17283*/        /*Scope*/ 26, /*->17310*/
/* 17284*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17286*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 17289*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17292*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17295*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17298*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ANDrs), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                    // Dst: (t2ANDrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 17310*/        /*Scope*/ 26, /*->17337*/
/* 17311*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17313*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 17316*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17319*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17322*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17325*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDrsi), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (and:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (ANDrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 17337*/        /*Scope*/ 26, /*->17364*/
/* 17338*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17340*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 17343*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17346*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17349*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17352*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ANDrs), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (and:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, rGPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (t2ANDrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 17364*/        0, /*End of Scope*/
/* 17365*/      /*Scope*/ 90, /*->17456*/
/* 17366*/        OPC_MoveChild1,
/* 17367*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 17370*/        OPC_RecordChild0, // #1 = $Rm
/* 17371*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17382*/        OPC_MoveParent,
/* 17383*/        OPC_CheckType, MVT::i32,
/* 17385*/        OPC_Scope, 22, /*->17409*/ // 3 children in Scope
/* 17387*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17389*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17392*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17395*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17398*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 17409*/        /*Scope*/ 22, /*->17432*/
/* 17410*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 17412*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 17415*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17418*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17421*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tBIC), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (tBIC:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 17432*/        /*Scope*/ 22, /*->17455*/
/* 17433*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17435*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17438*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 17455*/        0, /*End of Scope*/
/* 17456*/      0, /*End of Scope*/
/* 17457*/    /*Scope*/ 91, /*->17549*/
/* 17458*/      OPC_MoveChild0,
/* 17459*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 17462*/      OPC_RecordChild0, // #0 = $Rm
/* 17463*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 17474*/      OPC_MoveParent,
/* 17475*/      OPC_RecordChild1, // #1 = $Rn
/* 17476*/      OPC_CheckType, MVT::i32,
/* 17478*/      OPC_Scope, 22, /*->17502*/ // 3 children in Scope
/* 17480*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17482*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17485*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17488*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17491*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BICrr), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 17502*/      /*Scope*/ 22, /*->17525*/
/* 17503*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 17505*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 17508*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17511*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17514*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tBIC), 0,
                      MVT::i32, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), tGPR:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (tBIC:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 17525*/      /*Scope*/ 22, /*->17548*/
/* 17526*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17528*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17531*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17534*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17537*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICrr), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 17548*/      0, /*End of Scope*/
/* 17549*/    /*Scope*/ 38, /*->17588*/
/* 17550*/      OPC_RecordChild0, // #0 = $src
/* 17551*/      OPC_RecordChild1, // #1 = $imm
/* 17552*/      OPC_MoveChild1,
/* 17553*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17556*/      OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 17558*/      OPC_MoveParent,
/* 17559*/      OPC_CheckType, MVT::i32,
/* 17561*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17563*/      OPC_EmitConvertToTarget, 1,
/* 17565*/      OPC_EmitNodeXForm, 9, 2, // imm_not_XFORM
/* 17568*/      OPC_EmitInteger, MVT::i32, 14, 
/* 17571*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17574*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17577*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BICri), 0,
                    MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm) - Complexity = 8
                // Dst: (BICri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>>:$imm))
/* 17588*/    /*Scope*/ 23, /*->17612*/
/* 17589*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 17592*/      OPC_RecordChild0, // #0 = $Rm
/* 17593*/      OPC_CheckType, MVT::i32,
/* 17595*/      OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 17597*/      OPC_EmitInteger, MVT::i32, 14, 
/* 17600*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17603*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tUXTB), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) - Complexity = 8
                // Dst: (tUXTB:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 17612*/    /*Scope*/ 24, /*->17637*/
/* 17613*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 17617*/      OPC_RecordChild0, // #0 = $Rm
/* 17618*/      OPC_CheckType, MVT::i32,
/* 17620*/      OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 17622*/      OPC_EmitInteger, MVT::i32, 14, 
/* 17625*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17628*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tUXTH), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) - Complexity = 8
                // Dst: (tUXTH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 17637*/    /*Scope*/ 15|128,3/*399*/, /*->18038*/
/* 17639*/      OPC_RecordChild0, // #0 = $src
/* 17640*/      OPC_Scope, 37, /*->17679*/ // 4 children in Scope
/* 17642*/        OPC_RecordChild1, // #1 = $imm
/* 17643*/        OPC_MoveChild1,
/* 17644*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17647*/        OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 17649*/        OPC_MoveParent,
/* 17650*/        OPC_CheckType, MVT::i32,
/* 17652*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17654*/        OPC_EmitConvertToTarget, 1,
/* 17656*/        OPC_EmitNodeXForm, 1, 2, // t2_so_imm_not_XFORM
/* 17659*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17662*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17665*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17668*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>><<X:t2_so_imm_not_XFORM>>:$imm) - Complexity = 8
                  // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>>:$imm))
/* 17679*/      /*Scope*/ 41, /*->17721*/
/* 17680*/        OPC_MoveChild0,
/* 17681*/        OPC_CheckPredicate, 27, // Predicate_top16Zero
/* 17683*/        OPC_MoveParent,
/* 17684*/        OPC_RecordChild1, // #1 = $imm
/* 17685*/        OPC_MoveChild1,
/* 17686*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17689*/        OPC_CheckPredicate, 28, // Predicate_t2_so_imm_notSext
/* 17691*/        OPC_MoveParent,
/* 17692*/        OPC_CheckType, MVT::i32,
/* 17694*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17696*/        OPC_EmitConvertToTarget, 1,
/* 17698*/        OPC_EmitNodeXForm, 10, 2, // t2_so_imm_notSext16_XFORM
/* 17701*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17704*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17707*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17710*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BICri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }<<P:Predicate_top16Zero>>:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_notSext>><<X:t2_so_imm_notSext16_XFORM>>:$imm) - Complexity = 8
                  // Dst: (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_notSext16_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_notSext>>:$imm))
/* 17721*/      /*Scope*/ 68|128,1/*196*/, /*->17919*/
/* 17723*/        OPC_RecordChild1, // #1 = $imm
/* 17724*/        OPC_Scope, 118, /*->17844*/ // 2 children in Scope
/* 17726*/          OPC_MoveChild1,
/* 17727*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17730*/          OPC_Scope, 29, /*->17761*/ // 4 children in Scope
/* 17732*/            OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 17734*/            OPC_MoveParent,
/* 17735*/            OPC_CheckType, MVT::i32,
/* 17737*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17739*/            OPC_EmitConvertToTarget, 1,
/* 17741*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17744*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17747*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17750*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDri), 0,
                          MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                      // Dst: (ANDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17761*/          /*Scope*/ 25, /*->17787*/
/* 17762*/            OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 17764*/            OPC_MoveParent,
/* 17765*/            OPC_CheckType, MVT::i32,
/* 17767*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 17769*/            OPC_EmitConvertToTarget, 1,
/* 17771*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17774*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17777*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::BFC), 0,
                          MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) - Complexity = 7
                      // Dst: (BFC:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
/* 17787*/          /*Scope*/ 29, /*->17817*/
/* 17788*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 17790*/            OPC_MoveParent,
/* 17791*/            OPC_CheckType, MVT::i32,
/* 17793*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17795*/            OPC_EmitConvertToTarget, 1,
/* 17797*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17800*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17803*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17806*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ANDri), 0,
                          MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                      // Dst: (t2ANDri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17817*/          /*Scope*/ 25, /*->17843*/
/* 17818*/            OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 17820*/            OPC_MoveParent,
/* 17821*/            OPC_CheckType, MVT::i32,
/* 17823*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17825*/            OPC_EmitConvertToTarget, 1,
/* 17827*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17830*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17833*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BFC), 0,
                          MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) - Complexity = 7
                      // Dst: (t2BFC:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
/* 17843*/          0, /*End of Scope*/
/* 17844*/        /*Scope*/ 73, /*->17918*/
/* 17845*/          OPC_CheckType, MVT::i32,
/* 17847*/          OPC_Scope, 22, /*->17871*/ // 3 children in Scope
/* 17849*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 17851*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17854*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17857*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17860*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::ANDrr), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (ANDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 17871*/          /*Scope*/ 22, /*->17894*/
/* 17872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 17874*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 17877*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17880*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17883*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tAND), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (tAND:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 17894*/          /*Scope*/ 22, /*->17917*/
/* 17895*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 17897*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17900*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17903*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17906*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ANDrr), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (t2ANDrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 17917*/          0, /*End of Scope*/
/* 17918*/        0, /*End of Scope*/
/* 17919*/      /*Scope*/ 117, /*->18037*/
/* 17920*/        OPC_MoveChild1,
/* 17921*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 17924*/        OPC_Scope, 68, /*->17994*/ // 2 children in Scope
/* 17926*/          OPC_RecordChild0, // #1 = $Vm
/* 17927*/          OPC_MoveChild1,
/* 17928*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 17931*/          OPC_MoveChild0,
/* 17932*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 17935*/          OPC_MoveChild0,
/* 17936*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 17939*/          OPC_MoveParent,
/* 17940*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 17942*/          OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->17968
/* 17945*/            OPC_MoveParent,
/* 17946*/            OPC_MoveParent,
/* 17947*/            OPC_MoveParent,
/* 17948*/            OPC_CheckType, MVT::v2i32,
/* 17950*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17952*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17955*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17958*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICd), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                      // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 17968*/          /*SwitchType*/ 23, MVT::v16i8,// ->17993
/* 17970*/            OPC_MoveParent,
/* 17971*/            OPC_MoveParent,
/* 17972*/            OPC_MoveParent,
/* 17973*/            OPC_CheckType, MVT::v4i32,
/* 17975*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17977*/            OPC_EmitInteger, MVT::i32, 14, 
/* 17980*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17983*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICq), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                      // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 17993*/          0, // EndSwitchType
/* 17994*/        /*Scope*/ 41, /*->18036*/
/* 17995*/          OPC_MoveChild0,
/* 17996*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 17999*/          OPC_MoveChild0,
/* 18000*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18003*/          OPC_MoveChild0,
/* 18004*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18007*/          OPC_MoveParent,
/* 18008*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18010*/          OPC_CheckType, MVT::v8i8,
/* 18012*/          OPC_MoveParent,
/* 18013*/          OPC_MoveParent,
/* 18014*/          OPC_RecordChild1, // #1 = $Vm
/* 18015*/          OPC_MoveParent,
/* 18016*/          OPC_CheckType, MVT::v2i32,
/* 18018*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18020*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18023*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18026*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICd), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                    // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 18036*/        0, /*End of Scope*/
/* 18037*/      0, /*End of Scope*/
/* 18038*/    /*Scope*/ 92, /*->18131*/
/* 18039*/      OPC_MoveChild0,
/* 18040*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18043*/      OPC_Scope, 42, /*->18087*/ // 2 children in Scope
/* 18045*/        OPC_RecordChild0, // #0 = $Vm
/* 18046*/        OPC_MoveChild1,
/* 18047*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18050*/        OPC_MoveChild0,
/* 18051*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18054*/        OPC_MoveChild0,
/* 18055*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18058*/        OPC_MoveParent,
/* 18059*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18061*/        OPC_CheckType, MVT::v8i8,
/* 18063*/        OPC_MoveParent,
/* 18064*/        OPC_MoveParent,
/* 18065*/        OPC_MoveParent,
/* 18066*/        OPC_RecordChild1, // #1 = $Vn
/* 18067*/        OPC_CheckType, MVT::v2i32,
/* 18069*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18071*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18074*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18077*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v2i32] } (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 18087*/      /*Scope*/ 42, /*->18130*/
/* 18088*/        OPC_MoveChild0,
/* 18089*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18092*/        OPC_MoveChild0,
/* 18093*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18096*/        OPC_MoveChild0,
/* 18097*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18100*/        OPC_MoveParent,
/* 18101*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18103*/        OPC_CheckType, MVT::v8i8,
/* 18105*/        OPC_MoveParent,
/* 18106*/        OPC_MoveParent,
/* 18107*/        OPC_RecordChild1, // #0 = $Vm
/* 18108*/        OPC_MoveParent,
/* 18109*/        OPC_RecordChild1, // #1 = $Vn
/* 18110*/        OPC_CheckType, MVT::v2i32,
/* 18112*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18114*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18117*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18120*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 18130*/      0, /*End of Scope*/
/* 18131*/    /*Scope*/ 46, /*->18178*/
/* 18132*/      OPC_RecordChild0, // #0 = $Vn
/* 18133*/      OPC_MoveChild1,
/* 18134*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18137*/      OPC_MoveChild0,
/* 18138*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18141*/      OPC_MoveChild0,
/* 18142*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18145*/      OPC_MoveChild0,
/* 18146*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18149*/      OPC_MoveParent,
/* 18150*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18152*/      OPC_CheckType, MVT::v16i8,
/* 18154*/      OPC_MoveParent,
/* 18155*/      OPC_MoveParent,
/* 18156*/      OPC_RecordChild1, // #1 = $Vm
/* 18157*/      OPC_MoveParent,
/* 18158*/      OPC_CheckType, MVT::v4i32,
/* 18160*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18162*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18165*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18168*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICq), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 18178*/    /*Scope*/ 92, /*->18271*/
/* 18179*/      OPC_MoveChild0,
/* 18180*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18183*/      OPC_Scope, 42, /*->18227*/ // 2 children in Scope
/* 18185*/        OPC_RecordChild0, // #0 = $Vm
/* 18186*/        OPC_MoveChild1,
/* 18187*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18190*/        OPC_MoveChild0,
/* 18191*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18194*/        OPC_MoveChild0,
/* 18195*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18198*/        OPC_MoveParent,
/* 18199*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18201*/        OPC_CheckType, MVT::v16i8,
/* 18203*/        OPC_MoveParent,
/* 18204*/        OPC_MoveParent,
/* 18205*/        OPC_MoveParent,
/* 18206*/        OPC_RecordChild1, // #1 = $Vn
/* 18207*/        OPC_CheckType, MVT::v4i32,
/* 18209*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18211*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18214*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18217*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 18227*/      /*Scope*/ 42, /*->18270*/
/* 18228*/        OPC_MoveChild0,
/* 18229*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18232*/        OPC_MoveChild0,
/* 18233*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 18236*/        OPC_MoveChild0,
/* 18237*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 18240*/        OPC_MoveParent,
/* 18241*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 18243*/        OPC_CheckType, MVT::v16i8,
/* 18245*/        OPC_MoveParent,
/* 18246*/        OPC_MoveParent,
/* 18247*/        OPC_RecordChild1, // #0 = $Vm
/* 18248*/        OPC_MoveParent,
/* 18249*/        OPC_RecordChild1, // #1 = $Vn
/* 18250*/        OPC_CheckType, MVT::v4i32,
/* 18252*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18254*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18257*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18260*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 18270*/      0, /*End of Scope*/
/* 18271*/    /*Scope*/ 44, /*->18316*/
/* 18272*/      OPC_RecordChild0, // #0 = $Vn
/* 18273*/      OPC_RecordChild1, // #1 = $Vm
/* 18274*/      OPC_SwitchType /*2 cases */, 18, MVT::v2i32,// ->18295
/* 18277*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18279*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18282*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18285*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VANDd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VANDd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 18295*/      /*SwitchType*/ 18, MVT::v4i32,// ->18315
/* 18297*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18299*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18302*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18305*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VANDq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VANDq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 18315*/      0, // EndSwitchType
/* 18316*/    0, /*End of Scope*/
/* 18317*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::SRL),// ->18656
/* 18321*/    OPC_Scope, 18|128,1/*146*/, /*->18470*/ // 3 children in Scope
/* 18324*/      OPC_MoveChild0,
/* 18325*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 18328*/      OPC_MoveChild0,
/* 18329*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 18332*/      OPC_RecordMemRef,
/* 18333*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 18334*/      OPC_CheckFoldableChainNode,
/* 18335*/      OPC_RecordChild1, // #1 = $addr
/* 18336*/      OPC_CheckChild1Type, MVT::i32,
/* 18338*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 18340*/      OPC_CheckPredicate, 31, // Predicate_extload
/* 18342*/      OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 18344*/      OPC_MoveParent,
/* 18345*/      OPC_MoveParent,
/* 18346*/      OPC_CheckChild1Integer, 16, 
/* 18348*/      OPC_CheckChild1Type, MVT::i32,
/* 18350*/      OPC_CheckType, MVT::i32,
/* 18352*/      OPC_Scope, 38, /*->18392*/ // 2 children in Scope
/* 18354*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18356*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 18359*/        OPC_EmitMergeInputChains1_0,
/* 18360*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18363*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18366*/        OPC_EmitNode1, TARGET_VAL(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/* 18377*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18380*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18383*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::REV16), 0,
                      MVT::i32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (srl:{ *:[i32] } (bswap:{ *:[i32] } (ld:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>), 16:{ *:[i32] }) - Complexity = 27
                  // Dst: (REV16:{ *:[i32] } (LDRH:{ *:[i32] } addrmode3:{ *:[i32] }:$addr))
/* 18392*/      /*Scope*/ 76, /*->18469*/
/* 18393*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 18395*/        OPC_Scope, 35, /*->18432*/ // 2 children in Scope
/* 18397*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 18400*/          OPC_EmitMergeInputChains1_0,
/* 18401*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18404*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18407*/          OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 18417*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18420*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18423*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tREV16), 0,
                        MVT::i32, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (srl:{ *:[i32] } (bswap:{ *:[i32] } (ld:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>), 16:{ *:[i32] }) - Complexity = 24
                    // Dst: (tREV16:{ *:[i32] } (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr))
/* 18432*/        /*Scope*/ 35, /*->18468*/
/* 18433*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 18436*/          OPC_EmitMergeInputChains1_0,
/* 18437*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18440*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18443*/          OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 18453*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18456*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18459*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tREV16), 0,
                        MVT::i32, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (srl:{ *:[i32] } (bswap:{ *:[i32] } (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>), 16:{ *:[i32] }) - Complexity = 24
                    // Dst: (tREV16:{ *:[i32] } (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr))
/* 18468*/        0, /*End of Scope*/
/* 18469*/      0, /*End of Scope*/
/* 18470*/    /*Scope*/ 56, /*->18527*/
/* 18471*/      OPC_RecordNode, // #0 = $src
/* 18472*/      OPC_CheckType, MVT::i32,
/* 18474*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 18476*/      OPC_Scope, 24, /*->18502*/ // 2 children in Scope
/* 18478*/        OPC_CheckComplexPat, /*CP*/8, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 18481*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18484*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18487*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18490*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsr), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: shift_so_reg_reg:{ *:[i32] }:$src - Complexity = 12
                  // Dst: (MOVsr:{ *:[i32] } shift_so_reg_reg:{ *:[i32] }:$src)
/* 18502*/      /*Scope*/ 23, /*->18526*/
/* 18503*/        OPC_CheckComplexPat, /*CP*/9, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 18506*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18512*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18515*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsi), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: shift_so_reg_imm:{ *:[i32] }:$src - Complexity = 9
                  // Dst: (MOVsi:{ *:[i32] } shift_so_reg_imm:{ *:[i32] }:$src)
/* 18526*/      0, /*End of Scope*/
/* 18527*/    /*Scope*/ 127, /*->18655*/
/* 18528*/      OPC_RecordChild0, // #0 = $Rm
/* 18529*/      OPC_RecordChild1, // #1 = $imm5
/* 18530*/      OPC_Scope, 69, /*->18601*/ // 2 children in Scope
/* 18532*/        OPC_MoveChild1,
/* 18533*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18536*/        OPC_CheckPredicate, 33, // Predicate_imm_sr
/* 18538*/        OPC_CheckType, MVT::i32,
/* 18540*/        OPC_MoveParent,
/* 18541*/        OPC_CheckType, MVT::i32,
/* 18543*/        OPC_Scope, 27, /*->18572*/ // 2 children in Scope
/* 18545*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 18547*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 18550*/          OPC_EmitConvertToTarget, 1,
/* 18552*/          OPC_EmitNodeXForm, 11, 3, // imm_sr_XFORM
/* 18555*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18558*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18561*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLSRri), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (srl:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm5) - Complexity = 7
                    // Dst: (tLSRri:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm5))
/* 18572*/        /*Scope*/ 27, /*->18600*/
/* 18573*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 18575*/          OPC_EmitConvertToTarget, 1,
/* 18577*/          OPC_EmitNodeXForm, 11, 2, // imm_sr_XFORM
/* 18580*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18583*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18586*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18589*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LSRri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm) - Complexity = 7
                    // Dst: (t2LSRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 18600*/        0, /*End of Scope*/
/* 18601*/      /*Scope*/ 52, /*->18654*/
/* 18602*/        OPC_CheckChild1Type, MVT::i32,
/* 18604*/        OPC_CheckType, MVT::i32,
/* 18606*/        OPC_Scope, 22, /*->18630*/ // 2 children in Scope
/* 18608*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 18610*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 18613*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18616*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18619*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLSRrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (srl:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tLSRrr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 18630*/        /*Scope*/ 22, /*->18653*/
/* 18631*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 18633*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18636*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18639*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18642*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LSRrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2LSRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 18653*/        0, /*End of Scope*/
/* 18654*/      0, /*End of Scope*/
/* 18655*/    0, /*End of Scope*/
/* 18656*/  /*SwitchOpcode*/ 103|128,20/*2663*/, TARGET_VAL(ISD::STORE),// ->21323
/* 18660*/    OPC_RecordMemRef,
/* 18661*/    OPC_RecordNode, // #0 = 'st' chained node
/* 18662*/    OPC_Scope, 88|128,3/*472*/, /*->19137*/ // 6 children in Scope
/* 18665*/      OPC_MoveChild1,
/* 18666*/      OPC_SwitchOpcode /*3 cases */, 12|128,1/*140*/, TARGET_VAL(ISD::SRL),// ->18811
/* 18671*/        OPC_MoveChild0,
/* 18672*/        OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 18675*/        OPC_RecordChild0, // #1 = $Rn
/* 18676*/        OPC_MoveParent,
/* 18677*/        OPC_CheckChild1Integer, 16, 
/* 18679*/        OPC_CheckChild1Type, MVT::i32,
/* 18681*/        OPC_CheckType, MVT::i32,
/* 18683*/        OPC_MoveParent,
/* 18684*/        OPC_RecordChild2, // #2 = $addr
/* 18685*/        OPC_CheckChild2Type, MVT::i32,
/* 18687*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 18689*/        OPC_CheckPredicate, 35, // Predicate_truncstore
/* 18691*/        OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 18693*/        OPC_Scope, 38, /*->18733*/ // 2 children in Scope
/* 18695*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18697*/          OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrMode3:$addr #3 #4 #5
/* 18700*/          OPC_EmitMergeInputChains1_0,
/* 18701*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18704*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18707*/          OPC_EmitNode1, TARGET_VAL(ARM::REV16), 0,
                        MVT::i32, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 18716*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18719*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18722*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::STRH), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 8, 3, 4, 5, 9, 10, 
                    // Src: (st (srl:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rn), 16:{ *:[i32] }), addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 27
                    // Dst: (STRH (REV16:{ *:[i32] } GPR:{ *:[i32] }:$Rn), addrmode3:{ *:[i32] }:$addr)
/* 18733*/        /*Scope*/ 76, /*->18810*/
/* 18734*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 18736*/          OPC_Scope, 35, /*->18773*/ // 2 children in Scope
/* 18738*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectThumbAddrModeImm5S2:$addr #3 #4
/* 18741*/            OPC_EmitMergeInputChains1_0,
/* 18742*/            OPC_EmitInteger, MVT::i32, 14, 
/* 18745*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18748*/            OPC_EmitNode1, TARGET_VAL(ARM::tREV16), 0,
                          MVT::i32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 18757*/            OPC_EmitInteger, MVT::i32, 14, 
/* 18760*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18763*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 7, 3, 4, 8, 9, 
                      // Src: (st (srl:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rn), 16:{ *:[i32] }), t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 24
                      // Dst: (tSTRHi (tREV16:{ *:[i32] } tGPR:{ *:[i32] }:$Rn), t_addrmode_is2:{ *:[i32] }:$addr)
/* 18773*/          /*Scope*/ 35, /*->18809*/
/* 18774*/            OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 18777*/            OPC_EmitMergeInputChains1_0,
/* 18778*/            OPC_EmitInteger, MVT::i32, 14, 
/* 18781*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18784*/            OPC_EmitNode1, TARGET_VAL(ARM::tREV16), 0,
                          MVT::i32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 18793*/            OPC_EmitInteger, MVT::i32, 14, 
/* 18796*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18799*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 7, 3, 4, 8, 9, 
                      // Src: (st (srl:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rn), 16:{ *:[i32] }), t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 24
                      // Dst: (tSTRHr (tREV16:{ *:[i32] } tGPR:{ *:[i32] }:$Rn), t_addrmode_rr:{ *:[i32] }:$addr)
/* 18809*/          0, /*End of Scope*/
/* 18810*/        0, /*End of Scope*/
/* 18811*/      /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ARMISD::VGETLANEu),// ->19026
/* 18815*/        OPC_RecordChild0, // #1 = $Vd
/* 18816*/        OPC_Scope, 51, /*->18869*/ // 4 children in Scope
/* 18818*/          OPC_CheckChild0Type, MVT::v8i8,
/* 18820*/          OPC_RecordChild1, // #2 = $lane
/* 18821*/          OPC_MoveChild1,
/* 18822*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18825*/          OPC_MoveParent,
/* 18826*/          OPC_MoveParent,
/* 18827*/          OPC_RecordChild2, // #3 = $Rn
/* 18828*/          OPC_RecordChild3, // #4 = $Rm
/* 18829*/          OPC_CheckChild3Type, MVT::i32,
/* 18831*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 18833*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 18835*/          OPC_CheckPredicate, 38, // Predicate_post_truncsti8
/* 18837*/          OPC_CheckType, MVT::i32,
/* 18839*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18841*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 18844*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 18847*/          OPC_EmitMergeInputChains1_0,
/* 18848*/          OPC_EmitConvertToTarget, 2,
/* 18850*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18853*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18856*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNd8_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v8i8] }:$Vd, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 25
                    // Dst: (VST1LNd8_UPD:{ *:[i32] } addrmode6:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm, DPR:{ *:[v8i8] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 18869*/        /*Scope*/ 51, /*->18921*/
/* 18870*/          OPC_CheckChild0Type, MVT::v4i16,
/* 18872*/          OPC_RecordChild1, // #2 = $lane
/* 18873*/          OPC_MoveChild1,
/* 18874*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18877*/          OPC_MoveParent,
/* 18878*/          OPC_MoveParent,
/* 18879*/          OPC_RecordChild2, // #3 = $Rn
/* 18880*/          OPC_RecordChild3, // #4 = $Rm
/* 18881*/          OPC_CheckChild3Type, MVT::i32,
/* 18883*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 18885*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 18887*/          OPC_CheckPredicate, 36, // Predicate_post_truncsti16
/* 18889*/          OPC_CheckType, MVT::i32,
/* 18891*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18893*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 18896*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 18899*/          OPC_EmitMergeInputChains1_0,
/* 18900*/          OPC_EmitConvertToTarget, 2,
/* 18902*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18905*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18908*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNd16_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v4i16] }:$Vd, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 25
                    // Dst: (VST1LNd16_UPD:{ *:[i32] } addrmode6:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm, DPR:{ *:[v4i16] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 18921*/        /*Scope*/ 51, /*->18973*/
/* 18922*/          OPC_CheckChild0Type, MVT::v16i8,
/* 18924*/          OPC_RecordChild1, // #2 = $lane
/* 18925*/          OPC_MoveChild1,
/* 18926*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18929*/          OPC_MoveParent,
/* 18930*/          OPC_MoveParent,
/* 18931*/          OPC_RecordChild2, // #3 = $addr
/* 18932*/          OPC_RecordChild3, // #4 = $offset
/* 18933*/          OPC_CheckChild3Type, MVT::i32,
/* 18935*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 18937*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 18939*/          OPC_CheckPredicate, 38, // Predicate_post_truncsti8
/* 18941*/          OPC_CheckType, MVT::i32,
/* 18943*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18945*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 18948*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 18951*/          OPC_EmitMergeInputChains1_0,
/* 18952*/          OPC_EmitConvertToTarget, 2,
/* 18954*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18957*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18960*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNq8Pseudo_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 25
                    // Dst: (VST1LNq8Pseudo_UPD:{ *:[i32] } addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset, QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane)
/* 18973*/        /*Scope*/ 51, /*->19025*/
/* 18974*/          OPC_CheckChild0Type, MVT::v8i16,
/* 18976*/          OPC_RecordChild1, // #2 = $lane
/* 18977*/          OPC_MoveChild1,
/* 18978*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18981*/          OPC_MoveParent,
/* 18982*/          OPC_MoveParent,
/* 18983*/          OPC_RecordChild2, // #3 = $addr
/* 18984*/          OPC_RecordChild3, // #4 = $offset
/* 18985*/          OPC_CheckChild3Type, MVT::i32,
/* 18987*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 18989*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 18991*/          OPC_CheckPredicate, 36, // Predicate_post_truncsti16
/* 18993*/          OPC_CheckType, MVT::i32,
/* 18995*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18997*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 19000*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 19003*/          OPC_EmitMergeInputChains1_0,
/* 19004*/          OPC_EmitConvertToTarget, 2,
/* 19006*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19012*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNq16Pseudo_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 25
                    // Dst: (VST1LNq16Pseudo_UPD:{ *:[i32] } addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset, QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane)
/* 19025*/        0, /*End of Scope*/
/* 19026*/      /*SwitchOpcode*/ 107, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->19136
/* 19029*/        OPC_RecordChild0, // #1 = $Vd
/* 19030*/        OPC_Scope, 51, /*->19083*/ // 2 children in Scope
/* 19032*/          OPC_CheckChild0Type, MVT::v2i32,
/* 19034*/          OPC_RecordChild1, // #2 = $lane
/* 19035*/          OPC_MoveChild1,
/* 19036*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19039*/          OPC_MoveParent,
/* 19040*/          OPC_CheckType, MVT::i32,
/* 19042*/          OPC_MoveParent,
/* 19043*/          OPC_RecordChild2, // #3 = $Rn
/* 19044*/          OPC_RecordChild3, // #4 = $Rm
/* 19045*/          OPC_CheckChild3Type, MVT::i32,
/* 19047*/          OPC_CheckPredicate, 39, // Predicate_istore
/* 19049*/          OPC_CheckPredicate, 37, // Predicate_post_store
/* 19051*/          OPC_CheckType, MVT::i32,
/* 19053*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19055*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 19058*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 19061*/          OPC_EmitMergeInputChains1_0,
/* 19062*/          OPC_EmitConvertToTarget, 2,
/* 19064*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19067*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19070*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNd32_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$Vd, (imm:{ *:[iPTR] }):$lane), addrmode6oneL32:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 25
                    // Dst: (VST1LNd32_UPD:{ *:[i32] } addrmode6oneL32:{ *:[i32] }:$Rn, am6offset:{ *:[i32] }:$Rm, DPR:{ *:[v2i32] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 19083*/        /*Scope*/ 51, /*->19135*/
/* 19084*/          OPC_CheckChild0Type, MVT::v4i32,
/* 19086*/          OPC_RecordChild1, // #2 = $lane
/* 19087*/          OPC_MoveChild1,
/* 19088*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19091*/          OPC_MoveParent,
/* 19092*/          OPC_CheckType, MVT::i32,
/* 19094*/          OPC_MoveParent,
/* 19095*/          OPC_RecordChild2, // #3 = $addr
/* 19096*/          OPC_RecordChild3, // #4 = $offset
/* 19097*/          OPC_CheckChild3Type, MVT::i32,
/* 19099*/          OPC_CheckPredicate, 39, // Predicate_istore
/* 19101*/          OPC_CheckPredicate, 37, // Predicate_post_store
/* 19103*/          OPC_CheckType, MVT::i32,
/* 19105*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19107*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 19110*/          OPC_CheckComplexPat, /*CP*/11, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 19113*/          OPC_EmitMergeInputChains1_0,
/* 19114*/          OPC_EmitConvertToTarget, 2,
/* 19116*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19119*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19122*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VST1LNq32Pseudo_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 7/*#Ops*/, 5, 6, 7, 1, 8, 9, 10, 
                    // Src: (ist:{ *:[i32] } (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 25
                    // Dst: (VST1LNq32Pseudo_UPD:{ *:[i32] } addrmode6:{ *:[i32] }:$addr, am6offset:{ *:[i32] }:$offset, QPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane)
/* 19135*/        0, /*End of Scope*/
/* 19136*/      0, // EndSwitchOpcode
/* 19137*/    /*Scope*/ 125|128,1/*253*/, /*->19392*/
/* 19139*/      OPC_RecordChild1, // #1 = $src
/* 19140*/      OPC_CheckChild1Type, MVT::i32,
/* 19142*/      OPC_RecordChild2, // #2 = $addr
/* 19143*/      OPC_Scope, 86, /*->19231*/ // 2 children in Scope
/* 19145*/        OPC_CheckChild2Type, MVT::i32,
/* 19147*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19149*/        OPC_Scope, 24, /*->19175*/ // 2 children in Scope
/* 19151*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19153*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19155*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 19158*/          OPC_EmitMergeInputChains1_0,
/* 19159*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19162*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19165*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::PICSTR), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (PICSTR GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)
/* 19175*/        /*Scope*/ 54, /*->19230*/
/* 19176*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19178*/          OPC_Scope, 24, /*->19204*/ // 2 children in Scope
/* 19180*/            OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 19182*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19184*/            OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 19187*/            OPC_EmitMergeInputChains1_0,
/* 19188*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19191*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19194*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PICSTRH), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 23
                      // Dst: (PICSTRH GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)
/* 19204*/          /*Scope*/ 24, /*->19229*/
/* 19205*/            OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 19207*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19209*/            OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 19212*/            OPC_EmitMergeInputChains1_0,
/* 19213*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19216*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19219*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PICSTRB), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 23
                      // Dst: (PICSTRB GPR:{ *:[i32] }:$src, addrmodepc:{ *:[i32] }:$addr)
/* 19229*/          0, /*End of Scope*/
/* 19230*/        0, /*End of Scope*/
/* 19231*/      /*Scope*/ 30|128,1/*158*/, /*->19391*/
/* 19233*/        OPC_RecordChild3, // #3 = $offset
/* 19234*/        OPC_CheckChild3Type, MVT::i32,
/* 19236*/        OPC_CheckType, MVT::i32,
/* 19238*/        OPC_Scope, 57, /*->19297*/ // 2 children in Scope
/* 19240*/          OPC_CheckPredicate, 39, // Predicate_istore
/* 19242*/          OPC_CheckPredicate, 37, // Predicate_post_store
/* 19244*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19246*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 19249*/          OPC_Scope, 22, /*->19273*/ // 2 children in Scope
/* 19251*/            OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode2OffsetReg:$offset #5 #6
/* 19254*/            OPC_EmitMergeInputChains1_0,
/* 19255*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19258*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19261*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::STR_POST_REG), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_reg:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 19
                      // Dst: (STR_POST_REG:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_reg:{ *:[i32] }:$offset)
/* 19273*/          /*Scope*/ 22, /*->19296*/
/* 19274*/            OPC_CheckComplexPat, /*CP*/15, /*#*/3, // SelectAddrMode2OffsetImm:$offset #5 #6
/* 19277*/            OPC_EmitMergeInputChains1_0,
/* 19278*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19281*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19284*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::STR_POST_IMM), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_imm:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 19
                      // Dst: (STR_POST_IMM:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_imm:{ *:[i32] }:$offset)
/* 19296*/          0, /*End of Scope*/
/* 19297*/        /*Scope*/ 92, /*->19390*/
/* 19298*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 19300*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 19302*/          OPC_Scope, 55, /*->19359*/ // 2 children in Scope
/* 19304*/            OPC_CheckPredicate, 38, // Predicate_post_truncsti8
/* 19306*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19308*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 19311*/            OPC_Scope, 22, /*->19335*/ // 2 children in Scope
/* 19313*/              OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode2OffsetReg:$offset #5 #6
/* 19316*/              OPC_EmitMergeInputChains1_0,
/* 19317*/              OPC_EmitInteger, MVT::i32, 14, 
/* 19320*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19323*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::STRB_POST_REG), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_reg:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 19
                        // Dst: (STRB_POST_REG:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_reg:{ *:[i32] }:$offset)
/* 19335*/            /*Scope*/ 22, /*->19358*/
/* 19336*/              OPC_CheckComplexPat, /*CP*/15, /*#*/3, // SelectAddrMode2OffsetImm:$offset #5 #6
/* 19339*/              OPC_EmitMergeInputChains1_0,
/* 19340*/              OPC_EmitInteger, MVT::i32, 14, 
/* 19343*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19346*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::STRB_POST_IMM), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_imm:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 19
                        // Dst: (STRB_POST_IMM:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am2offset_imm:{ *:[i32] }:$offset)
/* 19358*/            0, /*End of Scope*/
/* 19359*/          /*Scope*/ 29, /*->19389*/
/* 19360*/            OPC_CheckPredicate, 36, // Predicate_post_truncsti16
/* 19362*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19364*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 19367*/            OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode3Offset:$offset #5 #6
/* 19370*/            OPC_EmitMergeInputChains1_0,
/* 19371*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19374*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19377*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am3offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 19
                      // Dst: (STRH_POST:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr, am3offset:{ *:[i32] }:$offset)
/* 19389*/          0, /*End of Scope*/
/* 19390*/        0, /*End of Scope*/
/* 19391*/      0, /*End of Scope*/
/* 19392*/    /*Scope*/ 109|128,2/*365*/, /*->19759*/
/* 19394*/      OPC_MoveChild1,
/* 19395*/      OPC_SwitchOpcode /*2 cases */, 51|128,1/*179*/, TARGET_VAL(ARMISD::VGETLANEu),// ->19579
/* 19400*/        OPC_RecordChild0, // #1 = $Vd
/* 19401*/        OPC_Scope, 43, /*->19446*/ // 4 children in Scope
/* 19403*/          OPC_CheckChild0Type, MVT::v8i8,
/* 19405*/          OPC_RecordChild1, // #2 = $lane
/* 19406*/          OPC_MoveChild1,
/* 19407*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19410*/          OPC_MoveParent,
/* 19411*/          OPC_MoveParent,
/* 19412*/          OPC_RecordChild2, // #3 = $Rn
/* 19413*/          OPC_CheckChild2Type, MVT::i32,
/* 19415*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19417*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19419*/          OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 19421*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19423*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 19426*/          OPC_EmitMergeInputChains1_0,
/* 19427*/          OPC_EmitConvertToTarget, 2,
/* 19429*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19432*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19435*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd8), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v8i8] }:$Vd, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 19
                    // Dst: (VST1LNd8 addrmode6:{ *:[i32] }:$Rn, DPR:{ *:[v8i8] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 19446*/        /*Scope*/ 43, /*->19490*/
/* 19447*/          OPC_CheckChild0Type, MVT::v4i16,
/* 19449*/          OPC_RecordChild1, // #2 = $lane
/* 19450*/          OPC_MoveChild1,
/* 19451*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19454*/          OPC_MoveParent,
/* 19455*/          OPC_MoveParent,
/* 19456*/          OPC_RecordChild2, // #3 = $Rn
/* 19457*/          OPC_CheckChild2Type, MVT::i32,
/* 19459*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19461*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19463*/          OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 19465*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19467*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 19470*/          OPC_EmitMergeInputChains1_0,
/* 19471*/          OPC_EmitConvertToTarget, 2,
/* 19473*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19476*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19479*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v4i16] }:$Vd, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 19
                    // Dst: (VST1LNd16 addrmode6:{ *:[i32] }:$Rn, DPR:{ *:[v4i16] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 19490*/        /*Scope*/ 43, /*->19534*/
/* 19491*/          OPC_CheckChild0Type, MVT::v16i8,
/* 19493*/          OPC_RecordChild1, // #2 = $lane
/* 19494*/          OPC_MoveChild1,
/* 19495*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19498*/          OPC_MoveParent,
/* 19499*/          OPC_MoveParent,
/* 19500*/          OPC_RecordChild2, // #3 = $addr
/* 19501*/          OPC_CheckChild2Type, MVT::i32,
/* 19503*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19505*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19507*/          OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 19509*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19511*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 19514*/          OPC_EmitMergeInputChains1_0,
/* 19515*/          OPC_EmitConvertToTarget, 2,
/* 19517*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19520*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19523*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq8Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 19
                    // Dst: (VST1LNq8Pseudo addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane)
/* 19534*/        /*Scope*/ 43, /*->19578*/
/* 19535*/          OPC_CheckChild0Type, MVT::v8i16,
/* 19537*/          OPC_RecordChild1, // #2 = $lane
/* 19538*/          OPC_MoveChild1,
/* 19539*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19542*/          OPC_MoveParent,
/* 19543*/          OPC_MoveParent,
/* 19544*/          OPC_RecordChild2, // #3 = $addr
/* 19545*/          OPC_CheckChild2Type, MVT::i32,
/* 19547*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19549*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19551*/          OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 19553*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19555*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 19558*/          OPC_EmitMergeInputChains1_0,
/* 19559*/          OPC_EmitConvertToTarget, 2,
/* 19561*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19564*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19567*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq16Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 19
                    // Dst: (VST1LNq16Pseudo addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane)
/* 19578*/        0, /*End of Scope*/
/* 19579*/      /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->19758
/* 19583*/        OPC_RecordChild0, // #1 = $Vd
/* 19584*/        OPC_Scope, 43, /*->19629*/ // 4 children in Scope
/* 19586*/          OPC_CheckChild0Type, MVT::v2i32,
/* 19588*/          OPC_RecordChild1, // #2 = $lane
/* 19589*/          OPC_MoveChild1,
/* 19590*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19593*/          OPC_MoveParent,
/* 19594*/          OPC_CheckType, MVT::i32,
/* 19596*/          OPC_MoveParent,
/* 19597*/          OPC_RecordChild2, // #3 = $Rn
/* 19598*/          OPC_CheckChild2Type, MVT::i32,
/* 19600*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19602*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19604*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19606*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 19609*/          OPC_EmitMergeInputChains1_0,
/* 19610*/          OPC_EmitConvertToTarget, 2,
/* 19612*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19615*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19618*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$Vd, (imm:{ *:[iPTR] }):$lane), addrmode6oneL32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNd32 addrmode6oneL32:{ *:[i32] }:$Rn, DPR:{ *:[v2i32] }:$Vd, (imm:{ *:[i32] }):$lane)
/* 19629*/        /*Scope*/ 43, /*->19673*/
/* 19630*/          OPC_CheckChild0Type, MVT::v4i32,
/* 19632*/          OPC_RecordChild1, // #2 = $lane
/* 19633*/          OPC_MoveChild1,
/* 19634*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19637*/          OPC_MoveParent,
/* 19638*/          OPC_CheckType, MVT::i32,
/* 19640*/          OPC_MoveParent,
/* 19641*/          OPC_RecordChild2, // #3 = $addr
/* 19642*/          OPC_CheckChild2Type, MVT::i32,
/* 19644*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19646*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19648*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 19650*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 19653*/          OPC_EmitMergeInputChains1_0,
/* 19654*/          OPC_EmitConvertToTarget, 2,
/* 19656*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19659*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19662*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq32Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNq32Pseudo addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane)
/* 19673*/        /*Scope*/ 41, /*->19715*/
/* 19674*/          OPC_CheckChild0Type, MVT::v2f32,
/* 19676*/          OPC_RecordChild1, // #2 = $lane
/* 19677*/          OPC_MoveChild1,
/* 19678*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19681*/          OPC_MoveParent,
/* 19682*/          OPC_CheckType, MVT::f32,
/* 19684*/          OPC_MoveParent,
/* 19685*/          OPC_RecordChild2, // #3 = $addr
/* 19686*/          OPC_CheckChild2Type, MVT::i32,
/* 19688*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19690*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19692*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 19695*/          OPC_EmitMergeInputChains1_0,
/* 19696*/          OPC_EmitConvertToTarget, 2,
/* 19698*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19701*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19704*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[f32] } DPR:{ *:[v2f32] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNd32 addrmode6:{ *:[i32] }:$addr, DPR:{ *:[v2f32] }:$src, (imm:{ *:[i32] }):$lane)
/* 19715*/        /*Scope*/ 41, /*->19757*/
/* 19716*/          OPC_CheckChild0Type, MVT::v4f32,
/* 19718*/          OPC_RecordChild1, // #2 = $lane
/* 19719*/          OPC_MoveChild1,
/* 19720*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19723*/          OPC_MoveParent,
/* 19724*/          OPC_CheckType, MVT::f32,
/* 19726*/          OPC_MoveParent,
/* 19727*/          OPC_RecordChild2, // #3 = $addr
/* 19728*/          OPC_CheckChild2Type, MVT::i32,
/* 19730*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19732*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19734*/          OPC_CheckComplexPat, /*CP*/10, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 19737*/          OPC_EmitMergeInputChains1_0,
/* 19738*/          OPC_EmitConvertToTarget, 2,
/* 19740*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19743*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19746*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq32Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[f32] } QPR:{ *:[v4f32] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNq32Pseudo addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$lane)
/* 19757*/        0, /*End of Scope*/
/* 19758*/      0, // EndSwitchOpcode
/* 19759*/    /*Scope*/ 28|128,2/*284*/, /*->20045*/
/* 19761*/      OPC_RecordChild1, // #1 = $Rt
/* 19762*/      OPC_CheckChild1Type, MVT::i32,
/* 19764*/      OPC_RecordChild2, // #2 = $shift
/* 19765*/      OPC_Scope, 44|128,1/*172*/, /*->19940*/ // 2 children in Scope
/* 19768*/        OPC_CheckChild2Type, MVT::i32,
/* 19770*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 19772*/        OPC_Scope, 25, /*->19799*/ // 4 children in Scope
/* 19774*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19776*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19778*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectLdStSOReg:$shift #3 #4 #5
/* 19781*/          OPC_EmitMergeInputChains1_0,
/* 19782*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19785*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19788*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::STRrs), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                    // Src: (st GPR:{ *:[i32] }:$Rt, ldst_so_reg:{ *:[i32] }:$shift)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 16
                    // Dst: (STRrs GPR:{ *:[i32] }:$Rt, ldst_so_reg:{ *:[i32] }:$shift)
/* 19799*/        /*Scope*/ 56, /*->19856*/
/* 19800*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19802*/          OPC_Scope, 25, /*->19829*/ // 2 children in Scope
/* 19804*/            OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 19806*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19808*/            OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectLdStSOReg:$shift #3 #4 #5
/* 19811*/            OPC_EmitMergeInputChains1_0,
/* 19812*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19815*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19818*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::STRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                      // Src: (st GPRnopc:{ *:[i32] }:$Rt, ldst_so_reg:{ *:[i32] }:$shift)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 16
                      // Dst: (STRBrs GPRnopc:{ *:[i32] }:$Rt, ldst_so_reg:{ *:[i32] }:$shift)
/* 19829*/          /*Scope*/ 25, /*->19855*/
/* 19830*/            OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 19832*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19834*/            OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrMode3:$addr #3 #4 #5
/* 19837*/            OPC_EmitMergeInputChains1_0,
/* 19838*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19841*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19844*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::STRH), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                      // Src: (st GPR:{ *:[i32] }:$Rt, addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 16
                      // Dst: (STRH GPR:{ *:[i32] }:$Rt, addrmode3:{ *:[i32] }:$addr)
/* 19855*/          0, /*End of Scope*/
/* 19856*/        /*Scope*/ 25, /*->19882*/
/* 19857*/          OPC_CheckPredicate, 39, // Predicate_store
/* 19859*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19861*/          OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 19864*/          OPC_EmitMergeInputChains1_0,
/* 19865*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19868*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19871*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRs), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                    // Src: (st GPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 16
                    // Dst: (t2STRs GPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 19882*/        /*Scope*/ 56, /*->19939*/
/* 19883*/          OPC_CheckPredicate, 35, // Predicate_truncstore
/* 19885*/          OPC_Scope, 25, /*->19912*/ // 2 children in Scope
/* 19887*/            OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 19889*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19891*/            OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 19894*/            OPC_EmitMergeInputChains1_0,
/* 19895*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19898*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19901*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBs), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                      // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 16
                      // Dst: (t2STRBs rGPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 19912*/          /*Scope*/ 25, /*->19938*/
/* 19913*/            OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 19915*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19917*/            OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 19920*/            OPC_EmitMergeInputChains1_0,
/* 19921*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19924*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19927*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHs), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                      // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 16
                      // Dst: (t2STRHs rGPR:{ *:[i32] }:$Rt, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 19938*/          0, /*End of Scope*/
/* 19939*/        0, /*End of Scope*/
/* 19940*/      /*Scope*/ 103, /*->20044*/
/* 19941*/        OPC_RecordChild3, // #3 = $offset
/* 19942*/        OPC_CheckChild3Type, MVT::i32,
/* 19944*/        OPC_CheckType, MVT::i32,
/* 19946*/        OPC_Scope, 30, /*->19978*/ // 2 children in Scope
/* 19948*/          OPC_CheckPredicate, 39, // Predicate_istore
/* 19950*/          OPC_CheckPredicate, 37, // Predicate_post_store
/* 19952*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19954*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 19957*/          OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 19960*/          OPC_EmitMergeInputChains1_0,
/* 19961*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19964*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19967*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STR_POST), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                    // Src: (ist:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                    // Dst: (t2STR_POST:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 19978*/        /*Scope*/ 64, /*->20043*/
/* 19979*/          OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 19981*/          OPC_CheckPredicate, 37, // Predicate_post_truncst
/* 19983*/          OPC_Scope, 28, /*->20013*/ // 2 children in Scope
/* 19985*/            OPC_CheckPredicate, 36, // Predicate_post_truncsti16
/* 19987*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19989*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 19992*/            OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 19995*/            OPC_EmitMergeInputChains1_0,
/* 19996*/            OPC_EmitInteger, MVT::i32, 14, 
/* 19999*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20002*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                      // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 16
                      // Dst: (t2STRH_POST:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 20013*/          /*Scope*/ 28, /*->20042*/
/* 20014*/            OPC_CheckPredicate, 38, // Predicate_post_truncsti8
/* 20016*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20018*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 20021*/            OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 20024*/            OPC_EmitMergeInputChains1_0,
/* 20025*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20028*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20031*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STRB_POST), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                      // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 16
                      // Dst: (t2STRB_POST:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 20042*/          0, /*End of Scope*/
/* 20043*/        0, /*End of Scope*/
/* 20044*/      0, /*End of Scope*/
/* 20045*/    /*Scope*/ 91|128,1/*219*/, /*->20266*/
/* 20047*/      OPC_MoveChild1,
/* 20048*/      OPC_SwitchOpcode /*2 cases */, 105, TARGET_VAL(ISD::FP_TO_SINT),// ->20157
/* 20052*/        OPC_RecordChild0, // #1 = $a
/* 20053*/        OPC_CheckType, MVT::i32,
/* 20055*/        OPC_Scope, 49, /*->20106*/ // 2 children in Scope
/* 20057*/          OPC_CheckChild0Type, MVT::f64,
/* 20059*/          OPC_MoveParent,
/* 20060*/          OPC_RecordChild2, // #2 = $ptr
/* 20061*/          OPC_CheckChild2Type, MVT::i32,
/* 20063*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20065*/          OPC_CheckPredicate, 39, // Predicate_store
/* 20067*/          OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 20069*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 20071*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 20074*/          OPC_EmitMergeInputChains1_0,
/* 20075*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20078*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20081*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZD), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 20090*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20093*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20096*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 7, 3, 4, 8, 9, 
                    // Src: (st (fp_to_sint:{ *:[i32] } DPR:{ *:[f64] }:$a), addrmode5:{ *:[i32] }:$ptr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 16
                    // Dst: (VSTRS (VTOSIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), addrmode5:{ *:[i32] }:$ptr)
/* 20106*/        /*Scope*/ 49, /*->20156*/
/* 20107*/          OPC_CheckChild0Type, MVT::f32,
/* 20109*/          OPC_MoveParent,
/* 20110*/          OPC_RecordChild2, // #2 = $ptr
/* 20111*/          OPC_CheckChild2Type, MVT::i32,
/* 20113*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20115*/          OPC_CheckPredicate, 39, // Predicate_store
/* 20117*/          OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 20119*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 20121*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 20124*/          OPC_EmitMergeInputChains1_0,
/* 20125*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20128*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20131*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 20140*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20143*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20146*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 7, 3, 4, 8, 9, 
                    // Src: (st (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a), addrmode5:{ *:[i32] }:$ptr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 16
                    // Dst: (VSTRS (VTOSIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), addrmode5:{ *:[i32] }:$ptr)
/* 20156*/        0, /*End of Scope*/
/* 20157*/      /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FP_TO_UINT),// ->20265
/* 20160*/        OPC_RecordChild0, // #1 = $a
/* 20161*/        OPC_CheckType, MVT::i32,
/* 20163*/        OPC_Scope, 49, /*->20214*/ // 2 children in Scope
/* 20165*/          OPC_CheckChild0Type, MVT::f64,
/* 20167*/          OPC_MoveParent,
/* 20168*/          OPC_RecordChild2, // #2 = $ptr
/* 20169*/          OPC_CheckChild2Type, MVT::i32,
/* 20171*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20173*/          OPC_CheckPredicate, 39, // Predicate_store
/* 20175*/          OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 20177*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 20179*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 20182*/          OPC_EmitMergeInputChains1_0,
/* 20183*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20186*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20189*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZD), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 20198*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20201*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20204*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 7, 3, 4, 8, 9, 
                    // Src: (st (fp_to_uint:{ *:[i32] } DPR:{ *:[f64] }:$a), addrmode5:{ *:[i32] }:$ptr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 16
                    // Dst: (VSTRS (VTOUIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), addrmode5:{ *:[i32] }:$ptr)
/* 20214*/        /*Scope*/ 49, /*->20264*/
/* 20215*/          OPC_CheckChild0Type, MVT::f32,
/* 20217*/          OPC_MoveParent,
/* 20218*/          OPC_RecordChild2, // #2 = $ptr
/* 20219*/          OPC_CheckChild2Type, MVT::i32,
/* 20221*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20223*/          OPC_CheckPredicate, 39, // Predicate_store
/* 20225*/          OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 20227*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 20229*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 20232*/          OPC_EmitMergeInputChains1_0,
/* 20233*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20236*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20239*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 20248*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20251*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20254*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 7, 3, 4, 8, 9, 
                    // Src: (st (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a), addrmode5:{ *:[i32] }:$ptr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 16
                    // Dst: (VSTRS (VTOUIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), addrmode5:{ *:[i32] }:$ptr)
/* 20264*/        0, /*End of Scope*/
/* 20265*/      0, // EndSwitchOpcode
/* 20266*/    /*Scope*/ 30|128,8/*1054*/, /*->21322*/
/* 20268*/      OPC_RecordChild1, // #1 = $Rt
/* 20269*/      OPC_Scope, 16|128,5/*656*/, /*->20928*/ // 5 children in Scope
/* 20272*/        OPC_CheckChild1Type, MVT::i32,
/* 20274*/        OPC_RecordChild2, // #2 = $addr
/* 20275*/        OPC_Scope, 127|128,2/*383*/, /*->20661*/ // 3 children in Scope
/* 20278*/          OPC_CheckChild2Type, MVT::i32,
/* 20280*/          OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20282*/          OPC_Scope, 24, /*->20308*/ // 6 children in Scope
/* 20284*/            OPC_CheckPredicate, 39, // Predicate_store
/* 20286*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20288*/            OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeImm12:$addr #3 #4
/* 20291*/            OPC_EmitMergeInputChains1_0,
/* 20292*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20295*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20298*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::STRi12), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR:{ *:[i32] }:$Rt, addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (STRi12 GPR:{ *:[i32] }:$Rt, addrmode_imm12:{ *:[i32] }:$addr)
/* 20308*/          /*Scope*/ 26, /*->20335*/
/* 20309*/            OPC_CheckPredicate, 35, // Predicate_truncstore
/* 20311*/            OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 20313*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20315*/            OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeImm12:$addr #3 #4
/* 20318*/            OPC_EmitMergeInputChains1_0,
/* 20319*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20322*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20325*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPRnopc:{ *:[i32] }:$Rt, addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                      // Dst: (STRBi12 GPRnopc:{ *:[i32] }:$Rt, addrmode_imm12:{ *:[i32] }:$addr)
/* 20335*/          /*Scope*/ 69, /*->20405*/
/* 20336*/            OPC_CheckPredicate, 39, // Predicate_store
/* 20338*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 20340*/            OPC_Scope, 20, /*->20362*/ // 3 children in Scope
/* 20342*/              OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectThumbAddrModeSP:$addr #3 #4
/* 20345*/              OPC_EmitMergeInputChains1_0,
/* 20346*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20349*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20352*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRspi), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_sp:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (tSTRspi tGPR:{ *:[i32] }:$Rt, t_addrmode_sp:{ *:[i32] }:$addr)
/* 20362*/            /*Scope*/ 20, /*->20383*/
/* 20363*/              OPC_CheckComplexPat, /*CP*/23, /*#*/2, // SelectThumbAddrModeImm5S4:$addr #3 #4
/* 20366*/              OPC_EmitMergeInputChains1_0,
/* 20367*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20370*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20373*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRi), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_is4:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (tSTRi tGPR:{ *:[i32] }:$Rt, t_addrmode_is4:{ *:[i32] }:$addr)
/* 20383*/            /*Scope*/ 20, /*->20404*/
/* 20384*/              OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 20387*/              OPC_EmitMergeInputChains1_0,
/* 20388*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20391*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20394*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRr), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (tSTRr tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)
/* 20404*/            0, /*End of Scope*/
/* 20405*/          /*Scope*/ 102, /*->20508*/
/* 20406*/            OPC_CheckPredicate, 35, // Predicate_truncstore
/* 20408*/            OPC_Scope, 48, /*->20458*/ // 2 children in Scope
/* 20410*/              OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 20412*/              OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 20414*/              OPC_Scope, 20, /*->20436*/ // 2 children in Scope
/* 20416*/                OPC_CheckComplexPat, /*CP*/24, /*#*/2, // SelectThumbAddrModeImm5S1:$addr #3 #4
/* 20419*/                OPC_EmitMergeInputChains1_0,
/* 20420*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20423*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20426*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRBi), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                          // Dst: (tSTRBi tGPR:{ *:[i32] }:$Rt, t_addrmode_is1:{ *:[i32] }:$addr)
/* 20436*/              /*Scope*/ 20, /*->20457*/
/* 20437*/                OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 20440*/                OPC_EmitMergeInputChains1_0,
/* 20441*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20444*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20447*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRBr), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                          // Dst: (tSTRBr tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)
/* 20457*/              0, /*End of Scope*/
/* 20458*/            /*Scope*/ 48, /*->20507*/
/* 20459*/              OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 20461*/              OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 20463*/              OPC_Scope, 20, /*->20485*/ // 2 children in Scope
/* 20465*/                OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectThumbAddrModeImm5S2:$addr #3 #4
/* 20468*/                OPC_EmitMergeInputChains1_0,
/* 20469*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20472*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20475*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHi), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                          // Dst: (tSTRHi tGPR:{ *:[i32] }:$Rt, t_addrmode_is2:{ *:[i32] }:$addr)
/* 20485*/              /*Scope*/ 20, /*->20506*/
/* 20486*/                OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 20489*/                OPC_EmitMergeInputChains1_0,
/* 20490*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20493*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20496*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHr), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                          // Dst: (tSTRHr tGPR:{ *:[i32] }:$Rt, t_addrmode_rr:{ *:[i32] }:$addr)
/* 20506*/              0, /*End of Scope*/
/* 20507*/            0, /*End of Scope*/
/* 20508*/          /*Scope*/ 48, /*->20557*/
/* 20509*/            OPC_CheckPredicate, 39, // Predicate_store
/* 20511*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20513*/            OPC_Scope, 20, /*->20535*/ // 2 children in Scope
/* 20515*/              OPC_CheckComplexPat, /*CP*/25, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 20518*/              OPC_EmitMergeInputChains1_0,
/* 20519*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20522*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20525*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRi12), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (t2STRi12 GPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 20535*/            /*Scope*/ 20, /*->20556*/
/* 20536*/              OPC_CheckComplexPat, /*CP*/26, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 20539*/              OPC_EmitMergeInputChains1_0,
/* 20540*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20543*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20546*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRi8), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (t2STRi8 GPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 20556*/            0, /*End of Scope*/
/* 20557*/          /*Scope*/ 102, /*->20660*/
/* 20558*/            OPC_CheckPredicate, 35, // Predicate_truncstore
/* 20560*/            OPC_Scope, 48, /*->20610*/ // 2 children in Scope
/* 20562*/              OPC_CheckPredicate, 38, // Predicate_truncstorei8
/* 20564*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20566*/              OPC_Scope, 20, /*->20588*/ // 2 children in Scope
/* 20568*/                OPC_CheckComplexPat, /*CP*/25, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 20571*/                OPC_EmitMergeInputChains1_0,
/* 20572*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20575*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20578*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                          // Dst: (t2STRBi12 rGPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 20588*/              /*Scope*/ 20, /*->20609*/
/* 20589*/                OPC_CheckComplexPat, /*CP*/26, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 20592*/                OPC_EmitMergeInputChains1_0,
/* 20593*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20596*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20599*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                          // Dst: (t2STRBi8 rGPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 20609*/              0, /*End of Scope*/
/* 20610*/            /*Scope*/ 48, /*->20659*/
/* 20611*/              OPC_CheckPredicate, 36, // Predicate_truncstorei16
/* 20613*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20615*/              OPC_Scope, 20, /*->20637*/ // 2 children in Scope
/* 20617*/                OPC_CheckComplexPat, /*CP*/25, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 20620*/                OPC_EmitMergeInputChains1_0,
/* 20621*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20624*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20627*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHi12), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                          // Dst: (t2STRHi12 rGPR:{ *:[i32] }:$Rt, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 20637*/              /*Scope*/ 20, /*->20658*/
/* 20638*/                OPC_CheckComplexPat, /*CP*/26, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 20641*/                OPC_EmitMergeInputChains1_0,
/* 20642*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20645*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20648*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHi8), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st rGPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                          // Dst: (t2STRHi8 rGPR:{ *:[i32] }:$Rt, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 20658*/              0, /*End of Scope*/
/* 20659*/            0, /*End of Scope*/
/* 20660*/          0, /*End of Scope*/
/* 20661*/        /*Scope*/ 108|128,1/*236*/, /*->20899*/
/* 20663*/          OPC_RecordChild3, // #3 = $offset
/* 20664*/          OPC_CheckChild3Type, MVT::i32,
/* 20666*/          OPC_CheckType, MVT::i32,
/* 20668*/          OPC_Scope, 54, /*->20724*/ // 4 children in Scope
/* 20670*/            OPC_CheckPredicate, 39, // Predicate_istore
/* 20672*/            OPC_CheckPredicate, 41, // Predicate_pre_store
/* 20674*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20676*/            OPC_Scope, 22, /*->20700*/ // 2 children in Scope
/* 20678*/              OPC_CheckComplexPat, /*CP*/15, /*#*/3, // SelectAddrMode2OffsetImm:$offset #4 #5
/* 20681*/              OPC_EmitMergeInputChains1_0,
/* 20682*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20685*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20688*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::STRi_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                        // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_imm:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 13
                        // Dst: (STRi_preidx:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_imm:{ *:[i32] }:$offset)
/* 20700*/            /*Scope*/ 22, /*->20723*/
/* 20701*/              OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode2OffsetReg:$offset #4 #5
/* 20704*/              OPC_EmitMergeInputChains1_0,
/* 20705*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20708*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20711*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::STRr_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                        // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_reg:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 13
                        // Dst: (STRr_preidx:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_reg:{ *:[i32] }:$offset)
/* 20723*/            0, /*End of Scope*/
/* 20724*/          /*Scope*/ 86, /*->20811*/
/* 20725*/            OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 20727*/            OPC_CheckPredicate, 41, // Predicate_pre_truncst
/* 20729*/            OPC_Scope, 52, /*->20783*/ // 2 children in Scope
/* 20731*/              OPC_CheckPredicate, 38, // Predicate_pre_truncsti8
/* 20733*/              OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20735*/              OPC_Scope, 22, /*->20759*/ // 2 children in Scope
/* 20737*/                OPC_CheckComplexPat, /*CP*/15, /*#*/3, // SelectAddrMode2OffsetImm:$offset #4 #5
/* 20740*/                OPC_EmitMergeInputChains1_0,
/* 20741*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20744*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20747*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::STRBi_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                          // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_imm:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 13
                          // Dst: (STRBi_preidx:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_imm:{ *:[i32] }:$offset)
/* 20759*/              /*Scope*/ 22, /*->20782*/
/* 20760*/                OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode2OffsetReg:$offset #4 #5
/* 20763*/                OPC_EmitMergeInputChains1_0,
/* 20764*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20767*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20770*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::STRBr_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                          // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_reg:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 13
                          // Dst: (STRBr_preidx:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am2offset_reg:{ *:[i32] }:$offset)
/* 20782*/              0, /*End of Scope*/
/* 20783*/            /*Scope*/ 26, /*->20810*/
/* 20784*/              OPC_CheckPredicate, 36, // Predicate_pre_truncsti16
/* 20786*/              OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20788*/              OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode3Offset:$offset #4 #5
/* 20791*/              OPC_EmitMergeInputChains1_0,
/* 20792*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20795*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20798*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::STRH_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                        // Src: (ist:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am3offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 13
                        // Dst: (STRH_preidx:{ *:[i32] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rn, am3offset:{ *:[i32] }:$offset)
/* 20810*/            0, /*End of Scope*/
/* 20811*/          /*Scope*/ 27, /*->20839*/
/* 20812*/            OPC_CheckPredicate, 39, // Predicate_istore
/* 20814*/            OPC_CheckPredicate, 41, // Predicate_pre_store
/* 20816*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20818*/            OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 20821*/            OPC_EmitMergeInputChains1_0,
/* 20822*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20825*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20828*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STR_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (t2STR_preidx:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 20839*/          /*Scope*/ 58, /*->20898*/
/* 20840*/            OPC_CheckPredicate, 35, // Predicate_itruncstore
/* 20842*/            OPC_CheckPredicate, 41, // Predicate_pre_truncst
/* 20844*/            OPC_Scope, 25, /*->20871*/ // 2 children in Scope
/* 20846*/              OPC_CheckPredicate, 38, // Predicate_pre_truncsti8
/* 20848*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20850*/              OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 20853*/              OPC_EmitMergeInputChains1_0,
/* 20854*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20857*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20860*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STRB_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 10
                        // Dst: (t2STRB_preidx:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 20871*/            /*Scope*/ 25, /*->20897*/
/* 20872*/              OPC_CheckPredicate, 36, // Predicate_pre_truncsti16
/* 20874*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20876*/              OPC_CheckComplexPat, /*CP*/19, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 20879*/              OPC_EmitMergeInputChains1_0,
/* 20880*/              OPC_EmitInteger, MVT::i32, 14, 
/* 20883*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20886*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STRH_preidx), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 10
                        // Dst: (t2STRH_preidx:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rn, t2am_imm8_offset:{ *:[i32] }:$offset)
/* 20897*/            0, /*End of Scope*/
/* 20898*/          0, /*End of Scope*/
/* 20899*/        /*Scope*/ 27, /*->20927*/
/* 20900*/          OPC_CheckChild3Integer, 4, 
/* 20902*/          OPC_CheckPredicate, 39, // Predicate_istore
/* 20904*/          OPC_CheckPredicate, 37, // Predicate_post_store
/* 20906*/          OPC_CheckType, MVT::i32,
/* 20908*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 20910*/          OPC_EmitMergeInputChains1_0,
/* 20911*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20914*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20917*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSTMIA_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 1, 
                    // Src: (ist:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, rGPR:{ *:[i32] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 9
                    // Dst: (tSTMIA_UPD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rt)
/* 20927*/        0, /*End of Scope*/
/* 20928*/      /*Scope*/ 111, /*->21040*/
/* 20929*/        OPC_CheckChild1Type, MVT::f64,
/* 20931*/        OPC_RecordChild2, // #2 = $addr
/* 20932*/        OPC_CheckChild2Type, MVT::i32,
/* 20934*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 20936*/        OPC_CheckPredicate, 39, // Predicate_store
/* 20938*/        OPC_Scope, 24, /*->20964*/ // 4 children in Scope
/* 20940*/          OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 20942*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 20944*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$addr #3 #4
/* 20947*/          OPC_EmitMergeInputChains1_0,
/* 20948*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20951*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20954*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRD), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st DPR:{ *:[f64] }:$Dd, addrmode5:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                    // Dst: (VSTRD DPR:{ *:[f64] }:$Dd, addrmode5:{ *:[i32] }:$addr)
/* 20964*/        /*Scope*/ 24, /*->20989*/
/* 20965*/          OPC_CheckPredicate, 42, // Predicate_hword_alignedstore
/* 20967*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 20969*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 20972*/          OPC_EmitMergeInputChains1_0,
/* 20973*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20976*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20979*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1d16), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st DPR:{ *:[f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                    // Dst: (VST1d16 addrmode6:{ *:[i32] }:$addr, DPR:{ *:[f64] }:$value)
/* 20989*/        /*Scope*/ 24, /*->21014*/
/* 20990*/          OPC_CheckPredicate, 43, // Predicate_byte_alignedstore
/* 20992*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 20994*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 20997*/          OPC_EmitMergeInputChains1_0,
/* 20998*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21001*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21004*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1d8), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st DPR:{ *:[f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                    // Dst: (VST1d8 addrmode6:{ *:[i32] }:$addr, DPR:{ *:[f64] }:$value)
/* 21014*/        /*Scope*/ 24, /*->21039*/
/* 21015*/          OPC_CheckPredicate, 44, // Predicate_non_word_alignedstore
/* 21017*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 21019*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21022*/          OPC_EmitMergeInputChains1_0,
/* 21023*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21026*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21029*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1d64), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st DPR:{ *:[f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_non_word_alignedstore>> - Complexity = 13
                    // Dst: (VST1d64 addrmode6:{ *:[i32] }:$addr, DPR:{ *:[f64] }:$value)
/* 21039*/        0, /*End of Scope*/
/* 21040*/      /*Scope*/ 33, /*->21074*/
/* 21041*/        OPC_CheckChild1Type, MVT::f32,
/* 21043*/        OPC_RecordChild2, // #2 = $addr
/* 21044*/        OPC_CheckChild2Type, MVT::i32,
/* 21046*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 21048*/        OPC_CheckPredicate, 39, // Predicate_store
/* 21050*/        OPC_CheckPredicate, 40, // Predicate_alignedstore32
/* 21052*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 21054*/        OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrMode5:$addr #3 #4
/* 21057*/        OPC_EmitMergeInputChains1_0,
/* 21058*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21064*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 1, 3, 4, 5, 6, 
                  // Src: (st SPR:{ *:[f32] }:$Sd, addrmode5:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                  // Dst: (VSTRS SPR:{ *:[f32] }:$Sd, addrmode5:{ *:[i32] }:$addr)
/* 21074*/      /*Scope*/ 33, /*->21108*/
/* 21075*/        OPC_CheckChild1Type, MVT::f16,
/* 21077*/        OPC_RecordChild2, // #2 = $addr
/* 21078*/        OPC_CheckChild2Type, MVT::i32,
/* 21080*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 21082*/        OPC_CheckPredicate, 39, // Predicate_store
/* 21084*/        OPC_CheckPredicate, 45, // Predicate_alignedstore16
/* 21086*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 21088*/        OPC_CheckComplexPat, /*CP*/27, /*#*/2, // SelectAddrMode5FP16:$addr #3 #4
/* 21091*/        OPC_EmitMergeInputChains1_0,
/* 21092*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21095*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21098*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTRH), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 1, 3, 4, 5, 6, 
                  // Src: (st HPR:{ *:[f16] }:$Sd, addrmode5fp16:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore16>> - Complexity = 13
                  // Dst: (VSTRH HPR:{ *:[f16] }:$Sd, addrmode5fp16:{ *:[i32] }:$addr)
/* 21108*/      /*Scope*/ 83|128,1/*211*/, /*->21321*/
/* 21110*/        OPC_CheckChild1Type, MVT::v2f64,
/* 21112*/        OPC_RecordChild2, // #2 = $addr
/* 21113*/        OPC_CheckChild2Type, MVT::i32,
/* 21115*/        OPC_CheckPredicate, 34, // Predicate_unindexedstore
/* 21117*/        OPC_CheckPredicate, 39, // Predicate_store
/* 21119*/        OPC_Scope, 22, /*->21143*/ // 6 children in Scope
/* 21121*/          OPC_CheckPredicate, 46, // Predicate_dword_alignedstore
/* 21123*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21126*/          OPC_EmitMergeInputChains1_0,
/* 21127*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21130*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21133*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q64), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_dword_alignedstore>> - Complexity = 13
                    // Dst: (VST1q64 addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v2f64] }:$value)
/* 21143*/        /*Scope*/ 24, /*->21168*/
/* 21144*/          OPC_CheckPredicate, 47, // Predicate_word_alignedstore
/* 21146*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 21148*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21151*/          OPC_EmitMergeInputChains1_0,
/* 21152*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21155*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21158*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q32), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_word_alignedstore>> - Complexity = 13
                    // Dst: (VST1q32 addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v2f64] }:$value)
/* 21168*/        /*Scope*/ 24, /*->21193*/
/* 21169*/          OPC_CheckPredicate, 42, // Predicate_hword_alignedstore
/* 21171*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 21173*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21176*/          OPC_EmitMergeInputChains1_0,
/* 21177*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21180*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21183*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q16), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 1, 5, 6, 
                    // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                    // Dst: (VST1q16 addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v2f64] }:$value)
/* 21193*/        /*Scope*/ 65, /*->21259*/
/* 21194*/          OPC_CheckPredicate, 43, // Predicate_byte_alignedstore
/* 21196*/          OPC_Scope, 22, /*->21220*/ // 2 children in Scope
/* 21198*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 21200*/            OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21203*/            OPC_EmitMergeInputChains1_0,
/* 21204*/            OPC_EmitInteger, MVT::i32, 14, 
/* 21207*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21210*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 1, 5, 6, 
                      // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (VST1q8 addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v2f64] }:$value)
/* 21220*/          /*Scope*/ 37, /*->21258*/
/* 21221*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 21223*/            OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21226*/            OPC_EmitMergeInputChains1_0,
/* 21227*/            OPC_EmitInteger, MVT::i32, 14, 
/* 21230*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21233*/            OPC_EmitNode1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 21242*/            OPC_EmitInteger, MVT::i32, 14, 
/* 21245*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21248*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 7, 8, 9, 
                      // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (VST1q8 addrmode6:{ *:[i32] }:$addr, (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2f64] }:$value))
/* 21258*/          0, /*End of Scope*/
/* 21259*/        /*Scope*/ 39, /*->21299*/
/* 21260*/          OPC_CheckPredicate, 42, // Predicate_hword_alignedstore
/* 21262*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 21264*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 21267*/          OPC_EmitMergeInputChains1_0,
/* 21268*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21271*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21274*/          OPC_EmitNode1, TARGET_VAL(ARM::VREV64q16), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 21283*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21286*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21289*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1q16), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 3, 4, 7, 8, 9, 
                    // Src: (st QPR:{ *:[v2f64] }:$value, addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                    // Dst: (VST1q16 addrmode6:{ *:[i32] }:$addr, (VREV64q16:{ *:[v16i8] } QPR:{ *:[v2f64] }:$value))
/* 21299*/        /*Scope*/ 20, /*->21320*/
/* 21300*/          OPC_CheckPredicate, 47, // Predicate_word_alignedstore
/* 21302*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 21304*/          OPC_EmitMergeInputChains1_0,
/* 21305*/          OPC_EmitInteger, MVT::i32, 14, 
/* 21308*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21311*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VSTMQIA), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 1, 2, 3, 4, 
                    // Src: (st DPair:{ *:[v2f64] }:$src, GPR:{ *:[i32] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_word_alignedstore>> - Complexity = 4
                    // Dst: (VSTMQIA DPair:{ *:[v2f64] }:$src, GPR:{ *:[i32] }:$Rn)
/* 21320*/        0, /*End of Scope*/
/* 21321*/      0, /*End of Scope*/
/* 21322*/    0, /*End of Scope*/
/* 21323*/  /*SwitchOpcode*/ 18|128,12/*1554*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->22881
/* 21327*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/* 21328*/    OPC_Scope, 111, /*->21441*/ // 22 children in Scope
/* 21330*/      OPC_CheckChild1Integer, 73|128,7/*969*/, 
/* 21333*/      OPC_RecordChild2, // #1 = $cop
/* 21334*/      OPC_MoveChild2,
/* 21335*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21338*/      OPC_MoveParent,
/* 21339*/      OPC_RecordChild3, // #2 = $opc1
/* 21340*/      OPC_MoveChild3,
/* 21341*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21344*/      OPC_MoveParent,
/* 21345*/      OPC_RecordChild4, // #3 = $CRd
/* 21346*/      OPC_MoveChild4,
/* 21347*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21350*/      OPC_MoveParent,
/* 21351*/      OPC_RecordChild5, // #4 = $CRn
/* 21352*/      OPC_MoveChild5,
/* 21353*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21356*/      OPC_MoveParent,
/* 21357*/      OPC_RecordChild6, // #5 = $CRm
/* 21358*/      OPC_MoveChild6,
/* 21359*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21362*/      OPC_MoveParent,
/* 21363*/      OPC_RecordChild7, // #6 = $opc2
/* 21364*/      OPC_MoveChild7,
/* 21365*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21368*/      OPC_MoveParent,
/* 21369*/      OPC_Scope, 34, /*->21405*/ // 2 children in Scope
/* 21371*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 21373*/        OPC_EmitMergeInputChains1_0,
/* 21374*/        OPC_EmitConvertToTarget, 1,
/* 21376*/        OPC_EmitConvertToTarget, 2,
/* 21378*/        OPC_EmitConvertToTarget, 3,
/* 21380*/        OPC_EmitConvertToTarget, 4,
/* 21382*/        OPC_EmitConvertToTarget, 5,
/* 21384*/        OPC_EmitConvertToTarget, 6,
/* 21386*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21389*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21392*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CDP), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 9, 10, 11, 12, 13, 14, 
                  // Src: (intrinsic_void 969:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (CDP (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 21405*/      /*Scope*/ 34, /*->21440*/
/* 21406*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 21408*/        OPC_EmitMergeInputChains1_0,
/* 21409*/        OPC_EmitConvertToTarget, 1,
/* 21411*/        OPC_EmitConvertToTarget, 2,
/* 21413*/        OPC_EmitConvertToTarget, 3,
/* 21415*/        OPC_EmitConvertToTarget, 4,
/* 21417*/        OPC_EmitConvertToTarget, 5,
/* 21419*/        OPC_EmitConvertToTarget, 6,
/* 21421*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21424*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21427*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CDP), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 9, 10, 11, 12, 13, 14, 
                  // Src: (intrinsic_void 969:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (t2CDP (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 21440*/      0, /*End of Scope*/
/* 21441*/    /*Scope*/ 103, /*->21545*/
/* 21442*/      OPC_CheckChild1Integer, 74|128,7/*970*/, 
/* 21445*/      OPC_RecordChild2, // #1 = $cop
/* 21446*/      OPC_MoveChild2,
/* 21447*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21450*/      OPC_MoveParent,
/* 21451*/      OPC_RecordChild3, // #2 = $opc1
/* 21452*/      OPC_MoveChild3,
/* 21453*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21456*/      OPC_MoveParent,
/* 21457*/      OPC_RecordChild4, // #3 = $CRd
/* 21458*/      OPC_MoveChild4,
/* 21459*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21462*/      OPC_MoveParent,
/* 21463*/      OPC_RecordChild5, // #4 = $CRn
/* 21464*/      OPC_MoveChild5,
/* 21465*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21468*/      OPC_MoveParent,
/* 21469*/      OPC_RecordChild6, // #5 = $CRm
/* 21470*/      OPC_MoveChild6,
/* 21471*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21474*/      OPC_MoveParent,
/* 21475*/      OPC_RecordChild7, // #6 = $opc2
/* 21476*/      OPC_MoveChild7,
/* 21477*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21480*/      OPC_MoveParent,
/* 21481*/      OPC_Scope, 26, /*->21509*/ // 2 children in Scope
/* 21483*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 21485*/        OPC_EmitMergeInputChains1_0,
/* 21486*/        OPC_EmitConvertToTarget, 1,
/* 21488*/        OPC_EmitConvertToTarget, 2,
/* 21490*/        OPC_EmitConvertToTarget, 3,
/* 21492*/        OPC_EmitConvertToTarget, 4,
/* 21494*/        OPC_EmitConvertToTarget, 5,
/* 21496*/        OPC_EmitConvertToTarget, 6,
/* 21498*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CDP2), 0|OPFL_Chain,
                      6/*#Ops*/, 7, 8, 9, 10, 11, 12, 
                  // Src: (intrinsic_void 970:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (CDP2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 21509*/      /*Scope*/ 34, /*->21544*/
/* 21510*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 21512*/        OPC_EmitMergeInputChains1_0,
/* 21513*/        OPC_EmitConvertToTarget, 1,
/* 21515*/        OPC_EmitConvertToTarget, 2,
/* 21517*/        OPC_EmitConvertToTarget, 3,
/* 21519*/        OPC_EmitConvertToTarget, 4,
/* 21521*/        OPC_EmitConvertToTarget, 5,
/* 21523*/        OPC_EmitConvertToTarget, 6,
/* 21525*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21528*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21531*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CDP2), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 9, 10, 11, 12, 13, 14, 
                  // Src: (intrinsic_void 970:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (t2CDP2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 21544*/      0, /*End of Scope*/
/* 21545*/    /*Scope*/ 76, /*->21622*/
/* 21546*/      OPC_CheckChild1Integer, 90|128,7/*986*/, 
/* 21549*/      OPC_RecordChild2, // #1 = $cop
/* 21550*/      OPC_MoveChild2,
/* 21551*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21554*/      OPC_MoveParent,
/* 21555*/      OPC_RecordChild3, // #2 = $CRd
/* 21556*/      OPC_MoveChild3,
/* 21557*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21560*/      OPC_MoveParent,
/* 21561*/      OPC_RecordChild4, // #3 = $addr
/* 21562*/      OPC_CheckChild4Type, MVT::i32,
/* 21564*/      OPC_Scope, 27, /*->21593*/ // 2 children in Scope
/* 21566*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 21568*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21571*/        OPC_EmitMergeInputChains1_0,
/* 21572*/        OPC_EmitConvertToTarget, 1,
/* 21574*/        OPC_EmitConvertToTarget, 2,
/* 21576*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21579*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21582*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 986:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21593*/      /*Scope*/ 27, /*->21621*/
/* 21594*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 21596*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21599*/        OPC_EmitMergeInputChains1_0,
/* 21600*/        OPC_EmitConvertToTarget, 1,
/* 21602*/        OPC_EmitConvertToTarget, 2,
/* 21604*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21607*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21610*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 986:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21621*/      0, /*End of Scope*/
/* 21622*/    /*Scope*/ 76, /*->21699*/
/* 21623*/      OPC_CheckChild1Integer, 93|128,7/*989*/, 
/* 21626*/      OPC_RecordChild2, // #1 = $cop
/* 21627*/      OPC_MoveChild2,
/* 21628*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21631*/      OPC_MoveParent,
/* 21632*/      OPC_RecordChild3, // #2 = $CRd
/* 21633*/      OPC_MoveChild3,
/* 21634*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21637*/      OPC_MoveParent,
/* 21638*/      OPC_RecordChild4, // #3 = $addr
/* 21639*/      OPC_CheckChild4Type, MVT::i32,
/* 21641*/      OPC_Scope, 27, /*->21670*/ // 2 children in Scope
/* 21643*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 21645*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21648*/        OPC_EmitMergeInputChains1_0,
/* 21649*/        OPC_EmitConvertToTarget, 1,
/* 21651*/        OPC_EmitConvertToTarget, 2,
/* 21653*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21656*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21659*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 989:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDCL_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21670*/      /*Scope*/ 27, /*->21698*/
/* 21671*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 21673*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21676*/        OPC_EmitMergeInputChains1_0,
/* 21677*/        OPC_EmitConvertToTarget, 1,
/* 21679*/        OPC_EmitConvertToTarget, 2,
/* 21681*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21684*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21687*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 989:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDCL_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21698*/      0, /*End of Scope*/
/* 21699*/    /*Scope*/ 68, /*->21768*/
/* 21700*/      OPC_CheckChild1Integer, 91|128,7/*987*/, 
/* 21703*/      OPC_RecordChild2, // #1 = $cop
/* 21704*/      OPC_MoveChild2,
/* 21705*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21708*/      OPC_MoveParent,
/* 21709*/      OPC_RecordChild3, // #2 = $CRd
/* 21710*/      OPC_MoveChild3,
/* 21711*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21714*/      OPC_MoveParent,
/* 21715*/      OPC_RecordChild4, // #3 = $addr
/* 21716*/      OPC_CheckChild4Type, MVT::i32,
/* 21718*/      OPC_Scope, 19, /*->21739*/ // 2 children in Scope
/* 21720*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 21722*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21725*/        OPC_EmitMergeInputChains1_0,
/* 21726*/        OPC_EmitConvertToTarget, 1,
/* 21728*/        OPC_EmitConvertToTarget, 2,
/* 21730*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC2_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 6, 7, 4, 5, 
                  // Src: (intrinsic_void 987:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC2_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21739*/      /*Scope*/ 27, /*->21767*/
/* 21740*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 21742*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21745*/        OPC_EmitMergeInputChains1_0,
/* 21746*/        OPC_EmitConvertToTarget, 1,
/* 21748*/        OPC_EmitConvertToTarget, 2,
/* 21750*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21753*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21756*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC2_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 987:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC2_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21767*/      0, /*End of Scope*/
/* 21768*/    /*Scope*/ 68, /*->21837*/
/* 21769*/      OPC_CheckChild1Integer, 92|128,7/*988*/, 
/* 21772*/      OPC_RecordChild2, // #1 = $cop
/* 21773*/      OPC_MoveChild2,
/* 21774*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21777*/      OPC_MoveParent,
/* 21778*/      OPC_RecordChild3, // #2 = $CRd
/* 21779*/      OPC_MoveChild3,
/* 21780*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21783*/      OPC_MoveParent,
/* 21784*/      OPC_RecordChild4, // #3 = $addr
/* 21785*/      OPC_CheckChild4Type, MVT::i32,
/* 21787*/      OPC_Scope, 19, /*->21808*/ // 2 children in Scope
/* 21789*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 21791*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21794*/        OPC_EmitMergeInputChains1_0,
/* 21795*/        OPC_EmitConvertToTarget, 1,
/* 21797*/        OPC_EmitConvertToTarget, 2,
/* 21799*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC2L_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 6, 7, 4, 5, 
                  // Src: (intrinsic_void 988:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC2L_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21808*/      /*Scope*/ 27, /*->21836*/
/* 21809*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 21811*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21814*/        OPC_EmitMergeInputChains1_0,
/* 21815*/        OPC_EmitConvertToTarget, 1,
/* 21817*/        OPC_EmitConvertToTarget, 2,
/* 21819*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21822*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21825*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC2L_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 988:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC2L_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21836*/      0, /*End of Scope*/
/* 21837*/    /*Scope*/ 76, /*->21914*/
/* 21838*/      OPC_CheckChild1Integer, 31|128,9/*1183*/, 
/* 21841*/      OPC_RecordChild2, // #1 = $cop
/* 21842*/      OPC_MoveChild2,
/* 21843*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21846*/      OPC_MoveParent,
/* 21847*/      OPC_RecordChild3, // #2 = $CRd
/* 21848*/      OPC_MoveChild3,
/* 21849*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21852*/      OPC_MoveParent,
/* 21853*/      OPC_RecordChild4, // #3 = $addr
/* 21854*/      OPC_CheckChild4Type, MVT::i32,
/* 21856*/      OPC_Scope, 27, /*->21885*/ // 2 children in Scope
/* 21858*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 21860*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21863*/        OPC_EmitMergeInputChains1_0,
/* 21864*/        OPC_EmitConvertToTarget, 1,
/* 21866*/        OPC_EmitConvertToTarget, 2,
/* 21868*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21871*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21874*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1183:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21885*/      /*Scope*/ 27, /*->21913*/
/* 21886*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 21888*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21891*/        OPC_EmitMergeInputChains1_0,
/* 21892*/        OPC_EmitConvertToTarget, 1,
/* 21894*/        OPC_EmitConvertToTarget, 2,
/* 21896*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21899*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21902*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1183:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21913*/      0, /*End of Scope*/
/* 21914*/    /*Scope*/ 76, /*->21991*/
/* 21915*/      OPC_CheckChild1Integer, 34|128,9/*1186*/, 
/* 21918*/      OPC_RecordChild2, // #1 = $cop
/* 21919*/      OPC_MoveChild2,
/* 21920*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21923*/      OPC_MoveParent,
/* 21924*/      OPC_RecordChild3, // #2 = $CRd
/* 21925*/      OPC_MoveChild3,
/* 21926*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21929*/      OPC_MoveParent,
/* 21930*/      OPC_RecordChild4, // #3 = $addr
/* 21931*/      OPC_CheckChild4Type, MVT::i32,
/* 21933*/      OPC_Scope, 27, /*->21962*/ // 2 children in Scope
/* 21935*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 21937*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21940*/        OPC_EmitMergeInputChains1_0,
/* 21941*/        OPC_EmitConvertToTarget, 1,
/* 21943*/        OPC_EmitConvertToTarget, 2,
/* 21945*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21948*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21951*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1186:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STCL_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21962*/      /*Scope*/ 27, /*->21990*/
/* 21963*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 21965*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 21968*/        OPC_EmitMergeInputChains1_0,
/* 21969*/        OPC_EmitConvertToTarget, 1,
/* 21971*/        OPC_EmitConvertToTarget, 2,
/* 21973*/        OPC_EmitInteger, MVT::i32, 14, 
/* 21976*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21979*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1186:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STCL_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 21990*/      0, /*End of Scope*/
/* 21991*/    /*Scope*/ 68, /*->22060*/
/* 21992*/      OPC_CheckChild1Integer, 32|128,9/*1184*/, 
/* 21995*/      OPC_RecordChild2, // #1 = $cop
/* 21996*/      OPC_MoveChild2,
/* 21997*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22000*/      OPC_MoveParent,
/* 22001*/      OPC_RecordChild3, // #2 = $CRd
/* 22002*/      OPC_MoveChild3,
/* 22003*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22006*/      OPC_MoveParent,
/* 22007*/      OPC_RecordChild4, // #3 = $addr
/* 22008*/      OPC_CheckChild4Type, MVT::i32,
/* 22010*/      OPC_Scope, 19, /*->22031*/ // 2 children in Scope
/* 22012*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 22014*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 22017*/        OPC_EmitMergeInputChains1_0,
/* 22018*/        OPC_EmitConvertToTarget, 1,
/* 22020*/        OPC_EmitConvertToTarget, 2,
/* 22022*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC2_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 6, 7, 4, 5, 
                  // Src: (intrinsic_void 1184:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC2_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 22031*/      /*Scope*/ 27, /*->22059*/
/* 22032*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 22034*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 22037*/        OPC_EmitMergeInputChains1_0,
/* 22038*/        OPC_EmitConvertToTarget, 1,
/* 22040*/        OPC_EmitConvertToTarget, 2,
/* 22042*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22045*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22048*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC2_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1184:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC2_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 22059*/      0, /*End of Scope*/
/* 22060*/    /*Scope*/ 68, /*->22129*/
/* 22061*/      OPC_CheckChild1Integer, 33|128,9/*1185*/, 
/* 22064*/      OPC_RecordChild2, // #1 = $cop
/* 22065*/      OPC_MoveChild2,
/* 22066*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22069*/      OPC_MoveParent,
/* 22070*/      OPC_RecordChild3, // #2 = $CRd
/* 22071*/      OPC_MoveChild3,
/* 22072*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22075*/      OPC_MoveParent,
/* 22076*/      OPC_RecordChild4, // #3 = $addr
/* 22077*/      OPC_CheckChild4Type, MVT::i32,
/* 22079*/      OPC_Scope, 19, /*->22100*/ // 2 children in Scope
/* 22081*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 22083*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 22086*/        OPC_EmitMergeInputChains1_0,
/* 22087*/        OPC_EmitConvertToTarget, 1,
/* 22089*/        OPC_EmitConvertToTarget, 2,
/* 22091*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC2L_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 6, 7, 4, 5, 
                  // Src: (intrinsic_void 1185:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC2L_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 22100*/      /*Scope*/ 27, /*->22128*/
/* 22101*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 22103*/        OPC_CheckComplexPat, /*CP*/20, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 22106*/        OPC_EmitMergeInputChains1_0,
/* 22107*/        OPC_EmitConvertToTarget, 1,
/* 22109*/        OPC_EmitConvertToTarget, 2,
/* 22111*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22114*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22117*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC2L_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 6, 7, 4, 5, 8, 9, 
                  // Src: (intrinsic_void 1185:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC2L_OFFSET (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 22128*/      0, /*End of Scope*/
/* 22129*/    /*Scope*/ 102, /*->22232*/
/* 22130*/      OPC_CheckChild1Integer, 96|128,7/*992*/, 
/* 22133*/      OPC_RecordChild2, // #1 = $cop
/* 22134*/      OPC_MoveChild2,
/* 22135*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22138*/      OPC_MoveParent,
/* 22139*/      OPC_RecordChild3, // #2 = $opc1
/* 22140*/      OPC_MoveChild3,
/* 22141*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22144*/      OPC_MoveParent,
/* 22145*/      OPC_RecordChild4, // #3 = $Rt
/* 22146*/      OPC_RecordChild5, // #4 = $CRn
/* 22147*/      OPC_MoveChild5,
/* 22148*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22151*/      OPC_MoveParent,
/* 22152*/      OPC_RecordChild6, // #5 = $CRm
/* 22153*/      OPC_MoveChild6,
/* 22154*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22157*/      OPC_MoveParent,
/* 22158*/      OPC_RecordChild7, // #6 = $opc2
/* 22159*/      OPC_MoveChild7,
/* 22160*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22163*/      OPC_MoveParent,
/* 22164*/      OPC_Scope, 32, /*->22198*/ // 2 children in Scope
/* 22166*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 22168*/        OPC_EmitMergeInputChains1_0,
/* 22169*/        OPC_EmitConvertToTarget, 1,
/* 22171*/        OPC_EmitConvertToTarget, 2,
/* 22173*/        OPC_EmitConvertToTarget, 4,
/* 22175*/        OPC_EmitConvertToTarget, 5,
/* 22177*/        OPC_EmitConvertToTarget, 6,
/* 22179*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22182*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22185*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCR), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 3, 9, 10, 11, 12, 13, 
                  // Src: (intrinsic_void 992:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MCR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 22198*/      /*Scope*/ 32, /*->22231*/
/* 22199*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 22201*/        OPC_EmitMergeInputChains1_0,
/* 22202*/        OPC_EmitConvertToTarget, 1,
/* 22204*/        OPC_EmitConvertToTarget, 2,
/* 22206*/        OPC_EmitConvertToTarget, 4,
/* 22208*/        OPC_EmitConvertToTarget, 5,
/* 22210*/        OPC_EmitConvertToTarget, 6,
/* 22212*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22215*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22218*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCR), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 3, 9, 10, 11, 12, 13, 
                  // Src: (intrinsic_void 992:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MCR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 22231*/      0, /*End of Scope*/
/* 22232*/    /*Scope*/ 94, /*->22327*/
/* 22233*/      OPC_CheckChild1Integer, 97|128,7/*993*/, 
/* 22236*/      OPC_RecordChild2, // #1 = $cop
/* 22237*/      OPC_MoveChild2,
/* 22238*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22241*/      OPC_MoveParent,
/* 22242*/      OPC_RecordChild3, // #2 = $opc1
/* 22243*/      OPC_MoveChild3,
/* 22244*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22247*/      OPC_MoveParent,
/* 22248*/      OPC_RecordChild4, // #3 = $Rt
/* 22249*/      OPC_RecordChild5, // #4 = $CRn
/* 22250*/      OPC_MoveChild5,
/* 22251*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22254*/      OPC_MoveParent,
/* 22255*/      OPC_RecordChild6, // #5 = $CRm
/* 22256*/      OPC_MoveChild6,
/* 22257*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22260*/      OPC_MoveParent,
/* 22261*/      OPC_RecordChild7, // #6 = $opc2
/* 22262*/      OPC_MoveChild7,
/* 22263*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22266*/      OPC_MoveParent,
/* 22267*/      OPC_Scope, 24, /*->22293*/ // 2 children in Scope
/* 22269*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 22271*/        OPC_EmitMergeInputChains1_0,
/* 22272*/        OPC_EmitConvertToTarget, 1,
/* 22274*/        OPC_EmitConvertToTarget, 2,
/* 22276*/        OPC_EmitConvertToTarget, 4,
/* 22278*/        OPC_EmitConvertToTarget, 5,
/* 22280*/        OPC_EmitConvertToTarget, 6,
/* 22282*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCR2), 0|OPFL_Chain,
                      6/*#Ops*/, 7, 8, 3, 9, 10, 11, 
                  // Src: (intrinsic_void 993:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MCR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 22293*/      /*Scope*/ 32, /*->22326*/
/* 22294*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 22296*/        OPC_EmitMergeInputChains1_0,
/* 22297*/        OPC_EmitConvertToTarget, 1,
/* 22299*/        OPC_EmitConvertToTarget, 2,
/* 22301*/        OPC_EmitConvertToTarget, 4,
/* 22303*/        OPC_EmitConvertToTarget, 5,
/* 22305*/        OPC_EmitConvertToTarget, 6,
/* 22307*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22310*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22313*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCR2), 0|OPFL_Chain,
                      8/*#Ops*/, 7, 8, 3, 9, 10, 11, 12, 13, 
                  // Src: (intrinsic_void 993:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MCR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 22326*/      0, /*End of Scope*/
/* 22327*/    /*Scope*/ 81, /*->22409*/
/* 22328*/      OPC_CheckChild1Integer, 98|128,7/*994*/, 
/* 22331*/      OPC_RecordChild2, // #1 = $cop
/* 22332*/      OPC_MoveChild2,
/* 22333*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22336*/      OPC_MoveParent,
/* 22337*/      OPC_RecordChild3, // #2 = $opc1
/* 22338*/      OPC_MoveChild3,
/* 22339*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22342*/      OPC_MoveParent,
/* 22343*/      OPC_RecordChild4, // #3 = $Rt
/* 22344*/      OPC_RecordChild5, // #4 = $Rt2
/* 22345*/      OPC_RecordChild6, // #5 = $CRm
/* 22346*/      OPC_MoveChild6,
/* 22347*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22350*/      OPC_MoveParent,
/* 22351*/      OPC_Scope, 27, /*->22380*/ // 2 children in Scope
/* 22353*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 22355*/        OPC_EmitMergeInputChains1_0,
/* 22356*/        OPC_EmitConvertToTarget, 1,
/* 22358*/        OPC_EmitConvertToTarget, 2,
/* 22360*/        OPC_EmitConvertToTarget, 5,
/* 22362*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22365*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22368*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCRR), 0|OPFL_Chain,
                      7/*#Ops*/, 6, 7, 3, 4, 8, 9, 10, 
                  // Src: (intrinsic_void 994:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (MCRR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
/* 22380*/      /*Scope*/ 27, /*->22408*/
/* 22381*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 22383*/        OPC_EmitMergeInputChains1_0,
/* 22384*/        OPC_EmitConvertToTarget, 1,
/* 22386*/        OPC_EmitConvertToTarget, 2,
/* 22388*/        OPC_EmitConvertToTarget, 5,
/* 22390*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22393*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22396*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCRR), 0|OPFL_Chain,
                      7/*#Ops*/, 6, 7, 3, 4, 8, 9, 10, 
                  // Src: (intrinsic_void 994:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (t2MCRR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
/* 22408*/      0, /*End of Scope*/
/* 22409*/    /*Scope*/ 73, /*->22483*/
/* 22410*/      OPC_CheckChild1Integer, 99|128,7/*995*/, 
/* 22413*/      OPC_RecordChild2, // #1 = $cop
/* 22414*/      OPC_MoveChild2,
/* 22415*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22418*/      OPC_MoveParent,
/* 22419*/      OPC_RecordChild3, // #2 = $opc1
/* 22420*/      OPC_MoveChild3,
/* 22421*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22424*/      OPC_MoveParent,
/* 22425*/      OPC_RecordChild4, // #3 = $Rt
/* 22426*/      OPC_RecordChild5, // #4 = $Rt2
/* 22427*/      OPC_RecordChild6, // #5 = $CRm
/* 22428*/      OPC_MoveChild6,
/* 22429*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22432*/      OPC_MoveParent,
/* 22433*/      OPC_Scope, 19, /*->22454*/ // 2 children in Scope
/* 22435*/        OPC_CheckPatternPredicate, 21, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 22437*/        OPC_EmitMergeInputChains1_0,
/* 22438*/        OPC_EmitConvertToTarget, 1,
/* 22440*/        OPC_EmitConvertToTarget, 2,
/* 22442*/        OPC_EmitConvertToTarget, 5,
/* 22444*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCRR2), 0|OPFL_Chain,
                      5/*#Ops*/, 6, 7, 3, 4, 8, 
                  // Src: (intrinsic_void 995:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (MCRR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
/* 22454*/      /*Scope*/ 27, /*->22482*/
/* 22455*/        OPC_CheckPatternPredicate, 22, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 22457*/        OPC_EmitMergeInputChains1_0,
/* 22458*/        OPC_EmitConvertToTarget, 1,
/* 22460*/        OPC_EmitConvertToTarget, 2,
/* 22462*/        OPC_EmitConvertToTarget, 5,
/* 22464*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22467*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22470*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCRR2), 0|OPFL_Chain,
                      7/*#Ops*/, 6, 7, 3, 4, 8, 9, 10, 
                  // Src: (intrinsic_void 995:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (t2MCRR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
/* 22482*/      0, /*End of Scope*/
/* 22483*/    /*Scope*/ 70, /*->22554*/
/* 22484*/      OPC_CheckChild1Integer, 50|128,9/*1202*/, 
/* 22487*/      OPC_Scope, 11, /*->22500*/ // 2 children in Scope
/* 22489*/        OPC_CheckChild2Integer, 121|128,1/*249*/, 
/* 22492*/        OPC_CheckPatternPredicate, 23, // (Subtarget->isThumb()) && (Subtarget->isTargetWindows())
/* 22494*/        OPC_EmitMergeInputChains1_0,
/* 22495*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t__brkdiv0), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 1202:{ *:[iPTR] }, 249:{ *:[i32] }) - Complexity = 13
                  // Dst: (t__brkdiv0)
/* 22500*/      /*Scope*/ 52, /*->22553*/
/* 22501*/        OPC_RecordChild2, // #1 = $imm16
/* 22502*/        OPC_MoveChild2,
/* 22503*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22506*/        OPC_Scope, 14, /*->22522*/ // 3 children in Scope
/* 22508*/          OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 22510*/          OPC_MoveParent,
/* 22511*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 22513*/          OPC_EmitMergeInputChains1_0,
/* 22514*/          OPC_EmitConvertToTarget, 1,
/* 22516*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::UDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1202:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) - Complexity = 12
                    // Dst: (UDF (imm:{ *:[i32] }):$imm16)
/* 22522*/        /*Scope*/ 14, /*->22537*/
/* 22523*/          OPC_CheckPredicate, 49, // Predicate_imm0_255
/* 22525*/          OPC_MoveParent,
/* 22526*/          OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 22528*/          OPC_EmitMergeInputChains1_0,
/* 22529*/          OPC_EmitConvertToTarget, 1,
/* 22531*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::tUDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1202:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 12
                    // Dst: (tUDF (imm:{ *:[i32] }):$imm8)
/* 22537*/        /*Scope*/ 14, /*->22552*/
/* 22538*/          OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 22540*/          OPC_MoveParent,
/* 22541*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 22543*/          OPC_EmitMergeInputChains1_0,
/* 22544*/          OPC_EmitConvertToTarget, 1,
/* 22546*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::t2UDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1202:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) - Complexity = 12
                    // Dst: (t2UDF (imm:{ *:[i32] }):$imm16)
/* 22552*/        0, /*End of Scope*/
/* 22553*/      0, /*End of Scope*/
/* 22554*/    /*Scope*/ 79, /*->22634*/
/* 22555*/      OPC_CheckChild1Integer, 86|128,7/*982*/, 
/* 22558*/      OPC_RecordChild2, // #1 = $imm
/* 22559*/      OPC_MoveChild2,
/* 22560*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22563*/      OPC_Scope, 22, /*->22587*/ // 3 children in Scope
/* 22565*/        OPC_CheckPredicate, 50, // Predicate_imm0_239
/* 22567*/        OPC_MoveParent,
/* 22568*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 22570*/        OPC_EmitMergeInputChains1_0,
/* 22571*/        OPC_EmitConvertToTarget, 1,
/* 22573*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22576*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22579*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::HINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 982:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) - Complexity = 12
                  // Dst: (HINT (imm:{ *:[i32] }):$imm)
/* 22587*/      /*Scope*/ 22, /*->22610*/
/* 22588*/        OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 22590*/        OPC_MoveParent,
/* 22591*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasV6MOps()) && (Subtarget->isThumb())
/* 22593*/        OPC_EmitMergeInputChains1_0,
/* 22594*/        OPC_EmitConvertToTarget, 1,
/* 22596*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22599*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22602*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tHINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 982:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 12
                  // Dst: (tHINT (imm:{ *:[i32] }):$imm)
/* 22610*/      /*Scope*/ 22, /*->22633*/
/* 22611*/        OPC_CheckPredicate, 50, // Predicate_imm0_239
/* 22613*/        OPC_MoveParent,
/* 22614*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 22616*/        OPC_EmitMergeInputChains1_0,
/* 22617*/        OPC_EmitConvertToTarget, 1,
/* 22619*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22622*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22625*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2HINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 982:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) - Complexity = 12
                  // Dst: (t2HINT (imm:{ *:[i32] }):$imm)
/* 22633*/      0, /*End of Scope*/
/* 22634*/    /*Scope*/ 53, /*->22688*/
/* 22635*/      OPC_CheckChild1Integer, 82|128,7/*978*/, 
/* 22638*/      OPC_RecordChild2, // #1 = $opt
/* 22639*/      OPC_MoveChild2,
/* 22640*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22643*/      OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 22645*/      OPC_MoveParent,
/* 22646*/      OPC_Scope, 19, /*->22667*/ // 2 children in Scope
/* 22648*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 22650*/        OPC_EmitMergeInputChains1_0,
/* 22651*/        OPC_EmitConvertToTarget, 1,
/* 22653*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22656*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22659*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DBG), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 978:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DBG (imm:{ *:[i32] }):$opt)
/* 22667*/      /*Scope*/ 19, /*->22687*/
/* 22668*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 22670*/        OPC_EmitMergeInputChains1_0,
/* 22671*/        OPC_EmitConvertToTarget, 1,
/* 22673*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22676*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22679*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DBG), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 978:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DBG (imm:{ *:[i32] }):$opt)
/* 22687*/      0, /*End of Scope*/
/* 22688*/    /*Scope*/ 45, /*->22734*/
/* 22689*/      OPC_CheckChild1Integer, 83|128,7/*979*/, 
/* 22692*/      OPC_RecordChild2, // #1 = $opt
/* 22693*/      OPC_MoveChild2,
/* 22694*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22697*/      OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 22699*/      OPC_MoveParent,
/* 22700*/      OPC_Scope, 11, /*->22713*/ // 2 children in Scope
/* 22702*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 22704*/        OPC_EmitMergeInputChains1_0,
/* 22705*/        OPC_EmitConvertToTarget, 1,
/* 22707*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DMB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 979:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DMB (imm:{ *:[i32] }):$opt)
/* 22713*/      /*Scope*/ 19, /*->22733*/
/* 22714*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 22716*/        OPC_EmitMergeInputChains1_0,
/* 22717*/        OPC_EmitConvertToTarget, 1,
/* 22719*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22722*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22725*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DMB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 979:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DMB (imm:{ *:[i32] }):$opt)
/* 22733*/      0, /*End of Scope*/
/* 22734*/    /*Scope*/ 45, /*->22780*/
/* 22735*/      OPC_CheckChild1Integer, 84|128,7/*980*/, 
/* 22738*/      OPC_RecordChild2, // #1 = $opt
/* 22739*/      OPC_MoveChild2,
/* 22740*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22743*/      OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 22745*/      OPC_MoveParent,
/* 22746*/      OPC_Scope, 11, /*->22759*/ // 2 children in Scope
/* 22748*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 22750*/        OPC_EmitMergeInputChains1_0,
/* 22751*/        OPC_EmitConvertToTarget, 1,
/* 22753*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DSB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 980:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DSB (imm:{ *:[i32] }):$opt)
/* 22759*/      /*Scope*/ 19, /*->22779*/
/* 22760*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 22762*/        OPC_EmitMergeInputChains1_0,
/* 22763*/        OPC_EmitConvertToTarget, 1,
/* 22765*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22768*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22771*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DSB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 980:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DSB (imm:{ *:[i32] }):$opt)
/* 22779*/      0, /*End of Scope*/
/* 22780*/    /*Scope*/ 45, /*->22826*/
/* 22781*/      OPC_CheckChild1Integer, 87|128,7/*983*/, 
/* 22784*/      OPC_RecordChild2, // #1 = $opt
/* 22785*/      OPC_MoveChild2,
/* 22786*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22789*/      OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 22791*/      OPC_MoveParent,
/* 22792*/      OPC_Scope, 11, /*->22805*/ // 2 children in Scope
/* 22794*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 22796*/        OPC_EmitMergeInputChains1_0,
/* 22797*/        OPC_EmitConvertToTarget, 1,
/* 22799*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::ISB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 983:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (ISB (imm:{ *:[i32] }):$opt)
/* 22805*/      /*Scope*/ 19, /*->22825*/
/* 22806*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 22808*/        OPC_EmitMergeInputChains1_0,
/* 22809*/        OPC_EmitConvertToTarget, 1,
/* 22811*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22814*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22817*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2ISB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 983:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2ISB (imm:{ *:[i32] }):$opt)
/* 22825*/      0, /*End of Scope*/
/* 22826*/    /*Scope*/ 31, /*->22858*/
/* 22827*/      OPC_CheckChild1Integer, 75|128,7/*971*/, 
/* 22830*/      OPC_Scope, 8, /*->22840*/ // 2 children in Scope
/* 22832*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasV6KOps()) && (!Subtarget->isThumb())
/* 22834*/        OPC_EmitMergeInputChains1_0,
/* 22835*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CLREX), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 971:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (CLREX)
/* 22840*/      /*Scope*/ 16, /*->22857*/
/* 22841*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 22843*/        OPC_EmitMergeInputChains1_0,
/* 22844*/        OPC_EmitInteger, MVT::i32, 14, 
/* 22847*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22850*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CLREX), 0|OPFL_Chain,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 971:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (t2CLREX)
/* 22857*/      0, /*End of Scope*/
/* 22858*/    /*Scope*/ 21, /*->22880*/
/* 22859*/      OPC_CheckChild1Integer, 122|128,8/*1146*/, 
/* 22862*/      OPC_RecordChild2, // #1 = $src
/* 22863*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 22865*/      OPC_EmitMergeInputChains1_0,
/* 22866*/      OPC_EmitInteger, MVT::i32, 14, 
/* 22869*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22872*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::VMSR), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 2, 3, 
                // Src: (intrinsic_void 1146:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (VMSR GPRnopc:{ *:[i32] }:$src)
/* 22880*/    0, /*End of Scope*/
/* 22881*/  /*SwitchOpcode*/ 4|128,3/*388*/, TARGET_VAL(ARMISD::PRELOAD),// ->23273
/* 22885*/    OPC_RecordNode, // #0 = 'ARMPreload' chained node
/* 22886*/    OPC_Scope, 69|128,2/*325*/, /*->23214*/ // 2 children in Scope
/* 22889*/      OPC_RecordChild1, // #1 = $shift
/* 22890*/      OPC_CheckChild1Type, MVT::i32,
/* 22892*/      OPC_Scope, 12|128,1/*140*/, /*->23035*/ // 2 children in Scope
/* 22895*/        OPC_CheckChild2Integer, 1, 
/* 22897*/        OPC_CheckChild2Type, MVT::i32,
/* 22899*/        OPC_Scope, 31, /*->22932*/ // 2 children in Scope
/* 22901*/          OPC_CheckChild3Integer, 1, 
/* 22903*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 22905*/          OPC_Scope, 12, /*->22919*/ // 2 children in Scope
/* 22907*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 22910*/            OPC_EmitMergeInputChains1_0,
/* 22911*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLDrs), 0|OPFL_Chain,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (ARMPreload ldst_so_reg:{ *:[i32] }:$shift, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 25
                      // Dst: (PLDrs ldst_so_reg:{ *:[i32] }:$shift)
/* 22919*/          /*Scope*/ 11, /*->22931*/
/* 22920*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 22923*/            OPC_EmitMergeInputChains1_0,
/* 22924*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLDi12), 0|OPFL_Chain,
                          2/*#Ops*/, 2, 3, 
                      // Src: (ARMPreload addrmode_imm12:{ *:[i32] }:$addr, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 22
                      // Dst: (PLDi12 addrmode_imm12:{ *:[i32] }:$addr)
/* 22931*/          0, /*End of Scope*/
/* 22932*/        /*Scope*/ 101, /*->23034*/
/* 22933*/          OPC_CheckChild3Integer, 0, 
/* 22935*/          OPC_Scope, 14, /*->22951*/ // 4 children in Scope
/* 22937*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 22939*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 22942*/            OPC_EmitMergeInputChains1_0,
/* 22943*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLIrs), 0|OPFL_Chain,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (ARMPreload ldst_so_reg:{ *:[i32] }:$shift, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 25
                      // Dst: (PLIrs ldst_so_reg:{ *:[i32] }:$shift)
/* 22951*/          /*Scope*/ 22, /*->22974*/
/* 22952*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 22954*/            OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 22957*/            OPC_EmitMergeInputChains1_0,
/* 22958*/            OPC_EmitInteger, MVT::i32, 14, 
/* 22961*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 22964*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDWs), 0|OPFL_Chain,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ARMPreload t2addrmode_so_reg:{ *:[i32] }:$addr, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 25
                      // Dst: (t2PLDWs t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 22974*/          /*Scope*/ 13, /*->22988*/
/* 22975*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 22977*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 22980*/            OPC_EmitMergeInputChains1_0,
/* 22981*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLIi12), 0|OPFL_Chain,
                          2/*#Ops*/, 2, 3, 
                      // Src: (ARMPreload addrmode_imm12:{ *:[i32] }:$addr, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 22
                      // Dst: (PLIi12 addrmode_imm12:{ *:[i32] }:$addr)
/* 22988*/          /*Scope*/ 44, /*->23033*/
/* 22989*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 22991*/            OPC_Scope, 19, /*->23012*/ // 2 children in Scope
/* 22993*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 22996*/              OPC_EmitMergeInputChains1_0,
/* 22997*/              OPC_EmitInteger, MVT::i32, 14, 
/* 23000*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23003*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDWi12), 0|OPFL_Chain,
                            4/*#Ops*/, 2, 3, 4, 5, 
                        // Src: (ARMPreload t2addrmode_imm12:{ *:[i32] }:$addr, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 22
                        // Dst: (t2PLDWi12 t2addrmode_imm12:{ *:[i32] }:$addr)
/* 23012*/            /*Scope*/ 19, /*->23032*/
/* 23013*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 23016*/              OPC_EmitMergeInputChains1_0,
/* 23017*/              OPC_EmitInteger, MVT::i32, 14, 
/* 23020*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23023*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDWi8), 0|OPFL_Chain,
                            4/*#Ops*/, 2, 3, 4, 5, 
                        // Src: (ARMPreload t2addrmode_negimm8:{ *:[i32] }:$addr, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 22
                        // Dst: (t2PLDWi8 t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 23032*/            0, /*End of Scope*/
/* 23033*/          0, /*End of Scope*/
/* 23034*/        0, /*End of Scope*/
/* 23035*/      /*Scope*/ 48|128,1/*176*/, /*->23213*/
/* 23037*/        OPC_CheckChild2Integer, 0, 
/* 23039*/        OPC_CheckChild2Type, MVT::i32,
/* 23041*/        OPC_Scope, 101, /*->23144*/ // 2 children in Scope
/* 23043*/          OPC_CheckChild3Integer, 1, 
/* 23045*/          OPC_Scope, 14, /*->23061*/ // 4 children in Scope
/* 23047*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 23049*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 23052*/            OPC_EmitMergeInputChains1_0,
/* 23053*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLDWrs), 0|OPFL_Chain,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (ARMPreload ldst_so_reg:{ *:[i32] }:$shift, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 25
                      // Dst: (PLDWrs ldst_so_reg:{ *:[i32] }:$shift)
/* 23061*/          /*Scope*/ 22, /*->23084*/
/* 23062*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 23064*/            OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 23067*/            OPC_EmitMergeInputChains1_0,
/* 23068*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23071*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23074*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLIs), 0|OPFL_Chain,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ARMPreload t2addrmode_so_reg:{ *:[i32] }:$addr, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 25
                      // Dst: (t2PLIs t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 23084*/          /*Scope*/ 13, /*->23098*/
/* 23085*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 23087*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 23090*/            OPC_EmitMergeInputChains1_0,
/* 23091*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::PLDWi12), 0|OPFL_Chain,
                          2/*#Ops*/, 2, 3, 
                      // Src: (ARMPreload addrmode_imm12:{ *:[i32] }:$addr, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 22
                      // Dst: (PLDWi12 addrmode_imm12:{ *:[i32] }:$addr)
/* 23098*/          /*Scope*/ 44, /*->23143*/
/* 23099*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 23101*/            OPC_Scope, 19, /*->23122*/ // 2 children in Scope
/* 23103*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 23106*/              OPC_EmitMergeInputChains1_0,
/* 23107*/              OPC_EmitInteger, MVT::i32, 14, 
/* 23110*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23113*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLIi12), 0|OPFL_Chain,
                            4/*#Ops*/, 2, 3, 4, 5, 
                        // Src: (ARMPreload t2addrmode_imm12:{ *:[i32] }:$addr, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 22
                        // Dst: (t2PLIi12 t2addrmode_imm12:{ *:[i32] }:$addr)
/* 23122*/            /*Scope*/ 19, /*->23142*/
/* 23123*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 23126*/              OPC_EmitMergeInputChains1_0,
/* 23127*/              OPC_EmitInteger, MVT::i32, 14, 
/* 23130*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23133*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLIi8), 0|OPFL_Chain,
                            4/*#Ops*/, 2, 3, 4, 5, 
                        // Src: (ARMPreload t2addrmode_negimm8:{ *:[i32] }:$addr, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 22
                        // Dst: (t2PLIi8 t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 23142*/            0, /*End of Scope*/
/* 23143*/          0, /*End of Scope*/
/* 23144*/        /*Scope*/ 67, /*->23212*/
/* 23145*/          OPC_CheckChild3Integer, 0, 
/* 23147*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23149*/          OPC_Scope, 20, /*->23171*/ // 3 children in Scope
/* 23151*/            OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 23154*/            OPC_EmitMergeInputChains1_0,
/* 23155*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23158*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23161*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDs), 0|OPFL_Chain,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ARMPreload t2addrmode_so_reg:{ *:[i32] }:$addr, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 25
                      // Dst: (t2PLDs t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 23171*/          /*Scope*/ 19, /*->23191*/
/* 23172*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 23175*/            OPC_EmitMergeInputChains1_0,
/* 23176*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23179*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23182*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDi12), 0|OPFL_Chain,
                          4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ARMPreload t2addrmode_imm12:{ *:[i32] }:$addr, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 22
                      // Dst: (t2PLDi12 t2addrmode_imm12:{ *:[i32] }:$addr)
/* 23191*/          /*Scope*/ 19, /*->23211*/
/* 23192*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 23195*/            OPC_EmitMergeInputChains1_0,
/* 23196*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23199*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23202*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDi8), 0|OPFL_Chain,
                          4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ARMPreload t2addrmode_negimm8:{ *:[i32] }:$addr, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 22
                      // Dst: (t2PLDi8 t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 23211*/          0, /*End of Scope*/
/* 23212*/        0, /*End of Scope*/
/* 23213*/      0, /*End of Scope*/
/* 23214*/    /*Scope*/ 57, /*->23272*/
/* 23215*/      OPC_MoveChild1,
/* 23216*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 23219*/      OPC_RecordChild0, // #1 = $addr
/* 23220*/      OPC_MoveChild0,
/* 23221*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 23224*/      OPC_MoveParent,
/* 23225*/      OPC_MoveParent,
/* 23226*/      OPC_CheckChild2Integer, 0, 
/* 23228*/      OPC_CheckChild2Type, MVT::i32,
/* 23230*/      OPC_Scope, 19, /*->23251*/ // 2 children in Scope
/* 23232*/        OPC_CheckChild3Integer, 0, 
/* 23234*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23236*/        OPC_EmitMergeInputChains1_0,
/* 23237*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23240*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23243*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLDpci), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 3, 
                  // Src: (ARMPreload (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr), 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 19
                  // Dst: (t2PLDpci (tconstpool:{ *:[i32] }):$addr)
/* 23251*/      /*Scope*/ 19, /*->23271*/
/* 23252*/        OPC_CheckChild3Integer, 1, 
/* 23254*/        OPC_CheckPatternPredicate, 33, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 23256*/        OPC_EmitMergeInputChains1_0,
/* 23257*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23260*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23263*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2PLIpci), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 3, 
                  // Src: (ARMPreload (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr), 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 19
                  // Dst: (t2PLIpci (tconstpool:{ *:[i32] }):$addr)
/* 23271*/      0, /*End of Scope*/
/* 23272*/    0, /*End of Scope*/
/* 23273*/  /*SwitchOpcode*/ 116|128,2|128,1/*16756*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->40034
/* 23278*/    OPC_Scope, 50, /*->23330*/ // 155 children in Scope
/* 23280*/      OPC_CheckChild0Integer, 65|128,9/*1217*/, 
/* 23283*/      OPC_RecordChild1, // #0 = $Src
/* 23284*/      OPC_Scope, 21, /*->23307*/ // 2 children in Scope
/* 23286*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23288*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23291*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23297*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1217:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) - Complexity = 24
                  // Dst: (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 23307*/      /*Scope*/ 21, /*->23329*/
/* 23308*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23310*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23313*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23316*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23319*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1217:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm) - Complexity = 24
                  // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 23329*/      0, /*End of Scope*/
/* 23330*/    /*Scope*/ 53, /*->23384*/
/* 23331*/      OPC_CheckChild0Integer, 64|128,9/*1216*/, 
/* 23334*/      OPC_RecordChild1, // #0 = $Rn
/* 23335*/      OPC_RecordChild2, // #1 = $Rm
/* 23336*/      OPC_Scope, 22, /*->23360*/ // 2 children in Scope
/* 23338*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23340*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23343*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23346*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23349*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1216:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 24
                  // Dst: (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 23360*/      /*Scope*/ 22, /*->23383*/
/* 23361*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23363*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23366*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23369*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23372*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1216:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) - Complexity = 8
                  // Dst: (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
/* 23383*/      0, /*End of Scope*/
/* 23384*/    /*Scope*/ 28|128,1/*156*/, /*->23542*/
/* 23386*/      OPC_CheckChild0Integer, 110|128,8/*1134*/, 
/* 23389*/      OPC_Scope, 52, /*->23443*/ // 2 children in Scope
/* 23391*/        OPC_MoveChild1,
/* 23392*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 23395*/        OPC_CheckChild0Integer, 110|128,8/*1134*/, 
/* 23398*/        OPC_RecordChild1, // #0 = $Rm
/* 23399*/        OPC_CheckChild2Same, 0,
/* 23401*/        OPC_MoveParent,
/* 23402*/        OPC_RecordChild2, // #1 = $Rn
/* 23403*/        OPC_Scope, 18, /*->23423*/ // 2 children in Scope
/* 23405*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 23407*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23410*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23413*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Rn) - Complexity = 16
                    // Dst: (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 23423*/        /*Scope*/ 18, /*->23442*/
/* 23424*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23426*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23429*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23432*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Rn) - Complexity = 16
                    // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 23442*/        0, /*End of Scope*/
/* 23443*/      /*Scope*/ 97, /*->23541*/
/* 23444*/        OPC_RecordChild1, // #0 = $Rn
/* 23445*/        OPC_Scope, 51, /*->23498*/ // 2 children in Scope
/* 23447*/          OPC_MoveChild2,
/* 23448*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 23451*/          OPC_CheckChild0Integer, 110|128,8/*1134*/, 
/* 23454*/          OPC_RecordChild1, // #1 = $Rm
/* 23455*/          OPC_CheckChild2Same, 1,
/* 23457*/          OPC_MoveParent,
/* 23458*/          OPC_Scope, 18, /*->23478*/ // 2 children in Scope
/* 23460*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 23462*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23465*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23468*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                          MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 23478*/          /*Scope*/ 18, /*->23497*/
/* 23479*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23481*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23484*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23487*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                          MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 23497*/          0, /*End of Scope*/
/* 23498*/        /*Scope*/ 41, /*->23540*/
/* 23499*/          OPC_RecordChild2, // #1 = $Rn
/* 23500*/          OPC_Scope, 18, /*->23520*/ // 2 children in Scope
/* 23502*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 23504*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23507*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23510*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                      // Dst: (QADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 23520*/          /*Scope*/ 18, /*->23539*/
/* 23521*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23523*/            OPC_EmitInteger, MVT::i32, 14, 
/* 23526*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23529*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                      // Dst: (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 23539*/          0, /*End of Scope*/
/* 23540*/        0, /*End of Scope*/
/* 23541*/      0, /*End of Scope*/
/* 23542*/    /*Scope*/ 100, /*->23643*/
/* 23543*/      OPC_CheckChild0Integer, 115|128,8/*1139*/, 
/* 23546*/      OPC_RecordChild1, // #0 = $Rm
/* 23547*/      OPC_Scope, 51, /*->23600*/ // 2 children in Scope
/* 23549*/        OPC_MoveChild2,
/* 23550*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 23553*/        OPC_CheckChild0Integer, 110|128,8/*1134*/, 
/* 23556*/        OPC_RecordChild1, // #1 = $Rn
/* 23557*/        OPC_CheckChild2Same, 1,
/* 23559*/        OPC_MoveParent,
/* 23560*/        OPC_Scope, 18, /*->23580*/ // 2 children in Scope
/* 23562*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 23564*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23567*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23570*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QDSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1139:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) - Complexity = 16
                    // Dst: (QDSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 23580*/        /*Scope*/ 18, /*->23599*/
/* 23581*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23583*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23586*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23589*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1139:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1134:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) - Complexity = 16
                    // Dst: (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 23599*/        0, /*End of Scope*/
/* 23600*/      /*Scope*/ 41, /*->23642*/
/* 23601*/        OPC_RecordChild2, // #1 = $Rn
/* 23602*/        OPC_Scope, 18, /*->23622*/ // 2 children in Scope
/* 23604*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 23606*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23609*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23612*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1139:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                    // Dst: (QSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 23622*/        /*Scope*/ 18, /*->23641*/
/* 23623*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23625*/          OPC_EmitInteger, MVT::i32, 14, 
/* 23628*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23631*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1139:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                    // Dst: (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 23641*/        0, /*End of Scope*/
/* 23642*/      0, /*End of Scope*/
/* 23643*/    /*Scope*/ 70, /*->23714*/
/* 23644*/      OPC_CheckChild0Integer, 26|128,9/*1178*/, 
/* 23647*/      OPC_RecordChild1, // #0 = $a
/* 23648*/      OPC_RecordChild2, // #1 = $pos
/* 23649*/      OPC_MoveChild2,
/* 23650*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23653*/      OPC_CheckPredicate, 52, // Predicate_imm1_32
/* 23655*/      OPC_MoveParent,
/* 23656*/      OPC_Scope, 27, /*->23685*/ // 2 children in Scope
/* 23658*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23660*/        OPC_EmitConvertToTarget, 1,
/* 23662*/        OPC_EmitNodeXForm, 12, 2, // imm1_32_XFORM
/* 23665*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23668*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23671*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23674*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAT), 0,
                      MVT::i32, 5/*#Ops*/, 3, 0, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1178:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm1_32>><<X:imm1_32_XFORM>>:$pos) - Complexity = 12
                  // Dst: (SSAT:{ *:[i32] } (imm1_32_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_32>>:$pos), GPRnopc:{ *:[i32] }:$a, 0:{ *:[i32] })
/* 23685*/      /*Scope*/ 27, /*->23713*/
/* 23686*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23688*/        OPC_EmitConvertToTarget, 1,
/* 23690*/        OPC_EmitNodeXForm, 12, 2, // imm1_32_XFORM
/* 23693*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23696*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23699*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23702*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAT), 0,
                      MVT::i32, 5/*#Ops*/, 3, 0, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1178:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm1_32>><<X:imm1_32_XFORM>>:$pos) - Complexity = 12
                  // Dst: (t2SSAT:{ *:[i32] } (imm1_32_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_32>>:$pos), GPR:{ *:[i32] }:$a, 0:{ *:[i32] })
/* 23713*/      0, /*End of Scope*/
/* 23714*/    /*Scope*/ 64, /*->23779*/
/* 23715*/      OPC_CheckChild0Integer, 59|128,9/*1211*/, 
/* 23718*/      OPC_RecordChild1, // #0 = $a
/* 23719*/      OPC_RecordChild2, // #1 = $pos
/* 23720*/      OPC_MoveChild2,
/* 23721*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23724*/      OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 23726*/      OPC_MoveParent,
/* 23727*/      OPC_Scope, 24, /*->23753*/ // 2 children in Scope
/* 23729*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23731*/        OPC_EmitConvertToTarget, 1,
/* 23733*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23736*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23739*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23742*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAT), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1211:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) - Complexity = 12
                  // Dst: (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, 0:{ *:[i32] })
/* 23753*/      /*Scope*/ 24, /*->23778*/
/* 23754*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23756*/        OPC_EmitConvertToTarget, 1,
/* 23758*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23761*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23764*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23767*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAT), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1211:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) - Complexity = 12
                  // Dst: (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPR:{ *:[i32] }:$a, 0:{ *:[i32] })
/* 23778*/      0, /*End of Scope*/
/* 23779*/    /*Scope*/ 62, /*->23842*/
/* 23780*/      OPC_CheckChild0Integer, 27|128,9/*1179*/, 
/* 23783*/      OPC_RecordChild1, // #0 = $a
/* 23784*/      OPC_RecordChild2, // #1 = $pos
/* 23785*/      OPC_MoveChild2,
/* 23786*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23789*/      OPC_CheckPredicate, 54, // Predicate_imm1_16
/* 23791*/      OPC_MoveParent,
/* 23792*/      OPC_Scope, 23, /*->23817*/ // 2 children in Scope
/* 23794*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23796*/        OPC_EmitConvertToTarget, 1,
/* 23798*/        OPC_EmitNodeXForm, 13, 2, // imm1_16_XFORM
/* 23801*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23804*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23807*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAT16), 0,
                      MVT::i32, 4/*#Ops*/, 3, 0, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1179:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm1_16>><<X:imm1_16_XFORM>>:$pos) - Complexity = 12
                  // Dst: (SSAT16:{ *:[i32] } (imm1_16_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_16>>:$pos), GPRnopc:{ *:[i32] }:$a)
/* 23817*/      /*Scope*/ 23, /*->23841*/
/* 23818*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23820*/        OPC_EmitConvertToTarget, 1,
/* 23822*/        OPC_EmitNodeXForm, 13, 2, // imm1_16_XFORM
/* 23825*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23828*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23831*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAT16), 0,
                      MVT::i32, 4/*#Ops*/, 3, 0, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1179:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm1_16>><<X:imm1_16_XFORM>>:$pos) - Complexity = 12
                  // Dst: (t2SSAT16:{ *:[i32] } (imm1_16_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_16>>:$pos), GPR:{ *:[i32] }:$a)
/* 23841*/      0, /*End of Scope*/
/* 23842*/    /*Scope*/ 56, /*->23899*/
/* 23843*/      OPC_CheckChild0Integer, 60|128,9/*1212*/, 
/* 23846*/      OPC_RecordChild1, // #0 = $a
/* 23847*/      OPC_RecordChild2, // #1 = $pos
/* 23848*/      OPC_MoveChild2,
/* 23849*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23852*/      OPC_CheckPredicate, 51, // Predicate_imm0_15
/* 23854*/      OPC_MoveParent,
/* 23855*/      OPC_Scope, 20, /*->23877*/ // 2 children in Scope
/* 23857*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23859*/        OPC_EmitConvertToTarget, 1,
/* 23861*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23864*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23867*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAT16), 0,
                      MVT::i32, 4/*#Ops*/, 2, 0, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1212:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) - Complexity = 12
                  // Dst: (USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPRnopc:{ *:[i32] }:$a)
/* 23877*/      /*Scope*/ 20, /*->23898*/
/* 23878*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 23880*/        OPC_EmitConvertToTarget, 1,
/* 23882*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23885*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23888*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAT16), 0,
                      MVT::i32, 4/*#Ops*/, 2, 0, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1212:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) - Complexity = 12
                  // Dst: (t2USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPR:{ *:[i32] }:$a)
/* 23898*/      0, /*End of Scope*/
/* 23899*/    /*Scope*/ 50, /*->23950*/
/* 23900*/      OPC_CheckChild0Integer, 40|128,9/*1192*/, 
/* 23903*/      OPC_RecordChild1, // #0 = $Src
/* 23904*/      OPC_Scope, 21, /*->23927*/ // 2 children in Scope
/* 23906*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23908*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23911*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23914*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23917*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1192:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) - Complexity = 8
                  // Dst: (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 23927*/      /*Scope*/ 21, /*->23949*/
/* 23928*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23930*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23939*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1192:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                  // Dst: (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 23949*/      0, /*End of Scope*/
/* 23950*/    /*Scope*/ 53, /*->24004*/
/* 23951*/      OPC_CheckChild0Integer, 39|128,9/*1191*/, 
/* 23954*/      OPC_RecordChild1, // #0 = $LHS
/* 23955*/      OPC_RecordChild2, // #1 = $RHS
/* 23956*/      OPC_Scope, 22, /*->23980*/ // 2 children in Scope
/* 23958*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 23960*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23963*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23966*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23969*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1191:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) - Complexity = 8
                  // Dst: (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
/* 23980*/      /*Scope*/ 22, /*->24003*/
/* 23981*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 23983*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23986*/        OPC_EmitInteger, MVT::i32, 14, 
/* 23989*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23992*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1191:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 24003*/      0, /*End of Scope*/
/* 24004*/    /*Scope*/ 45, /*->24050*/
/* 24005*/      OPC_CheckChild0Integer, 112|128,8/*1136*/, 
/* 24008*/      OPC_RecordChild1, // #0 = $Rn
/* 24009*/      OPC_RecordChild2, // #1 = $Rm
/* 24010*/      OPC_Scope, 18, /*->24030*/ // 2 children in Scope
/* 24012*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24014*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24017*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24020*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1136:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24030*/      /*Scope*/ 18, /*->24049*/
/* 24031*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24033*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24036*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24039*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1136:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24049*/      0, /*End of Scope*/
/* 24050*/    /*Scope*/ 45, /*->24096*/
/* 24051*/      OPC_CheckChild0Integer, 111|128,8/*1135*/, 
/* 24054*/      OPC_RecordChild1, // #0 = $Rn
/* 24055*/      OPC_RecordChild2, // #1 = $Rm
/* 24056*/      OPC_Scope, 18, /*->24076*/ // 2 children in Scope
/* 24058*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24060*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24063*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24066*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1135:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24076*/      /*Scope*/ 18, /*->24095*/
/* 24077*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24079*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24082*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24085*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1135:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24095*/      0, /*End of Scope*/
/* 24096*/    /*Scope*/ 45, /*->24142*/
/* 24097*/      OPC_CheckChild0Integer, 116|128,8/*1140*/, 
/* 24100*/      OPC_RecordChild1, // #0 = $Rn
/* 24101*/      OPC_RecordChild2, // #1 = $Rm
/* 24102*/      OPC_Scope, 18, /*->24122*/ // 2 children in Scope
/* 24104*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24106*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24109*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24112*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1140:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24122*/      /*Scope*/ 18, /*->24141*/
/* 24123*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24125*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24128*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24131*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1140:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24141*/      0, /*End of Scope*/
/* 24142*/    /*Scope*/ 45, /*->24188*/
/* 24143*/      OPC_CheckChild0Integer, 117|128,8/*1141*/, 
/* 24146*/      OPC_RecordChild1, // #0 = $Rn
/* 24147*/      OPC_RecordChild2, // #1 = $Rm
/* 24148*/      OPC_Scope, 18, /*->24168*/ // 2 children in Scope
/* 24150*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24152*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24155*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24158*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1141:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24168*/      /*Scope*/ 18, /*->24187*/
/* 24169*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24171*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24174*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24177*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1141:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24187*/      0, /*End of Scope*/
/* 24188*/    /*Scope*/ 45, /*->24234*/
/* 24189*/      OPC_CheckChild0Integer, 51|128,9/*1203*/, 
/* 24192*/      OPC_RecordChild1, // #0 = $Rn
/* 24193*/      OPC_RecordChild2, // #1 = $Rm
/* 24194*/      OPC_Scope, 18, /*->24214*/ // 2 children in Scope
/* 24196*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24198*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24201*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24204*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1203:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24214*/      /*Scope*/ 18, /*->24233*/
/* 24215*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24217*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24220*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1203:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24233*/      0, /*End of Scope*/
/* 24234*/    /*Scope*/ 45, /*->24280*/
/* 24235*/      OPC_CheckChild0Integer, 52|128,9/*1204*/, 
/* 24238*/      OPC_RecordChild1, // #0 = $Rn
/* 24239*/      OPC_RecordChild2, // #1 = $Rm
/* 24240*/      OPC_Scope, 18, /*->24260*/ // 2 children in Scope
/* 24242*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24244*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24247*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24250*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1204:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24260*/      /*Scope*/ 18, /*->24279*/
/* 24261*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24263*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24266*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24269*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1204:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24279*/      0, /*End of Scope*/
/* 24280*/    /*Scope*/ 45, /*->24326*/
/* 24281*/      OPC_CheckChild0Integer, 55|128,9/*1207*/, 
/* 24284*/      OPC_RecordChild1, // #0 = $Rn
/* 24285*/      OPC_RecordChild2, // #1 = $Rm
/* 24286*/      OPC_Scope, 18, /*->24306*/ // 2 children in Scope
/* 24288*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24290*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24293*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24296*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1207:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24306*/      /*Scope*/ 18, /*->24325*/
/* 24307*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24309*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24312*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24315*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1207:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24325*/      0, /*End of Scope*/
/* 24326*/    /*Scope*/ 45, /*->24372*/
/* 24327*/      OPC_CheckChild0Integer, 56|128,9/*1208*/, 
/* 24330*/      OPC_RecordChild1, // #0 = $Rn
/* 24331*/      OPC_RecordChild2, // #1 = $Rm
/* 24332*/      OPC_Scope, 18, /*->24352*/ // 2 children in Scope
/* 24334*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24336*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24339*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24342*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1208:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24352*/      /*Scope*/ 18, /*->24371*/
/* 24353*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24355*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24358*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24361*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1208:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24371*/      0, /*End of Scope*/
/* 24372*/    /*Scope*/ 45, /*->24418*/
/* 24373*/      OPC_CheckChild0Integer, 113|128,8/*1137*/, 
/* 24376*/      OPC_RecordChild1, // #0 = $Rn
/* 24377*/      OPC_RecordChild2, // #1 = $Rm
/* 24378*/      OPC_Scope, 18, /*->24398*/ // 2 children in Scope
/* 24380*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24382*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24385*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24388*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1137:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24398*/      /*Scope*/ 18, /*->24417*/
/* 24399*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24401*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24404*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24407*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1137:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24417*/      0, /*End of Scope*/
/* 24418*/    /*Scope*/ 45, /*->24464*/
/* 24419*/      OPC_CheckChild0Integer, 114|128,8/*1138*/, 
/* 24422*/      OPC_RecordChild1, // #0 = $Rn
/* 24423*/      OPC_RecordChild2, // #1 = $Rm
/* 24424*/      OPC_Scope, 18, /*->24444*/ // 2 children in Scope
/* 24426*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24428*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24431*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24434*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1138:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24444*/      /*Scope*/ 18, /*->24463*/
/* 24445*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24447*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24450*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24453*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1138:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24463*/      0, /*End of Scope*/
/* 24464*/    /*Scope*/ 45, /*->24510*/
/* 24465*/      OPC_CheckChild0Integer, 53|128,9/*1205*/, 
/* 24468*/      OPC_RecordChild1, // #0 = $Rn
/* 24469*/      OPC_RecordChild2, // #1 = $Rm
/* 24470*/      OPC_Scope, 18, /*->24490*/ // 2 children in Scope
/* 24472*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24474*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24477*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24480*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1205:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24490*/      /*Scope*/ 18, /*->24509*/
/* 24491*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24493*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24496*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24499*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1205:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24509*/      0, /*End of Scope*/
/* 24510*/    /*Scope*/ 45, /*->24556*/
/* 24511*/      OPC_CheckChild0Integer, 54|128,9/*1206*/, 
/* 24514*/      OPC_RecordChild1, // #0 = $Rn
/* 24515*/      OPC_RecordChild2, // #1 = $Rm
/* 24516*/      OPC_Scope, 18, /*->24536*/ // 2 children in Scope
/* 24518*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24520*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24523*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24526*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1206:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24536*/      /*Scope*/ 18, /*->24555*/
/* 24537*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24539*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24542*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24545*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1206:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24555*/      0, /*End of Scope*/
/* 24556*/    /*Scope*/ 45, /*->24602*/
/* 24557*/      OPC_CheckChild0Integer, 125|128,8/*1149*/, 
/* 24560*/      OPC_RecordChild1, // #0 = $Rn
/* 24561*/      OPC_RecordChild2, // #1 = $Rm
/* 24562*/      OPC_Scope, 18, /*->24582*/ // 2 children in Scope
/* 24564*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24566*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24569*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24572*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1149:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24582*/      /*Scope*/ 18, /*->24601*/
/* 24583*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24585*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24588*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24591*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1149:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24601*/      0, /*End of Scope*/
/* 24602*/    /*Scope*/ 45, /*->24648*/
/* 24603*/      OPC_CheckChild0Integer, 123|128,8/*1147*/, 
/* 24606*/      OPC_RecordChild1, // #0 = $Rn
/* 24607*/      OPC_RecordChild2, // #1 = $Rm
/* 24608*/      OPC_Scope, 18, /*->24628*/ // 2 children in Scope
/* 24610*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24612*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24615*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24618*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1147:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24628*/      /*Scope*/ 18, /*->24647*/
/* 24629*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24631*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24634*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24637*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1147:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24647*/      0, /*End of Scope*/
/* 24648*/    /*Scope*/ 45, /*->24694*/
/* 24649*/      OPC_CheckChild0Integer, 124|128,8/*1148*/, 
/* 24652*/      OPC_RecordChild1, // #0 = $Rn
/* 24653*/      OPC_RecordChild2, // #1 = $Rm
/* 24654*/      OPC_Scope, 18, /*->24674*/ // 2 children in Scope
/* 24656*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24658*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24661*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24664*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1148:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24674*/      /*Scope*/ 18, /*->24693*/
/* 24675*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24677*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24680*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24683*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1148:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24693*/      0, /*End of Scope*/
/* 24694*/    /*Scope*/ 45, /*->24740*/
/* 24695*/      OPC_CheckChild0Integer, 126|128,8/*1150*/, 
/* 24698*/      OPC_RecordChild1, // #0 = $Rn
/* 24699*/      OPC_RecordChild2, // #1 = $Rm
/* 24700*/      OPC_Scope, 18, /*->24720*/ // 2 children in Scope
/* 24702*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24704*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24707*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24710*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1150:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24720*/      /*Scope*/ 18, /*->24739*/
/* 24721*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24723*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24726*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24729*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1150:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24739*/      0, /*End of Scope*/
/* 24740*/    /*Scope*/ 45, /*->24786*/
/* 24741*/      OPC_CheckChild0Integer, 127|128,8/*1151*/, 
/* 24744*/      OPC_RecordChild1, // #0 = $Rn
/* 24745*/      OPC_RecordChild2, // #1 = $Rm
/* 24746*/      OPC_Scope, 18, /*->24766*/ // 2 children in Scope
/* 24748*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24750*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24753*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24756*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1151:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24766*/      /*Scope*/ 18, /*->24785*/
/* 24767*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24769*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24772*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24775*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1151:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24785*/      0, /*End of Scope*/
/* 24786*/    /*Scope*/ 45, /*->24832*/
/* 24787*/      OPC_CheckChild0Integer, 0|128,9/*1152*/, 
/* 24790*/      OPC_RecordChild1, // #0 = $Rn
/* 24791*/      OPC_RecordChild2, // #1 = $Rm
/* 24792*/      OPC_Scope, 18, /*->24812*/ // 2 children in Scope
/* 24794*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24796*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24799*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24802*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1152:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24812*/      /*Scope*/ 18, /*->24831*/
/* 24813*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24815*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24818*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24821*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1152:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24831*/      0, /*End of Scope*/
/* 24832*/    /*Scope*/ 45, /*->24878*/
/* 24833*/      OPC_CheckChild0Integer, 46|128,9/*1198*/, 
/* 24836*/      OPC_RecordChild1, // #0 = $Rn
/* 24837*/      OPC_RecordChild2, // #1 = $Rm
/* 24838*/      OPC_Scope, 18, /*->24858*/ // 2 children in Scope
/* 24840*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24842*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24845*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24848*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1198:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24858*/      /*Scope*/ 18, /*->24877*/
/* 24859*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24861*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24864*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24867*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1198:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24877*/      0, /*End of Scope*/
/* 24878*/    /*Scope*/ 45, /*->24924*/
/* 24879*/      OPC_CheckChild0Integer, 44|128,9/*1196*/, 
/* 24882*/      OPC_RecordChild1, // #0 = $Rn
/* 24883*/      OPC_RecordChild2, // #1 = $Rm
/* 24884*/      OPC_Scope, 18, /*->24904*/ // 2 children in Scope
/* 24886*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24888*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24891*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24894*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1196:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24904*/      /*Scope*/ 18, /*->24923*/
/* 24905*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24907*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24910*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24913*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1196:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24923*/      0, /*End of Scope*/
/* 24924*/    /*Scope*/ 45, /*->24970*/
/* 24925*/      OPC_CheckChild0Integer, 45|128,9/*1197*/, 
/* 24928*/      OPC_RecordChild1, // #0 = $Rn
/* 24929*/      OPC_RecordChild2, // #1 = $Rm
/* 24930*/      OPC_Scope, 18, /*->24950*/ // 2 children in Scope
/* 24932*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24934*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24937*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24940*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1197:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24950*/      /*Scope*/ 18, /*->24969*/
/* 24951*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24953*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24956*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24959*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1197:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 24969*/      0, /*End of Scope*/
/* 24970*/    /*Scope*/ 45, /*->25016*/
/* 24971*/      OPC_CheckChild0Integer, 47|128,9/*1199*/, 
/* 24974*/      OPC_RecordChild1, // #0 = $Rn
/* 24975*/      OPC_RecordChild2, // #1 = $Rm
/* 24976*/      OPC_Scope, 18, /*->24996*/ // 2 children in Scope
/* 24978*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 24980*/        OPC_EmitInteger, MVT::i32, 14, 
/* 24983*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 24986*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1199:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 24996*/      /*Scope*/ 18, /*->25015*/
/* 24997*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 24999*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25002*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25005*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1199:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25015*/      0, /*End of Scope*/
/* 25016*/    /*Scope*/ 45, /*->25062*/
/* 25017*/      OPC_CheckChild0Integer, 48|128,9/*1200*/, 
/* 25020*/      OPC_RecordChild1, // #0 = $Rn
/* 25021*/      OPC_RecordChild2, // #1 = $Rm
/* 25022*/      OPC_Scope, 18, /*->25042*/ // 2 children in Scope
/* 25024*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 25026*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25029*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25032*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1200:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25042*/      /*Scope*/ 18, /*->25061*/
/* 25043*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25045*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25048*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25051*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1200:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25061*/      0, /*End of Scope*/
/* 25062*/    /*Scope*/ 45, /*->25108*/
/* 25063*/      OPC_CheckChild0Integer, 49|128,9/*1201*/, 
/* 25066*/      OPC_RecordChild1, // #0 = $Rn
/* 25067*/      OPC_RecordChild2, // #1 = $Rm
/* 25068*/      OPC_Scope, 18, /*->25088*/ // 2 children in Scope
/* 25070*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 25072*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25075*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25078*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1201:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25088*/      /*Scope*/ 18, /*->25107*/
/* 25089*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25091*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25094*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25097*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1201:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25107*/      0, /*End of Scope*/
/* 25108*/    /*Scope*/ 45, /*->25154*/
/* 25109*/      OPC_CheckChild0Integer, 57|128,9/*1209*/, 
/* 25112*/      OPC_RecordChild1, // #0 = $Rn
/* 25113*/      OPC_RecordChild2, // #1 = $Rm
/* 25114*/      OPC_Scope, 18, /*->25134*/ // 2 children in Scope
/* 25116*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25118*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25121*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25124*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1209:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USAD8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 25134*/      /*Scope*/ 18, /*->25153*/
/* 25135*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25137*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25140*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25143*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1209:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USAD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25153*/      0, /*End of Scope*/
/* 25154*/    /*Scope*/ 48, /*->25203*/
/* 25155*/      OPC_CheckChild0Integer, 58|128,9/*1210*/, 
/* 25158*/      OPC_RecordChild1, // #0 = $Rn
/* 25159*/      OPC_RecordChild2, // #1 = $Rm
/* 25160*/      OPC_RecordChild3, // #2 = $Ra
/* 25161*/      OPC_Scope, 19, /*->25182*/ // 2 children in Scope
/* 25163*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25165*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25168*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25171*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USADA8), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1210:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (USADA8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 25182*/      /*Scope*/ 19, /*->25202*/
/* 25183*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25185*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25188*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25191*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USADA8), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1210:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2USADA8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 25202*/      0, /*End of Scope*/
/* 25203*/    /*Scope*/ 48, /*->25252*/
/* 25204*/      OPC_CheckChild0Integer, 3|128,9/*1155*/, 
/* 25207*/      OPC_RecordChild1, // #0 = $Rn
/* 25208*/      OPC_RecordChild2, // #1 = $Rm
/* 25209*/      OPC_RecordChild3, // #2 = $Ra
/* 25210*/      OPC_Scope, 19, /*->25231*/ // 2 children in Scope
/* 25212*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25214*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25217*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25220*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1155:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 25231*/      /*Scope*/ 19, /*->25251*/
/* 25232*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25234*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25237*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25240*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1155:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 25251*/      0, /*End of Scope*/
/* 25252*/    /*Scope*/ 48, /*->25301*/
/* 25253*/      OPC_CheckChild0Integer, 4|128,9/*1156*/, 
/* 25256*/      OPC_RecordChild1, // #0 = $Rn
/* 25257*/      OPC_RecordChild2, // #1 = $Rm
/* 25258*/      OPC_RecordChild3, // #2 = $Ra
/* 25259*/      OPC_Scope, 19, /*->25280*/ // 2 children in Scope
/* 25261*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25263*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25266*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25269*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLADX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1156:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 25280*/      /*Scope*/ 19, /*->25300*/
/* 25281*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25283*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25286*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25289*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLADX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1156:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 25300*/      0, /*End of Scope*/
/* 25301*/    /*Scope*/ 48, /*->25350*/
/* 25302*/      OPC_CheckChild0Integer, 11|128,9/*1163*/, 
/* 25305*/      OPC_RecordChild1, // #0 = $Rn
/* 25306*/      OPC_RecordChild2, // #1 = $Rm
/* 25307*/      OPC_RecordChild3, // #2 = $Ra
/* 25308*/      OPC_Scope, 19, /*->25329*/ // 2 children in Scope
/* 25310*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLSD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1163:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 25329*/      /*Scope*/ 19, /*->25349*/
/* 25330*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25332*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25335*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25338*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLSD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1163:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 25349*/      0, /*End of Scope*/
/* 25350*/    /*Scope*/ 48, /*->25399*/
/* 25351*/      OPC_CheckChild0Integer, 12|128,9/*1164*/, 
/* 25354*/      OPC_RecordChild1, // #0 = $Rn
/* 25355*/      OPC_RecordChild2, // #1 = $Rm
/* 25356*/      OPC_RecordChild3, // #2 = $Ra
/* 25357*/      OPC_Scope, 19, /*->25378*/ // 2 children in Scope
/* 25359*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25361*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25364*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25367*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLSDX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1164:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 25378*/      /*Scope*/ 19, /*->25398*/
/* 25379*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25381*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25387*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLSDX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1164:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 25398*/      0, /*End of Scope*/
/* 25399*/    /*Scope*/ 45, /*->25445*/
/* 25400*/      OPC_CheckChild0Integer, 15|128,9/*1167*/, 
/* 25403*/      OPC_RecordChild1, // #0 = $Rn
/* 25404*/      OPC_RecordChild2, // #1 = $Rm
/* 25405*/      OPC_Scope, 18, /*->25425*/ // 2 children in Scope
/* 25407*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25409*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25412*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25415*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUAD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1167:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25425*/      /*Scope*/ 18, /*->25444*/
/* 25426*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25428*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25431*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25434*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUAD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1167:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25444*/      0, /*End of Scope*/
/* 25445*/    /*Scope*/ 45, /*->25491*/
/* 25446*/      OPC_CheckChild0Integer, 16|128,9/*1168*/, 
/* 25449*/      OPC_RecordChild1, // #0 = $Rn
/* 25450*/      OPC_RecordChild2, // #1 = $Rm
/* 25451*/      OPC_Scope, 18, /*->25471*/ // 2 children in Scope
/* 25453*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25455*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25458*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25461*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUADX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1168:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25471*/      /*Scope*/ 18, /*->25490*/
/* 25472*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25474*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25477*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25480*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUADX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1168:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25490*/      0, /*End of Scope*/
/* 25491*/    /*Scope*/ 45, /*->25537*/
/* 25492*/      OPC_CheckChild0Integer, 23|128,9/*1175*/, 
/* 25495*/      OPC_RecordChild1, // #0 = $Rn
/* 25496*/      OPC_RecordChild2, // #1 = $Rm
/* 25497*/      OPC_Scope, 18, /*->25517*/ // 2 children in Scope
/* 25499*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25501*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25507*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUSD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1175:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25517*/      /*Scope*/ 18, /*->25536*/
/* 25518*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25520*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25523*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25526*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUSD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1175:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25536*/      0, /*End of Scope*/
/* 25537*/    /*Scope*/ 45, /*->25583*/
/* 25538*/      OPC_CheckChild0Integer, 24|128,9/*1176*/, 
/* 25541*/      OPC_RecordChild1, // #0 = $Rn
/* 25542*/      OPC_RecordChild2, // #1 = $Rm
/* 25543*/      OPC_Scope, 18, /*->25563*/ // 2 children in Scope
/* 25545*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 25547*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25550*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25553*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUSDX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1176:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25563*/      /*Scope*/ 18, /*->25582*/
/* 25564*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25566*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25569*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25572*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUSDX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1176:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25582*/      0, /*End of Scope*/
/* 25583*/    /*Scope*/ 29, /*->25613*/
/* 25584*/      OPC_CheckChild0Integer, 76|128,7/*972*/, 
/* 25587*/      OPC_RecordChild1, // #0 = $Rn
/* 25588*/      OPC_RecordChild2, // #1 = $Rm
/* 25589*/      OPC_Scope, 10, /*->25601*/ // 2 children in Scope
/* 25591*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25593*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32B), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 972:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32B:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25601*/      /*Scope*/ 10, /*->25612*/
/* 25602*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25604*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32B), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 972:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32B:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25612*/      0, /*End of Scope*/
/* 25613*/    /*Scope*/ 29, /*->25643*/
/* 25614*/      OPC_CheckChild0Integer, 77|128,7/*973*/, 
/* 25617*/      OPC_RecordChild1, // #0 = $Rn
/* 25618*/      OPC_RecordChild2, // #1 = $Rm
/* 25619*/      OPC_Scope, 10, /*->25631*/ // 2 children in Scope
/* 25621*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25623*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CB), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 973:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25631*/      /*Scope*/ 10, /*->25642*/
/* 25632*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25634*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CB), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 973:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25642*/      0, /*End of Scope*/
/* 25643*/    /*Scope*/ 29, /*->25673*/
/* 25644*/      OPC_CheckChild0Integer, 80|128,7/*976*/, 
/* 25647*/      OPC_RecordChild1, // #0 = $Rn
/* 25648*/      OPC_RecordChild2, // #1 = $Rm
/* 25649*/      OPC_Scope, 10, /*->25661*/ // 2 children in Scope
/* 25651*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25653*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32H), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 976:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32H:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25661*/      /*Scope*/ 10, /*->25672*/
/* 25662*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25664*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32H), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 976:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32H:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25672*/      0, /*End of Scope*/
/* 25673*/    /*Scope*/ 29, /*->25703*/
/* 25674*/      OPC_CheckChild0Integer, 78|128,7/*974*/, 
/* 25677*/      OPC_RecordChild1, // #0 = $Rn
/* 25678*/      OPC_RecordChild2, // #1 = $Rm
/* 25679*/      OPC_Scope, 10, /*->25691*/ // 2 children in Scope
/* 25681*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25683*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CH), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 974:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25691*/      /*Scope*/ 10, /*->25702*/
/* 25692*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25694*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CH), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 974:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25702*/      0, /*End of Scope*/
/* 25703*/    /*Scope*/ 29, /*->25733*/
/* 25704*/      OPC_CheckChild0Integer, 81|128,7/*977*/, 
/* 25707*/      OPC_RecordChild1, // #0 = $Rn
/* 25708*/      OPC_RecordChild2, // #1 = $Rm
/* 25709*/      OPC_Scope, 10, /*->25721*/ // 2 children in Scope
/* 25711*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25713*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32W), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 977:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32W:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25721*/      /*Scope*/ 10, /*->25732*/
/* 25722*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25724*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32W), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 977:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32W:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25732*/      0, /*End of Scope*/
/* 25733*/    /*Scope*/ 29, /*->25763*/
/* 25734*/      OPC_CheckChild0Integer, 79|128,7/*975*/, 
/* 25737*/      OPC_RecordChild1, // #0 = $Rn
/* 25738*/      OPC_RecordChild2, // #1 = $Rm
/* 25739*/      OPC_Scope, 10, /*->25751*/ // 2 children in Scope
/* 25741*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 25743*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 975:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CW:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 25751*/      /*Scope*/ 10, /*->25762*/
/* 25752*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 25754*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 975:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CW:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25762*/      0, /*End of Scope*/
/* 25763*/    /*Scope*/ 45, /*->25809*/
/* 25764*/      OPC_CheckChild0Integer, 17|128,9/*1169*/, 
/* 25767*/      OPC_RecordChild1, // #0 = $a
/* 25768*/      OPC_RecordChild2, // #1 = $b
/* 25769*/      OPC_Scope, 18, /*->25789*/ // 2 children in Scope
/* 25771*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 25773*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25779*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1169:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 25789*/      /*Scope*/ 18, /*->25808*/
/* 25790*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25792*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25795*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25798*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1169:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25808*/      0, /*End of Scope*/
/* 25809*/    /*Scope*/ 45, /*->25855*/
/* 25810*/      OPC_CheckChild0Integer, 18|128,9/*1170*/, 
/* 25813*/      OPC_RecordChild1, // #0 = $a
/* 25814*/      OPC_RecordChild2, // #1 = $b
/* 25815*/      OPC_Scope, 18, /*->25835*/ // 2 children in Scope
/* 25817*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 25819*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25822*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25825*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1170:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 25835*/      /*Scope*/ 18, /*->25854*/
/* 25836*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25838*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25841*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25844*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1170:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25854*/      0, /*End of Scope*/
/* 25855*/    /*Scope*/ 45, /*->25901*/
/* 25856*/      OPC_CheckChild0Integer, 19|128,9/*1171*/, 
/* 25859*/      OPC_RecordChild1, // #0 = $a
/* 25860*/      OPC_RecordChild2, // #1 = $b
/* 25861*/      OPC_Scope, 18, /*->25881*/ // 2 children in Scope
/* 25863*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 25865*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25868*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25871*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1171:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 25881*/      /*Scope*/ 18, /*->25900*/
/* 25882*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25884*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25887*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25890*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1171:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25900*/      0, /*End of Scope*/
/* 25901*/    /*Scope*/ 45, /*->25947*/
/* 25902*/      OPC_CheckChild0Integer, 20|128,9/*1172*/, 
/* 25905*/      OPC_RecordChild1, // #0 = $a
/* 25906*/      OPC_RecordChild2, // #1 = $b
/* 25907*/      OPC_Scope, 18, /*->25927*/ // 2 children in Scope
/* 25909*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 25911*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25914*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25917*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 25927*/      /*Scope*/ 18, /*->25946*/
/* 25928*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25930*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25933*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25936*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25946*/      0, /*End of Scope*/
/* 25947*/    /*Scope*/ 45, /*->25993*/
/* 25948*/      OPC_CheckChild0Integer, 21|128,9/*1173*/, 
/* 25951*/      OPC_RecordChild1, // #0 = $a
/* 25952*/      OPC_RecordChild2, // #1 = $b
/* 25953*/      OPC_Scope, 18, /*->25973*/ // 2 children in Scope
/* 25955*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 25957*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25960*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25963*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1173:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 25973*/      /*Scope*/ 18, /*->25992*/
/* 25974*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 25976*/        OPC_EmitInteger, MVT::i32, 14, 
/* 25979*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 25982*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1173:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 25992*/      0, /*End of Scope*/
/* 25993*/    /*Scope*/ 45, /*->26039*/
/* 25994*/      OPC_CheckChild0Integer, 22|128,9/*1174*/, 
/* 25997*/      OPC_RecordChild1, // #0 = $a
/* 25998*/      OPC_RecordChild2, // #1 = $b
/* 25999*/      OPC_Scope, 18, /*->26019*/ // 2 children in Scope
/* 26001*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26003*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26006*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26009*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1174:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 26019*/      /*Scope*/ 18, /*->26038*/
/* 26020*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26022*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26025*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26028*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1174:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 26038*/      0, /*End of Scope*/
/* 26039*/    /*Scope*/ 48, /*->26088*/
/* 26040*/      OPC_CheckChild0Integer, 1|128,9/*1153*/, 
/* 26043*/      OPC_RecordChild1, // #0 = $a
/* 26044*/      OPC_RecordChild2, // #1 = $b
/* 26045*/      OPC_RecordChild3, // #2 = $acc
/* 26046*/      OPC_Scope, 19, /*->26067*/ // 2 children in Scope
/* 26048*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26050*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26053*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26056*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1153:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26067*/      /*Scope*/ 19, /*->26087*/
/* 26068*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26070*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26073*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26076*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1153:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26087*/      0, /*End of Scope*/
/* 26088*/    /*Scope*/ 48, /*->26137*/
/* 26089*/      OPC_CheckChild0Integer, 2|128,9/*1154*/, 
/* 26092*/      OPC_RecordChild1, // #0 = $a
/* 26093*/      OPC_RecordChild2, // #1 = $b
/* 26094*/      OPC_RecordChild3, // #2 = $acc
/* 26095*/      OPC_Scope, 19, /*->26116*/ // 2 children in Scope
/* 26097*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26099*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26102*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26105*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1154:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26116*/      /*Scope*/ 19, /*->26136*/
/* 26117*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26119*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26122*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26125*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1154:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26136*/      0, /*End of Scope*/
/* 26137*/    /*Scope*/ 48, /*->26186*/
/* 26138*/      OPC_CheckChild0Integer, 7|128,9/*1159*/, 
/* 26141*/      OPC_RecordChild1, // #0 = $a
/* 26142*/      OPC_RecordChild2, // #1 = $b
/* 26143*/      OPC_RecordChild3, // #2 = $acc
/* 26144*/      OPC_Scope, 19, /*->26165*/ // 2 children in Scope
/* 26146*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26148*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26154*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1159:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26165*/      /*Scope*/ 19, /*->26185*/
/* 26166*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26168*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26171*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26174*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1159:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26185*/      0, /*End of Scope*/
/* 26186*/    /*Scope*/ 48, /*->26235*/
/* 26187*/      OPC_CheckChild0Integer, 8|128,9/*1160*/, 
/* 26190*/      OPC_RecordChild1, // #0 = $a
/* 26191*/      OPC_RecordChild2, // #1 = $b
/* 26192*/      OPC_RecordChild3, // #2 = $acc
/* 26193*/      OPC_Scope, 19, /*->26214*/ // 2 children in Scope
/* 26195*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26197*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1160:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26214*/      /*Scope*/ 19, /*->26234*/
/* 26215*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26217*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26220*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1160:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26234*/      0, /*End of Scope*/
/* 26235*/    /*Scope*/ 48, /*->26284*/
/* 26236*/      OPC_CheckChild0Integer, 9|128,9/*1161*/, 
/* 26239*/      OPC_RecordChild1, // #0 = $a
/* 26240*/      OPC_RecordChild2, // #1 = $b
/* 26241*/      OPC_RecordChild3, // #2 = $acc
/* 26242*/      OPC_Scope, 19, /*->26263*/ // 2 children in Scope
/* 26244*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26246*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26249*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26252*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1161:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26263*/      /*Scope*/ 19, /*->26283*/
/* 26264*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26266*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26269*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26272*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1161:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26283*/      0, /*End of Scope*/
/* 26284*/    /*Scope*/ 48, /*->26333*/
/* 26285*/      OPC_CheckChild0Integer, 10|128,9/*1162*/, 
/* 26288*/      OPC_RecordChild1, // #0 = $a
/* 26289*/      OPC_RecordChild2, // #1 = $b
/* 26290*/      OPC_RecordChild3, // #2 = $acc
/* 26291*/      OPC_Scope, 19, /*->26312*/ // 2 children in Scope
/* 26293*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 26295*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26298*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26301*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1162:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26312*/      /*Scope*/ 19, /*->26332*/
/* 26313*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 26315*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26318*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26321*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1162:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 26332*/      0, /*End of Scope*/
/* 26333*/    /*Scope*/ 59, /*->26393*/
/* 26334*/      OPC_CheckChild0Integer, 110|128,7/*1006*/, 
/* 26337*/      OPC_RecordChild1, // #0 = $Rn
/* 26338*/      OPC_EmitInteger, MVT::i64, 0, 
/* 26341*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 26344*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 26352*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 26355*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 26364*/      OPC_EmitNode1, TARGET_VAL(ARM::SHA1H), 0,
                    MVT::v16i8, 1/*#Ops*/, 5,  // Results = #6
/* 26371*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 26374*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7,  // Results = #8
/* 26382*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 26385*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::i32, 2/*#Ops*/, 8, 9, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1006:{ *:[iPTR] }, i32:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f32] } (SHA1H:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$Rn, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] }), GPR:{ *:[i32] })
/* 26393*/    /*Scope*/ 84, /*->26478*/
/* 26394*/      OPC_CheckChild0Integer, 79|128,8/*1103*/, 
/* 26397*/      OPC_RecordChild1, // #0 = $Sm
/* 26398*/      OPC_SwitchType /*6 cases */, 11, MVT::f32,// ->26412
/* 26401*/        OPC_CheckChild1Type, MVT::f32,
/* 26403*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 26405*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1103:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VRINTNS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 26412*/      /*SwitchType*/ 11, MVT::f64,// ->26425
/* 26414*/        OPC_CheckChild1Type, MVT::f64,
/* 26416*/        OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 26418*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTND), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 1103:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VRINTND:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 26425*/      /*SwitchType*/ 11, MVT::v2f32,// ->26438
/* 26427*/        OPC_CheckChild1Type, MVT::v2f32,
/* 26429*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 26431*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1103:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 26438*/      /*SwitchType*/ 11, MVT::v4f32,// ->26451
/* 26440*/        OPC_CheckChild1Type, MVT::v4f32,
/* 26442*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 26444*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1103:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 26451*/      /*SwitchType*/ 11, MVT::v4f16,// ->26464
/* 26453*/        OPC_CheckChild1Type, MVT::v4f16,
/* 26455*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 26457*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1103:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 26464*/      /*SwitchType*/ 11, MVT::v8f16,// ->26477
/* 26466*/        OPC_CheckChild1Type, MVT::v8f16,
/* 26468*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 26470*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1103:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 26477*/      0, // EndSwitchType
/* 26478*/    /*Scope*/ 46, /*->26525*/
/* 26479*/      OPC_CheckChild0Integer, 66|128,9/*1218*/, 
/* 26482*/      OPC_RecordChild1, // #0 = $Dm
/* 26483*/      OPC_Scope, 19, /*->26504*/ // 2 children in Scope
/* 26485*/        OPC_CheckChild1Type, MVT::f64,
/* 26487*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 26489*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26492*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26495*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOSIRD), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1218:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VTOSIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
/* 26504*/      /*Scope*/ 19, /*->26524*/
/* 26505*/        OPC_CheckChild1Type, MVT::f32,
/* 26507*/        OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 26509*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26512*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26515*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOSIRS), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1218:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VTOSIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 26524*/      0, /*End of Scope*/
/* 26525*/    /*Scope*/ 46, /*->26572*/
/* 26526*/      OPC_CheckChild0Integer, 67|128,9/*1219*/, 
/* 26529*/      OPC_RecordChild1, // #0 = $Dm
/* 26530*/      OPC_Scope, 19, /*->26551*/ // 2 children in Scope
/* 26532*/        OPC_CheckChild1Type, MVT::f64,
/* 26534*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 26536*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26539*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26542*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOUIRD), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1219:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VTOUIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
/* 26551*/      /*Scope*/ 19, /*->26571*/
/* 26552*/        OPC_CheckChild1Type, MVT::f32,
/* 26554*/        OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 26556*/        OPC_EmitInteger, MVT::i32, 14, 
/* 26559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26562*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOUIRS), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1219:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VTOUIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 26571*/      0, /*End of Scope*/
/* 26572*/    /*Scope*/ 58|128,16/*2106*/, /*->28680*/
/* 26574*/      OPC_CheckChild0Integer, 50|128,8/*1074*/, 
/* 26577*/      OPC_Scope, 17|128,2/*273*/, /*->26853*/ // 15 children in Scope
/* 26580*/        OPC_RecordChild1, // #0 = $src1
/* 26581*/        OPC_Scope, 105, /*->26688*/ // 4 children in Scope
/* 26583*/          OPC_CheckChild1Type, MVT::v4i16,
/* 26585*/          OPC_MoveChild2,
/* 26586*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26589*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 26592*/          OPC_Scope, 46, /*->26640*/ // 2 children in Scope
/* 26594*/            OPC_RecordChild1, // #1 = $Vn
/* 26595*/            OPC_CheckChild1Type, MVT::v4i16,
/* 26597*/            OPC_MoveChild2,
/* 26598*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26601*/            OPC_RecordChild0, // #2 = $Vm
/* 26602*/            OPC_CheckChild0Type, MVT::v4i16,
/* 26604*/            OPC_RecordChild1, // #3 = $lane
/* 26605*/            OPC_MoveChild1,
/* 26606*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26609*/            OPC_MoveParent,
/* 26610*/            OPC_CheckType, MVT::v4i16,
/* 26612*/            OPC_MoveParent,
/* 26613*/            OPC_CheckType, MVT::v4i16,
/* 26615*/            OPC_MoveParent,
/* 26616*/            OPC_CheckType, MVT::v4i16,
/* 26618*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 26620*/            OPC_EmitConvertToTarget, 3,
/* 26622*/            OPC_EmitInteger, MVT::i32, 14, 
/* 26625*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26628*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26640*/          /*Scope*/ 46, /*->26687*/
/* 26641*/            OPC_MoveChild1,
/* 26642*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26645*/            OPC_RecordChild0, // #1 = $Vm
/* 26646*/            OPC_CheckChild0Type, MVT::v4i16,
/* 26648*/            OPC_RecordChild1, // #2 = $lane
/* 26649*/            OPC_MoveChild1,
/* 26650*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26653*/            OPC_MoveParent,
/* 26654*/            OPC_CheckType, MVT::v4i16,
/* 26656*/            OPC_MoveParent,
/* 26657*/            OPC_RecordChild2, // #3 = $Vn
/* 26658*/            OPC_CheckChild2Type, MVT::v4i16,
/* 26660*/            OPC_CheckType, MVT::v4i16,
/* 26662*/            OPC_MoveParent,
/* 26663*/            OPC_CheckType, MVT::v4i16,
/* 26665*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 26667*/            OPC_EmitConvertToTarget, 2,
/* 26669*/            OPC_EmitInteger, MVT::i32, 14, 
/* 26672*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26675*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 22
                      // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26687*/          0, /*End of Scope*/
/* 26688*/        /*Scope*/ 55, /*->26744*/
/* 26689*/          OPC_CheckChild1Type, MVT::v2i32,
/* 26691*/          OPC_MoveChild2,
/* 26692*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26695*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 26698*/          OPC_RecordChild1, // #1 = $Vn
/* 26699*/          OPC_CheckChild1Type, MVT::v2i32,
/* 26701*/          OPC_MoveChild2,
/* 26702*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26705*/          OPC_RecordChild0, // #2 = $Vm
/* 26706*/          OPC_CheckChild0Type, MVT::v2i32,
/* 26708*/          OPC_RecordChild1, // #3 = $lane
/* 26709*/          OPC_MoveChild1,
/* 26710*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26713*/          OPC_MoveParent,
/* 26714*/          OPC_CheckType, MVT::v2i32,
/* 26716*/          OPC_MoveParent,
/* 26717*/          OPC_CheckType, MVT::v2i32,
/* 26719*/          OPC_MoveParent,
/* 26720*/          OPC_CheckType, MVT::v2i32,
/* 26722*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 26724*/          OPC_EmitConvertToTarget, 3,
/* 26726*/          OPC_EmitInteger, MVT::i32, 14, 
/* 26729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26732*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                        MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                    // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26744*/        /*Scope*/ 53, /*->26798*/
/* 26745*/          OPC_CheckChild1Type, MVT::v4i32,
/* 26747*/          OPC_MoveChild2,
/* 26748*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26751*/          OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 26754*/          OPC_RecordChild1, // #1 = $Vn
/* 26755*/          OPC_CheckChild1Type, MVT::v4i16,
/* 26757*/          OPC_MoveChild2,
/* 26758*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26761*/          OPC_RecordChild0, // #2 = $Vm
/* 26762*/          OPC_CheckChild0Type, MVT::v4i16,
/* 26764*/          OPC_RecordChild1, // #3 = $lane
/* 26765*/          OPC_MoveChild1,
/* 26766*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26769*/          OPC_MoveParent,
/* 26770*/          OPC_CheckType, MVT::v4i16,
/* 26772*/          OPC_MoveParent,
/* 26773*/          OPC_CheckType, MVT::v4i32,
/* 26775*/          OPC_MoveParent,
/* 26776*/          OPC_CheckType, MVT::v4i32,
/* 26778*/          OPC_EmitConvertToTarget, 3,
/* 26780*/          OPC_EmitInteger, MVT::i32, 14, 
/* 26783*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26786*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                    // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26798*/        /*Scope*/ 53, /*->26852*/
/* 26799*/          OPC_CheckChild1Type, MVT::v2i64,
/* 26801*/          OPC_MoveChild2,
/* 26802*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26805*/          OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 26808*/          OPC_RecordChild1, // #1 = $Vn
/* 26809*/          OPC_CheckChild1Type, MVT::v2i32,
/* 26811*/          OPC_MoveChild2,
/* 26812*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26815*/          OPC_RecordChild0, // #2 = $Vm
/* 26816*/          OPC_CheckChild0Type, MVT::v2i32,
/* 26818*/          OPC_RecordChild1, // #3 = $lane
/* 26819*/          OPC_MoveChild1,
/* 26820*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26823*/          OPC_MoveParent,
/* 26824*/          OPC_CheckType, MVT::v2i32,
/* 26826*/          OPC_MoveParent,
/* 26827*/          OPC_CheckType, MVT::v2i64,
/* 26829*/          OPC_MoveParent,
/* 26830*/          OPC_CheckType, MVT::v2i64,
/* 26832*/          OPC_EmitConvertToTarget, 3,
/* 26834*/          OPC_EmitInteger, MVT::i32, 14, 
/* 26837*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26840*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                    // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26852*/        0, /*End of Scope*/
/* 26853*/      /*Scope*/ 109, /*->26963*/
/* 26854*/        OPC_MoveChild1,
/* 26855*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26858*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 26861*/        OPC_Scope, 49, /*->26912*/ // 2 children in Scope
/* 26863*/          OPC_RecordChild1, // #0 = $Vn
/* 26864*/          OPC_CheckChild1Type, MVT::v4i16,
/* 26866*/          OPC_MoveChild2,
/* 26867*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26870*/          OPC_RecordChild0, // #1 = $Vm
/* 26871*/          OPC_CheckChild0Type, MVT::v4i16,
/* 26873*/          OPC_RecordChild1, // #2 = $lane
/* 26874*/          OPC_MoveChild1,
/* 26875*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26878*/          OPC_MoveParent,
/* 26879*/          OPC_CheckType, MVT::v4i16,
/* 26881*/          OPC_MoveParent,
/* 26882*/          OPC_CheckType, MVT::v4i16,
/* 26884*/          OPC_MoveParent,
/* 26885*/          OPC_RecordChild2, // #3 = $src1
/* 26886*/          OPC_CheckChild2Type, MVT::v4i16,
/* 26888*/          OPC_CheckType, MVT::v4i16,
/* 26890*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 26892*/          OPC_EmitConvertToTarget, 2,
/* 26894*/          OPC_EmitInteger, MVT::i32, 14, 
/* 26897*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26900*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                        MVT::v4i16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v4i16] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26912*/        /*Scope*/ 49, /*->26962*/
/* 26913*/          OPC_MoveChild1,
/* 26914*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26917*/          OPC_RecordChild0, // #0 = $Vm
/* 26918*/          OPC_CheckChild0Type, MVT::v4i16,
/* 26920*/          OPC_RecordChild1, // #1 = $lane
/* 26921*/          OPC_MoveChild1,
/* 26922*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26925*/          OPC_MoveParent,
/* 26926*/          OPC_CheckType, MVT::v4i16,
/* 26928*/          OPC_MoveParent,
/* 26929*/          OPC_RecordChild2, // #2 = $Vn
/* 26930*/          OPC_CheckChild2Type, MVT::v4i16,
/* 26932*/          OPC_CheckType, MVT::v4i16,
/* 26934*/          OPC_MoveParent,
/* 26935*/          OPC_RecordChild2, // #3 = $src1
/* 26936*/          OPC_CheckChild2Type, MVT::v4i16,
/* 26938*/          OPC_CheckType, MVT::v4i16,
/* 26940*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 26942*/          OPC_EmitConvertToTarget, 1,
/* 26944*/          OPC_EmitInteger, MVT::i32, 14, 
/* 26947*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26950*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                        MVT::v4i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn), DPR:{ *:[v4i16] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 26962*/        0, /*End of Scope*/
/* 26963*/      /*Scope*/ 56, /*->27020*/
/* 26964*/        OPC_RecordChild1, // #0 = $src1
/* 26965*/        OPC_CheckChild1Type, MVT::v2i32,
/* 26967*/        OPC_MoveChild2,
/* 26968*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 26971*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 26974*/        OPC_MoveChild1,
/* 26975*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 26978*/        OPC_RecordChild0, // #1 = $Vm
/* 26979*/        OPC_CheckChild0Type, MVT::v2i32,
/* 26981*/        OPC_RecordChild1, // #2 = $lane
/* 26982*/        OPC_MoveChild1,
/* 26983*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26986*/        OPC_MoveParent,
/* 26987*/        OPC_CheckType, MVT::v2i32,
/* 26989*/        OPC_MoveParent,
/* 26990*/        OPC_RecordChild2, // #3 = $Vn
/* 26991*/        OPC_CheckChild2Type, MVT::v2i32,
/* 26993*/        OPC_CheckType, MVT::v2i32,
/* 26995*/        OPC_MoveParent,
/* 26996*/        OPC_CheckType, MVT::v2i32,
/* 26998*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27000*/        OPC_EmitConvertToTarget, 2,
/* 27002*/        OPC_EmitInteger, MVT::i32, 14, 
/* 27005*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27008*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                  // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27020*/      /*Scope*/ 109, /*->27130*/
/* 27021*/        OPC_MoveChild1,
/* 27022*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27025*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27028*/        OPC_Scope, 49, /*->27079*/ // 2 children in Scope
/* 27030*/          OPC_RecordChild1, // #0 = $Vn
/* 27031*/          OPC_CheckChild1Type, MVT::v2i32,
/* 27033*/          OPC_MoveChild2,
/* 27034*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27037*/          OPC_RecordChild0, // #1 = $Vm
/* 27038*/          OPC_CheckChild0Type, MVT::v2i32,
/* 27040*/          OPC_RecordChild1, // #2 = $lane
/* 27041*/          OPC_MoveChild1,
/* 27042*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27045*/          OPC_MoveParent,
/* 27046*/          OPC_CheckType, MVT::v2i32,
/* 27048*/          OPC_MoveParent,
/* 27049*/          OPC_CheckType, MVT::v2i32,
/* 27051*/          OPC_MoveParent,
/* 27052*/          OPC_RecordChild2, // #3 = $src1
/* 27053*/          OPC_CheckChild2Type, MVT::v2i32,
/* 27055*/          OPC_CheckType, MVT::v2i32,
/* 27057*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27059*/          OPC_EmitConvertToTarget, 2,
/* 27061*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27064*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27067*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                        MVT::v2i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v2i32] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27079*/        /*Scope*/ 49, /*->27129*/
/* 27080*/          OPC_MoveChild1,
/* 27081*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27084*/          OPC_RecordChild0, // #0 = $Vm
/* 27085*/          OPC_CheckChild0Type, MVT::v2i32,
/* 27087*/          OPC_RecordChild1, // #1 = $lane
/* 27088*/          OPC_MoveChild1,
/* 27089*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27092*/          OPC_MoveParent,
/* 27093*/          OPC_CheckType, MVT::v2i32,
/* 27095*/          OPC_MoveParent,
/* 27096*/          OPC_RecordChild2, // #2 = $Vn
/* 27097*/          OPC_CheckChild2Type, MVT::v2i32,
/* 27099*/          OPC_CheckType, MVT::v2i32,
/* 27101*/          OPC_MoveParent,
/* 27102*/          OPC_RecordChild2, // #3 = $src1
/* 27103*/          OPC_CheckChild2Type, MVT::v2i32,
/* 27105*/          OPC_CheckType, MVT::v2i32,
/* 27107*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27109*/          OPC_EmitConvertToTarget, 1,
/* 27111*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27114*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27117*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                        MVT::v2i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn), DPR:{ *:[v2i32] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27129*/        0, /*End of Scope*/
/* 27130*/      /*Scope*/ 54, /*->27185*/
/* 27131*/        OPC_RecordChild1, // #0 = $src1
/* 27132*/        OPC_CheckChild1Type, MVT::v4i32,
/* 27134*/        OPC_MoveChild2,
/* 27135*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27138*/        OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 27141*/        OPC_MoveChild1,
/* 27142*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27145*/        OPC_RecordChild0, // #1 = $Vm
/* 27146*/        OPC_CheckChild0Type, MVT::v4i16,
/* 27148*/        OPC_RecordChild1, // #2 = $lane
/* 27149*/        OPC_MoveChild1,
/* 27150*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27153*/        OPC_MoveParent,
/* 27154*/        OPC_CheckType, MVT::v4i16,
/* 27156*/        OPC_MoveParent,
/* 27157*/        OPC_RecordChild2, // #3 = $Vn
/* 27158*/        OPC_CheckChild2Type, MVT::v4i16,
/* 27160*/        OPC_CheckType, MVT::v4i32,
/* 27162*/        OPC_MoveParent,
/* 27163*/        OPC_CheckType, MVT::v4i32,
/* 27165*/        OPC_EmitConvertToTarget, 2,
/* 27167*/        OPC_EmitInteger, MVT::i32, 14, 
/* 27170*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27173*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 22
                  // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27185*/      /*Scope*/ 105, /*->27291*/
/* 27186*/        OPC_MoveChild1,
/* 27187*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27190*/        OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 27193*/        OPC_Scope, 47, /*->27242*/ // 2 children in Scope
/* 27195*/          OPC_RecordChild1, // #0 = $Vn
/* 27196*/          OPC_CheckChild1Type, MVT::v4i16,
/* 27198*/          OPC_MoveChild2,
/* 27199*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27202*/          OPC_RecordChild0, // #1 = $Vm
/* 27203*/          OPC_CheckChild0Type, MVT::v4i16,
/* 27205*/          OPC_RecordChild1, // #2 = $lane
/* 27206*/          OPC_MoveChild1,
/* 27207*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27210*/          OPC_MoveParent,
/* 27211*/          OPC_CheckType, MVT::v4i16,
/* 27213*/          OPC_MoveParent,
/* 27214*/          OPC_CheckType, MVT::v4i32,
/* 27216*/          OPC_MoveParent,
/* 27217*/          OPC_RecordChild2, // #3 = $src1
/* 27218*/          OPC_CheckChild2Type, MVT::v4i32,
/* 27220*/          OPC_CheckType, MVT::v4i32,
/* 27222*/          OPC_EmitConvertToTarget, 2,
/* 27224*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27227*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27230*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 22
                    // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27242*/        /*Scope*/ 47, /*->27290*/
/* 27243*/          OPC_MoveChild1,
/* 27244*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27247*/          OPC_RecordChild0, // #0 = $Vm
/* 27248*/          OPC_CheckChild0Type, MVT::v4i16,
/* 27250*/          OPC_RecordChild1, // #1 = $lane
/* 27251*/          OPC_MoveChild1,
/* 27252*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27255*/          OPC_MoveParent,
/* 27256*/          OPC_CheckType, MVT::v4i16,
/* 27258*/          OPC_MoveParent,
/* 27259*/          OPC_RecordChild2, // #2 = $Vn
/* 27260*/          OPC_CheckChild2Type, MVT::v4i16,
/* 27262*/          OPC_CheckType, MVT::v4i32,
/* 27264*/          OPC_MoveParent,
/* 27265*/          OPC_RecordChild2, // #3 = $src1
/* 27266*/          OPC_CheckChild2Type, MVT::v4i32,
/* 27268*/          OPC_CheckType, MVT::v4i32,
/* 27270*/          OPC_EmitConvertToTarget, 1,
/* 27272*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27275*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27278*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn), QPR:{ *:[v4i32] }:$src1) - Complexity = 22
                    // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27290*/        0, /*End of Scope*/
/* 27291*/      /*Scope*/ 54, /*->27346*/
/* 27292*/        OPC_RecordChild1, // #0 = $src1
/* 27293*/        OPC_CheckChild1Type, MVT::v2i64,
/* 27295*/        OPC_MoveChild2,
/* 27296*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27299*/        OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 27302*/        OPC_MoveChild1,
/* 27303*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27306*/        OPC_RecordChild0, // #1 = $Vm
/* 27307*/        OPC_CheckChild0Type, MVT::v2i32,
/* 27309*/        OPC_RecordChild1, // #2 = $lane
/* 27310*/        OPC_MoveChild1,
/* 27311*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27314*/        OPC_MoveParent,
/* 27315*/        OPC_CheckType, MVT::v2i32,
/* 27317*/        OPC_MoveParent,
/* 27318*/        OPC_RecordChild2, // #3 = $Vn
/* 27319*/        OPC_CheckChild2Type, MVT::v2i32,
/* 27321*/        OPC_CheckType, MVT::v2i64,
/* 27323*/        OPC_MoveParent,
/* 27324*/        OPC_CheckType, MVT::v2i64,
/* 27326*/        OPC_EmitConvertToTarget, 2,
/* 27328*/        OPC_EmitInteger, MVT::i32, 14, 
/* 27331*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27334*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                  // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27346*/      /*Scope*/ 105, /*->27452*/
/* 27347*/        OPC_MoveChild1,
/* 27348*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27351*/        OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 27354*/        OPC_Scope, 47, /*->27403*/ // 2 children in Scope
/* 27356*/          OPC_RecordChild1, // #0 = $Vn
/* 27357*/          OPC_CheckChild1Type, MVT::v2i32,
/* 27359*/          OPC_MoveChild2,
/* 27360*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27363*/          OPC_RecordChild0, // #1 = $Vm
/* 27364*/          OPC_CheckChild0Type, MVT::v2i32,
/* 27366*/          OPC_RecordChild1, // #2 = $lane
/* 27367*/          OPC_MoveChild1,
/* 27368*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27371*/          OPC_MoveParent,
/* 27372*/          OPC_CheckType, MVT::v2i32,
/* 27374*/          OPC_MoveParent,
/* 27375*/          OPC_CheckType, MVT::v2i64,
/* 27377*/          OPC_MoveParent,
/* 27378*/          OPC_RecordChild2, // #3 = $src1
/* 27379*/          OPC_CheckChild2Type, MVT::v2i64,
/* 27381*/          OPC_CheckType, MVT::v2i64,
/* 27383*/          OPC_EmitConvertToTarget, 2,
/* 27385*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27388*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27391*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v2i64] }:$src1) - Complexity = 22
                    // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27403*/        /*Scope*/ 47, /*->27451*/
/* 27404*/          OPC_MoveChild1,
/* 27405*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27408*/          OPC_RecordChild0, // #0 = $Vm
/* 27409*/          OPC_CheckChild0Type, MVT::v2i32,
/* 27411*/          OPC_RecordChild1, // #1 = $lane
/* 27412*/          OPC_MoveChild1,
/* 27413*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27416*/          OPC_MoveParent,
/* 27417*/          OPC_CheckType, MVT::v2i32,
/* 27419*/          OPC_MoveParent,
/* 27420*/          OPC_RecordChild2, // #2 = $Vn
/* 27421*/          OPC_CheckChild2Type, MVT::v2i32,
/* 27423*/          OPC_CheckType, MVT::v2i64,
/* 27425*/          OPC_MoveParent,
/* 27426*/          OPC_RecordChild2, // #3 = $src1
/* 27427*/          OPC_CheckChild2Type, MVT::v2i64,
/* 27429*/          OPC_CheckType, MVT::v2i64,
/* 27431*/          OPC_EmitConvertToTarget, 1,
/* 27433*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27436*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27439*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn), QPR:{ *:[v2i64] }:$src1) - Complexity = 22
                    // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 27451*/        0, /*End of Scope*/
/* 27452*/      /*Scope*/ 86|128,1/*214*/, /*->27668*/
/* 27454*/        OPC_RecordChild1, // #0 = $src1
/* 27455*/        OPC_Scope, 9|128,1/*137*/, /*->27595*/ // 2 children in Scope
/* 27458*/          OPC_CheckChild1Type, MVT::v8i16,
/* 27460*/          OPC_MoveChild2,
/* 27461*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27464*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27467*/          OPC_Scope, 62, /*->27531*/ // 2 children in Scope
/* 27469*/            OPC_RecordChild1, // #1 = $src2
/* 27470*/            OPC_CheckChild1Type, MVT::v8i16,
/* 27472*/            OPC_MoveChild2,
/* 27473*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27476*/            OPC_RecordChild0, // #2 = $src3
/* 27477*/            OPC_CheckChild0Type, MVT::v8i16,
/* 27479*/            OPC_RecordChild1, // #3 = $lane
/* 27480*/            OPC_MoveChild1,
/* 27481*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27484*/            OPC_MoveParent,
/* 27485*/            OPC_CheckType, MVT::v8i16,
/* 27487*/            OPC_MoveParent,
/* 27488*/            OPC_CheckType, MVT::v8i16,
/* 27490*/            OPC_MoveParent,
/* 27491*/            OPC_CheckType, MVT::v8i16,
/* 27493*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27495*/            OPC_EmitConvertToTarget, 3,
/* 27497*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 27500*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 27508*/            OPC_EmitConvertToTarget, 3,
/* 27510*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 27513*/            OPC_EmitInteger, MVT::i32, 14, 
/* 27516*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27519*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQRDMLAHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27531*/          /*Scope*/ 62, /*->27594*/
/* 27532*/            OPC_MoveChild1,
/* 27533*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27536*/            OPC_RecordChild0, // #1 = $src3
/* 27537*/            OPC_CheckChild0Type, MVT::v8i16,
/* 27539*/            OPC_RecordChild1, // #2 = $lane
/* 27540*/            OPC_MoveChild1,
/* 27541*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27544*/            OPC_MoveParent,
/* 27545*/            OPC_CheckType, MVT::v8i16,
/* 27547*/            OPC_MoveParent,
/* 27548*/            OPC_RecordChild2, // #3 = $src2
/* 27549*/            OPC_CheckChild2Type, MVT::v8i16,
/* 27551*/            OPC_CheckType, MVT::v8i16,
/* 27553*/            OPC_MoveParent,
/* 27554*/            OPC_CheckType, MVT::v8i16,
/* 27556*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27558*/            OPC_EmitConvertToTarget, 2,
/* 27560*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 27563*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 27571*/            OPC_EmitConvertToTarget, 2,
/* 27573*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 27576*/            OPC_EmitInteger, MVT::i32, 14, 
/* 27579*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27582*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 22
                      // Dst: (VQRDMLAHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27594*/          0, /*End of Scope*/
/* 27595*/        /*Scope*/ 71, /*->27667*/
/* 27596*/          OPC_CheckChild1Type, MVT::v4i32,
/* 27598*/          OPC_MoveChild2,
/* 27599*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27602*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27605*/          OPC_RecordChild1, // #1 = $src2
/* 27606*/          OPC_CheckChild1Type, MVT::v4i32,
/* 27608*/          OPC_MoveChild2,
/* 27609*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27612*/          OPC_RecordChild0, // #2 = $src3
/* 27613*/          OPC_CheckChild0Type, MVT::v4i32,
/* 27615*/          OPC_RecordChild1, // #3 = $lane
/* 27616*/          OPC_MoveChild1,
/* 27617*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27620*/          OPC_MoveParent,
/* 27621*/          OPC_CheckType, MVT::v4i32,
/* 27623*/          OPC_MoveParent,
/* 27624*/          OPC_CheckType, MVT::v4i32,
/* 27626*/          OPC_MoveParent,
/* 27627*/          OPC_CheckType, MVT::v4i32,
/* 27629*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27631*/          OPC_EmitConvertToTarget, 3,
/* 27633*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 27636*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 27644*/          OPC_EmitConvertToTarget, 3,
/* 27646*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 27649*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27652*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27655*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                    // Dst: (VQRDMLAHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27667*/        0, /*End of Scope*/
/* 27668*/      /*Scope*/ 13|128,1/*141*/, /*->27811*/
/* 27670*/        OPC_MoveChild1,
/* 27671*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27674*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27677*/        OPC_Scope, 65, /*->27744*/ // 2 children in Scope
/* 27679*/          OPC_RecordChild1, // #0 = $src2
/* 27680*/          OPC_CheckChild1Type, MVT::v8i16,
/* 27682*/          OPC_MoveChild2,
/* 27683*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27686*/          OPC_RecordChild0, // #1 = $src3
/* 27687*/          OPC_CheckChild0Type, MVT::v8i16,
/* 27689*/          OPC_RecordChild1, // #2 = $lane
/* 27690*/          OPC_MoveChild1,
/* 27691*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27694*/          OPC_MoveParent,
/* 27695*/          OPC_CheckType, MVT::v8i16,
/* 27697*/          OPC_MoveParent,
/* 27698*/          OPC_CheckType, MVT::v8i16,
/* 27700*/          OPC_MoveParent,
/* 27701*/          OPC_RecordChild2, // #3 = $src1
/* 27702*/          OPC_CheckChild2Type, MVT::v8i16,
/* 27704*/          OPC_CheckType, MVT::v8i16,
/* 27706*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27708*/          OPC_EmitConvertToTarget, 2,
/* 27710*/          OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 27713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 27721*/          OPC_EmitConvertToTarget, 2,
/* 27723*/          OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 27726*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27732*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                        MVT::v8i16, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v8i16] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27744*/        /*Scope*/ 65, /*->27810*/
/* 27745*/          OPC_MoveChild1,
/* 27746*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27749*/          OPC_RecordChild0, // #0 = $src3
/* 27750*/          OPC_CheckChild0Type, MVT::v8i16,
/* 27752*/          OPC_RecordChild1, // #1 = $lane
/* 27753*/          OPC_MoveChild1,
/* 27754*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27757*/          OPC_MoveParent,
/* 27758*/          OPC_CheckType, MVT::v8i16,
/* 27760*/          OPC_MoveParent,
/* 27761*/          OPC_RecordChild2, // #2 = $src2
/* 27762*/          OPC_CheckChild2Type, MVT::v8i16,
/* 27764*/          OPC_CheckType, MVT::v8i16,
/* 27766*/          OPC_MoveParent,
/* 27767*/          OPC_RecordChild2, // #3 = $src1
/* 27768*/          OPC_CheckChild2Type, MVT::v8i16,
/* 27770*/          OPC_CheckType, MVT::v8i16,
/* 27772*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27774*/          OPC_EmitConvertToTarget, 1,
/* 27776*/          OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 27779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 5,  // Results = #6
/* 27787*/          OPC_EmitConvertToTarget, 1,
/* 27789*/          OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 27792*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27795*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27798*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                        MVT::v8i16, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2), QPR:{ *:[v8i16] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27810*/        0, /*End of Scope*/
/* 27811*/      /*Scope*/ 72, /*->27884*/
/* 27812*/        OPC_RecordChild1, // #0 = $src1
/* 27813*/        OPC_CheckChild1Type, MVT::v4i32,
/* 27815*/        OPC_MoveChild2,
/* 27816*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27819*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27822*/        OPC_MoveChild1,
/* 27823*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27826*/        OPC_RecordChild0, // #1 = $src3
/* 27827*/        OPC_CheckChild0Type, MVT::v4i32,
/* 27829*/        OPC_RecordChild1, // #2 = $lane
/* 27830*/        OPC_MoveChild1,
/* 27831*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27834*/        OPC_MoveParent,
/* 27835*/        OPC_CheckType, MVT::v4i32,
/* 27837*/        OPC_MoveParent,
/* 27838*/        OPC_RecordChild2, // #3 = $src2
/* 27839*/        OPC_CheckChild2Type, MVT::v4i32,
/* 27841*/        OPC_CheckType, MVT::v4i32,
/* 27843*/        OPC_MoveParent,
/* 27844*/        OPC_CheckType, MVT::v4i32,
/* 27846*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27848*/        OPC_EmitConvertToTarget, 2,
/* 27850*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 27853*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 27861*/        OPC_EmitConvertToTarget, 2,
/* 27863*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 27866*/        OPC_EmitInteger, MVT::i32, 14, 
/* 27869*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27872*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 22
                  // Dst: (VQRDMLAHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27884*/      /*Scope*/ 13|128,1/*141*/, /*->28027*/
/* 27886*/        OPC_MoveChild1,
/* 27887*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 27890*/        OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 27893*/        OPC_Scope, 65, /*->27960*/ // 2 children in Scope
/* 27895*/          OPC_RecordChild1, // #0 = $src2
/* 27896*/          OPC_CheckChild1Type, MVT::v4i32,
/* 27898*/          OPC_MoveChild2,
/* 27899*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27902*/          OPC_RecordChild0, // #1 = $src3
/* 27903*/          OPC_CheckChild0Type, MVT::v4i32,
/* 27905*/          OPC_RecordChild1, // #2 = $lane
/* 27906*/          OPC_MoveChild1,
/* 27907*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27910*/          OPC_MoveParent,
/* 27911*/          OPC_CheckType, MVT::v4i32,
/* 27913*/          OPC_MoveParent,
/* 27914*/          OPC_CheckType, MVT::v4i32,
/* 27916*/          OPC_MoveParent,
/* 27917*/          OPC_RecordChild2, // #3 = $src1
/* 27918*/          OPC_CheckChild2Type, MVT::v4i32,
/* 27920*/          OPC_CheckType, MVT::v4i32,
/* 27922*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27924*/          OPC_EmitConvertToTarget, 2,
/* 27926*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 27929*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 27937*/          OPC_EmitConvertToTarget, 2,
/* 27939*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 27942*/          OPC_EmitInteger, MVT::i32, 14, 
/* 27945*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 27948*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 27960*/        /*Scope*/ 65, /*->28026*/
/* 27961*/          OPC_MoveChild1,
/* 27962*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 27965*/          OPC_RecordChild0, // #0 = $src3
/* 27966*/          OPC_CheckChild0Type, MVT::v4i32,
/* 27968*/          OPC_RecordChild1, // #1 = $lane
/* 27969*/          OPC_MoveChild1,
/* 27970*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27973*/          OPC_MoveParent,
/* 27974*/          OPC_CheckType, MVT::v4i32,
/* 27976*/          OPC_MoveParent,
/* 27977*/          OPC_RecordChild2, // #2 = $src2
/* 27978*/          OPC_CheckChild2Type, MVT::v4i32,
/* 27980*/          OPC_CheckType, MVT::v4i32,
/* 27982*/          OPC_MoveParent,
/* 27983*/          OPC_RecordChild2, // #3 = $src1
/* 27984*/          OPC_CheckChild2Type, MVT::v4i32,
/* 27986*/          OPC_CheckType, MVT::v4i32,
/* 27988*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 27990*/          OPC_EmitConvertToTarget, 1,
/* 27992*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 27995*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 5,  // Results = #6
/* 28003*/          OPC_EmitConvertToTarget, 1,
/* 28005*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 28008*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28011*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28014*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2), QPR:{ *:[v4i32] }:$src1) - Complexity = 22
                    // Dst: (VQRDMLAHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 28026*/        0, /*End of Scope*/
/* 28027*/      /*Scope*/ 106|128,1/*234*/, /*->28263*/
/* 28029*/        OPC_RecordChild1, // #0 = $src1
/* 28030*/        OPC_Scope, 39, /*->28071*/ // 5 children in Scope
/* 28032*/          OPC_CheckChild1Type, MVT::v4i16,
/* 28034*/          OPC_MoveChild2,
/* 28035*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28038*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28041*/          OPC_RecordChild1, // #1 = $Vn
/* 28042*/          OPC_CheckChild1Type, MVT::v4i16,
/* 28044*/          OPC_RecordChild2, // #2 = $Vm
/* 28045*/          OPC_CheckChild2Type, MVT::v4i16,
/* 28047*/          OPC_CheckType, MVT::v4i16,
/* 28049*/          OPC_MoveParent,
/* 28050*/          OPC_CheckType, MVT::v4i16,
/* 28052*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28054*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28057*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28060*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 16
                    // Dst: (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28071*/        /*Scope*/ 39, /*->28111*/
/* 28072*/          OPC_CheckChild1Type, MVT::v2i32,
/* 28074*/          OPC_MoveChild2,
/* 28075*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28078*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28081*/          OPC_RecordChild1, // #1 = $Vn
/* 28082*/          OPC_CheckChild1Type, MVT::v2i32,
/* 28084*/          OPC_RecordChild2, // #2 = $Vm
/* 28085*/          OPC_CheckChild2Type, MVT::v2i32,
/* 28087*/          OPC_CheckType, MVT::v2i32,
/* 28089*/          OPC_MoveParent,
/* 28090*/          OPC_CheckType, MVT::v2i32,
/* 28092*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28094*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28097*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28100*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                    // Dst: (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28111*/        /*Scope*/ 39, /*->28151*/
/* 28112*/          OPC_CheckChild1Type, MVT::v8i16,
/* 28114*/          OPC_MoveChild2,
/* 28115*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28118*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28121*/          OPC_RecordChild1, // #1 = $Vn
/* 28122*/          OPC_CheckChild1Type, MVT::v8i16,
/* 28124*/          OPC_RecordChild2, // #2 = $Vm
/* 28125*/          OPC_CheckChild2Type, MVT::v8i16,
/* 28127*/          OPC_CheckType, MVT::v8i16,
/* 28129*/          OPC_MoveParent,
/* 28130*/          OPC_CheckType, MVT::v8i16,
/* 28132*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28134*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28137*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28140*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 16
                    // Dst: (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 28151*/        /*Scope*/ 72, /*->28224*/
/* 28152*/          OPC_CheckChild1Type, MVT::v4i32,
/* 28154*/          OPC_MoveChild2,
/* 28155*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28158*/          OPC_CheckType, MVT::v4i32,
/* 28160*/          OPC_Scope, 31, /*->28193*/ // 2 children in Scope
/* 28162*/            OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28165*/            OPC_RecordChild1, // #1 = $Vn
/* 28166*/            OPC_CheckChild1Type, MVT::v4i32,
/* 28168*/            OPC_RecordChild2, // #2 = $Vm
/* 28169*/            OPC_CheckChild2Type, MVT::v4i32,
/* 28171*/            OPC_MoveParent,
/* 28172*/            OPC_CheckType, MVT::v4i32,
/* 28174*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28176*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28179*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28182*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                      // Dst: (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 28193*/          /*Scope*/ 29, /*->28223*/
/* 28194*/            OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 28197*/            OPC_RecordChild1, // #1 = $Vn
/* 28198*/            OPC_CheckChild1Type, MVT::v4i16,
/* 28200*/            OPC_RecordChild2, // #2 = $Vm
/* 28201*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28203*/            OPC_MoveParent,
/* 28204*/            OPC_CheckType, MVT::v4i32,
/* 28206*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28209*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28212*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 16
                      // Dst: (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28223*/          0, /*End of Scope*/
/* 28224*/        /*Scope*/ 37, /*->28262*/
/* 28225*/          OPC_CheckChild1Type, MVT::v2i64,
/* 28227*/          OPC_MoveChild2,
/* 28228*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28231*/          OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 28234*/          OPC_RecordChild1, // #1 = $Vn
/* 28235*/          OPC_CheckChild1Type, MVT::v2i32,
/* 28237*/          OPC_RecordChild2, // #2 = $Vm
/* 28238*/          OPC_CheckChild2Type, MVT::v2i32,
/* 28240*/          OPC_CheckType, MVT::v2i64,
/* 28242*/          OPC_MoveParent,
/* 28243*/          OPC_CheckType, MVT::v2i64,
/* 28245*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28248*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28251*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                    // Dst: (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28262*/        0, /*End of Scope*/
/* 28263*/      /*Scope*/ 81|128,1/*209*/, /*->28474*/
/* 28265*/        OPC_MoveChild1,
/* 28266*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28269*/        OPC_Scope, 6|128,1/*134*/, /*->28406*/ // 2 children in Scope
/* 28272*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28275*/          OPC_RecordChild1, // #0 = $Vn
/* 28276*/          OPC_SwitchType /*4 cases */, 30, MVT::v4i16,// ->28309
/* 28279*/            OPC_CheckChild1Type, MVT::v4i16,
/* 28281*/            OPC_RecordChild2, // #1 = $Vm
/* 28282*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28284*/            OPC_MoveParent,
/* 28285*/            OPC_RecordChild2, // #2 = $src1
/* 28286*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28288*/            OPC_CheckType, MVT::v4i16,
/* 28290*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28292*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28295*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28298*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 16
                      // Dst: (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28309*/          /*SwitchType*/ 30, MVT::v2i32,// ->28341
/* 28311*/            OPC_CheckChild1Type, MVT::v2i32,
/* 28313*/            OPC_RecordChild2, // #1 = $Vm
/* 28314*/            OPC_CheckChild2Type, MVT::v2i32,
/* 28316*/            OPC_MoveParent,
/* 28317*/            OPC_RecordChild2, // #2 = $src1
/* 28318*/            OPC_CheckChild2Type, MVT::v2i32,
/* 28320*/            OPC_CheckType, MVT::v2i32,
/* 28322*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28324*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28327*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28330*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 16
                      // Dst: (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28341*/          /*SwitchType*/ 30, MVT::v8i16,// ->28373
/* 28343*/            OPC_CheckChild1Type, MVT::v8i16,
/* 28345*/            OPC_RecordChild2, // #1 = $Vm
/* 28346*/            OPC_CheckChild2Type, MVT::v8i16,
/* 28348*/            OPC_MoveParent,
/* 28349*/            OPC_RecordChild2, // #2 = $src1
/* 28350*/            OPC_CheckChild2Type, MVT::v8i16,
/* 28352*/            OPC_CheckType, MVT::v8i16,
/* 28354*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28356*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28359*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28362*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 16
                      // Dst: (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 28373*/          /*SwitchType*/ 30, MVT::v4i32,// ->28405
/* 28375*/            OPC_CheckChild1Type, MVT::v4i32,
/* 28377*/            OPC_RecordChild2, // #1 = $Vm
/* 28378*/            OPC_CheckChild2Type, MVT::v4i32,
/* 28380*/            OPC_MoveParent,
/* 28381*/            OPC_RecordChild2, // #2 = $src1
/* 28382*/            OPC_CheckChild2Type, MVT::v4i32,
/* 28384*/            OPC_CheckType, MVT::v4i32,
/* 28386*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28388*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28391*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28394*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 16
                      // Dst: (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 28405*/          0, // EndSwitchType
/* 28406*/        /*Scope*/ 66, /*->28473*/
/* 28407*/          OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 28410*/          OPC_RecordChild1, // #0 = $Vn
/* 28411*/          OPC_SwitchType /*2 cases */, 28, MVT::v4i32,// ->28442
/* 28414*/            OPC_CheckChild1Type, MVT::v4i16,
/* 28416*/            OPC_RecordChild2, // #1 = $Vm
/* 28417*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28419*/            OPC_MoveParent,
/* 28420*/            OPC_RecordChild2, // #2 = $src1
/* 28421*/            OPC_CheckChild2Type, MVT::v4i32,
/* 28423*/            OPC_CheckType, MVT::v4i32,
/* 28425*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28428*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28431*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 16
                      // Dst: (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28442*/          /*SwitchType*/ 28, MVT::v2i64,// ->28472
/* 28444*/            OPC_CheckChild1Type, MVT::v2i32,
/* 28446*/            OPC_RecordChild2, // #1 = $Vm
/* 28447*/            OPC_CheckChild2Type, MVT::v2i32,
/* 28449*/            OPC_MoveParent,
/* 28450*/            OPC_RecordChild2, // #2 = $src1
/* 28451*/            OPC_CheckChild2Type, MVT::v2i64,
/* 28453*/            OPC_CheckType, MVT::v2i64,
/* 28455*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28458*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28461*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) - Complexity = 16
                      // Dst: (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28472*/          0, // EndSwitchType
/* 28473*/        0, /*End of Scope*/
/* 28474*/      /*Scope*/ 75|128,1/*203*/, /*->28679*/
/* 28476*/        OPC_RecordChild1, // #0 = $Vn
/* 28477*/        OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->28503
/* 28480*/          OPC_CheckChild1Type, MVT::v4i16,
/* 28482*/          OPC_RecordChild2, // #1 = $Vm
/* 28483*/          OPC_CheckChild2Type, MVT::v4i16,
/* 28485*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28487*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28490*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28493*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28503*/        /*SwitchType*/ 23, MVT::v2i32,// ->28528
/* 28505*/          OPC_CheckChild1Type, MVT::v2i32,
/* 28507*/          OPC_RecordChild2, // #1 = $Vm
/* 28508*/          OPC_CheckChild2Type, MVT::v2i32,
/* 28510*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28512*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28515*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28518*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28528*/        /*SwitchType*/ 23, MVT::v8i16,// ->28553
/* 28530*/          OPC_CheckChild1Type, MVT::v8i16,
/* 28532*/          OPC_RecordChild2, // #1 = $Vm
/* 28533*/          OPC_CheckChild2Type, MVT::v8i16,
/* 28535*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28537*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28540*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28543*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 28553*/        /*SwitchType*/ 23, MVT::v4i32,// ->28578
/* 28555*/          OPC_CheckChild1Type, MVT::v4i32,
/* 28557*/          OPC_RecordChild2, // #1 = $Vm
/* 28558*/          OPC_CheckChild2Type, MVT::v4i32,
/* 28560*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28562*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28565*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28568*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 28578*/        /*SwitchType*/ 23, MVT::v8i8,// ->28603
/* 28580*/          OPC_CheckChild1Type, MVT::v8i8,
/* 28582*/          OPC_RecordChild2, // #1 = $Vm
/* 28583*/          OPC_CheckChild2Type, MVT::v8i8,
/* 28585*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28587*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28590*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28593*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv8i8), 0,
                        MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1074:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 28603*/        /*SwitchType*/ 23, MVT::v16i8,// ->28628
/* 28605*/          OPC_CheckChild1Type, MVT::v16i8,
/* 28607*/          OPC_RecordChild2, // #1 = $Vm
/* 28608*/          OPC_CheckChild2Type, MVT::v16i8,
/* 28610*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28612*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28615*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28618*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1074:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 28628*/        /*SwitchType*/ 23, MVT::v1i64,// ->28653
/* 28630*/          OPC_CheckChild1Type, MVT::v1i64,
/* 28632*/          OPC_RecordChild2, // #1 = $Vm
/* 28633*/          OPC_CheckChild2Type, MVT::v1i64,
/* 28635*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28637*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28640*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28643*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv1i64), 0,
                        MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1074:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 28653*/        /*SwitchType*/ 23, MVT::v2i64,// ->28678
/* 28655*/          OPC_CheckChild1Type, MVT::v2i64,
/* 28657*/          OPC_RecordChild2, // #1 = $Vm
/* 28658*/          OPC_CheckChild2Type, MVT::v2i64,
/* 28660*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28662*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28665*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28668*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1074:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                    // Dst: (VQADDsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 28678*/        0, // EndSwitchType
/* 28679*/      0, /*End of Scope*/
/* 28680*/    /*Scope*/ 77|128,8/*1101*/, /*->29783*/
/* 28682*/      OPC_CheckChild0Integer, 70|128,8/*1094*/, 
/* 28685*/      OPC_RecordChild1, // #0 = $src1
/* 28686*/      OPC_Scope, 36|128,1/*164*/, /*->28853*/ // 8 children in Scope
/* 28689*/        OPC_CheckChild1Type, MVT::v4i16,
/* 28691*/        OPC_Scope, 6|128,1/*134*/, /*->28828*/ // 2 children in Scope
/* 28694*/          OPC_MoveChild2,
/* 28695*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28698*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28701*/          OPC_Scope, 46, /*->28749*/ // 3 children in Scope
/* 28703*/            OPC_RecordChild1, // #1 = $Vn
/* 28704*/            OPC_CheckChild1Type, MVT::v4i16,
/* 28706*/            OPC_MoveChild2,
/* 28707*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 28710*/            OPC_RecordChild0, // #2 = $Vm
/* 28711*/            OPC_CheckChild0Type, MVT::v4i16,
/* 28713*/            OPC_RecordChild1, // #3 = $lane
/* 28714*/            OPC_MoveChild1,
/* 28715*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28718*/            OPC_MoveParent,
/* 28719*/            OPC_CheckType, MVT::v4i16,
/* 28721*/            OPC_MoveParent,
/* 28722*/            OPC_CheckType, MVT::v4i16,
/* 28724*/            OPC_MoveParent,
/* 28725*/            OPC_CheckType, MVT::v4i16,
/* 28727*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28729*/            OPC_EmitConvertToTarget, 3,
/* 28731*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28734*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28737*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1094:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQRDMLSHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 28749*/          /*Scope*/ 46, /*->28796*/
/* 28750*/            OPC_MoveChild1,
/* 28751*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 28754*/            OPC_RecordChild0, // #1 = $Vm
/* 28755*/            OPC_CheckChild0Type, MVT::v4i16,
/* 28757*/            OPC_RecordChild1, // #2 = $lane
/* 28758*/            OPC_MoveChild1,
/* 28759*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28762*/            OPC_MoveParent,
/* 28763*/            OPC_CheckType, MVT::v4i16,
/* 28765*/            OPC_MoveParent,
/* 28766*/            OPC_RecordChild2, // #3 = $Vn
/* 28767*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28769*/            OPC_CheckType, MVT::v4i16,
/* 28771*/            OPC_MoveParent,
/* 28772*/            OPC_CheckType, MVT::v4i16,
/* 28774*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28776*/            OPC_EmitConvertToTarget, 2,
/* 28778*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28781*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28784*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1094:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 22
                      // Dst: (VQRDMLSHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 28796*/          /*Scope*/ 30, /*->28827*/
/* 28797*/            OPC_RecordChild1, // #1 = $Vn
/* 28798*/            OPC_CheckChild1Type, MVT::v4i16,
/* 28800*/            OPC_RecordChild2, // #2 = $Vm
/* 28801*/            OPC_CheckChild2Type, MVT::v4i16,
/* 28803*/            OPC_CheckType, MVT::v4i16,
/* 28805*/            OPC_MoveParent,
/* 28806*/            OPC_CheckType, MVT::v4i16,
/* 28808*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28810*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28813*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28816*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1094:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 16
                      // Dst: (VQRDMLSHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28827*/          0, /*End of Scope*/
/* 28828*/        /*Scope*/ 23, /*->28852*/
/* 28829*/          OPC_RecordChild2, // #1 = $Vm
/* 28830*/          OPC_CheckChild2Type, MVT::v4i16,
/* 28832*/          OPC_CheckType, MVT::v4i16,
/* 28834*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28836*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28839*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28842*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1094:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 28852*/        0, /*End of Scope*/
/* 28853*/      /*Scope*/ 36|128,1/*164*/, /*->29019*/
/* 28855*/        OPC_CheckChild1Type, MVT::v2i32,
/* 28857*/        OPC_Scope, 6|128,1/*134*/, /*->28994*/ // 2 children in Scope
/* 28860*/          OPC_MoveChild2,
/* 28861*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28864*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 28867*/          OPC_Scope, 46, /*->28915*/ // 3 children in Scope
/* 28869*/            OPC_RecordChild1, // #1 = $Vn
/* 28870*/            OPC_CheckChild1Type, MVT::v2i32,
/* 28872*/            OPC_MoveChild2,
/* 28873*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 28876*/            OPC_RecordChild0, // #2 = $Vm
/* 28877*/            OPC_CheckChild0Type, MVT::v2i32,
/* 28879*/            OPC_RecordChild1, // #3 = $lane
/* 28880*/            OPC_MoveChild1,
/* 28881*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28884*/            OPC_MoveParent,
/* 28885*/            OPC_CheckType, MVT::v2i32,
/* 28887*/            OPC_MoveParent,
/* 28888*/            OPC_CheckType, MVT::v2i32,
/* 28890*/            OPC_MoveParent,
/* 28891*/            OPC_CheckType, MVT::v2i32,
/* 28893*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28895*/            OPC_EmitConvertToTarget, 3,
/* 28897*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28900*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28903*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv2i32), 0,
                          MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1094:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQRDMLSHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 28915*/          /*Scope*/ 46, /*->28962*/
/* 28916*/            OPC_MoveChild1,
/* 28917*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 28920*/            OPC_RecordChild0, // #1 = $Vm
/* 28921*/            OPC_CheckChild0Type, MVT::v2i32,
/* 28923*/            OPC_RecordChild1, // #2 = $lane
/* 28924*/            OPC_MoveChild1,
/* 28925*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28928*/            OPC_MoveParent,
/* 28929*/            OPC_CheckType, MVT::v2i32,
/* 28931*/            OPC_MoveParent,
/* 28932*/            OPC_RecordChild2, // #3 = $Vn
/* 28933*/            OPC_CheckChild2Type, MVT::v2i32,
/* 28935*/            OPC_CheckType, MVT::v2i32,
/* 28937*/            OPC_MoveParent,
/* 28938*/            OPC_CheckType, MVT::v2i32,
/* 28940*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28942*/            OPC_EmitConvertToTarget, 2,
/* 28944*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28947*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28950*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv2i32), 0,
                          MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1094:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                      // Dst: (VQRDMLSHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 28962*/          /*Scope*/ 30, /*->28993*/
/* 28963*/            OPC_RecordChild1, // #1 = $Vn
/* 28964*/            OPC_CheckChild1Type, MVT::v2i32,
/* 28966*/            OPC_RecordChild2, // #2 = $Vm
/* 28967*/            OPC_CheckChild2Type, MVT::v2i32,
/* 28969*/            OPC_CheckType, MVT::v2i32,
/* 28971*/            OPC_MoveParent,
/* 28972*/            OPC_CheckType, MVT::v2i32,
/* 28974*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 28976*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28979*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28982*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1094:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                      // Dst: (VQRDMLSHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 28993*/          0, /*End of Scope*/
/* 28994*/        /*Scope*/ 23, /*->29018*/
/* 28995*/          OPC_RecordChild2, // #1 = $Vm
/* 28996*/          OPC_CheckChild2Type, MVT::v2i32,
/* 28998*/          OPC_CheckType, MVT::v2i32,
/* 29000*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29002*/          OPC_EmitInteger, MVT::i32, 14, 
/* 29005*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29008*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1094:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 29018*/        0, /*End of Scope*/
/* 29019*/      /*Scope*/ 69|128,2/*325*/, /*->29346*/
/* 29021*/        OPC_CheckChild1Type, MVT::v4i32,
/* 29023*/        OPC_Scope, 39|128,2/*295*/, /*->29321*/ // 2 children in Scope
/* 29026*/          OPC_MoveChild2,
/* 29027*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 29030*/          OPC_Scope, 124, /*->29156*/ // 2 children in Scope
/* 29032*/            OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 29035*/            OPC_Scope, 44, /*->29081*/ // 3 children in Scope
/* 29037*/              OPC_RecordChild1, // #1 = $Vn
/* 29038*/              OPC_CheckChild1Type, MVT::v4i16,
/* 29040*/              OPC_MoveChild2,
/* 29041*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29044*/              OPC_RecordChild0, // #2 = $Vm
/* 29045*/              OPC_CheckChild0Type, MVT::v4i16,
/* 29047*/              OPC_RecordChild1, // #3 = $lane
/* 29048*/              OPC_MoveChild1,
/* 29049*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29052*/              OPC_MoveParent,
/* 29053*/              OPC_CheckType, MVT::v4i16,
/* 29055*/              OPC_MoveParent,
/* 29056*/              OPC_CheckType, MVT::v4i32,
/* 29058*/              OPC_MoveParent,
/* 29059*/              OPC_CheckType, MVT::v4i32,
/* 29061*/              OPC_EmitConvertToTarget, 3,
/* 29063*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29066*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29069*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv4i16), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                        // Dst: (VQDMLSLslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 29081*/            /*Scope*/ 44, /*->29126*/
/* 29082*/              OPC_MoveChild1,
/* 29083*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29086*/              OPC_RecordChild0, // #1 = $Vm
/* 29087*/              OPC_CheckChild0Type, MVT::v4i16,
/* 29089*/              OPC_RecordChild1, // #2 = $lane
/* 29090*/              OPC_MoveChild1,
/* 29091*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29094*/              OPC_MoveParent,
/* 29095*/              OPC_CheckType, MVT::v4i16,
/* 29097*/              OPC_MoveParent,
/* 29098*/              OPC_RecordChild2, // #3 = $Vn
/* 29099*/              OPC_CheckChild2Type, MVT::v4i16,
/* 29101*/              OPC_CheckType, MVT::v4i32,
/* 29103*/              OPC_MoveParent,
/* 29104*/              OPC_CheckType, MVT::v4i32,
/* 29106*/              OPC_EmitConvertToTarget, 2,
/* 29108*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29111*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29114*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv4i16), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 22
                        // Dst: (VQDMLSLslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 29126*/            /*Scope*/ 28, /*->29155*/
/* 29127*/              OPC_RecordChild1, // #1 = $Vn
/* 29128*/              OPC_CheckChild1Type, MVT::v4i16,
/* 29130*/              OPC_RecordChild2, // #2 = $Vm
/* 29131*/              OPC_CheckChild2Type, MVT::v4i16,
/* 29133*/              OPC_CheckType, MVT::v4i32,
/* 29135*/              OPC_MoveParent,
/* 29136*/              OPC_CheckType, MVT::v4i32,
/* 29138*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29141*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29144*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLv4i32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 16
                        // Dst: (VQDMLSLv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 29155*/            0, /*End of Scope*/
/* 29156*/          /*Scope*/ 34|128,1/*162*/, /*->29320*/
/* 29158*/            OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 29161*/            OPC_Scope, 62, /*->29225*/ // 3 children in Scope
/* 29163*/              OPC_RecordChild1, // #1 = $src2
/* 29164*/              OPC_CheckChild1Type, MVT::v4i32,
/* 29166*/              OPC_MoveChild2,
/* 29167*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29170*/              OPC_RecordChild0, // #2 = $src3
/* 29171*/              OPC_CheckChild0Type, MVT::v4i32,
/* 29173*/              OPC_RecordChild1, // #3 = $lane
/* 29174*/              OPC_MoveChild1,
/* 29175*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29178*/              OPC_MoveParent,
/* 29179*/              OPC_CheckType, MVT::v4i32,
/* 29181*/              OPC_MoveParent,
/* 29182*/              OPC_CheckType, MVT::v4i32,
/* 29184*/              OPC_MoveParent,
/* 29185*/              OPC_CheckType, MVT::v4i32,
/* 29187*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29189*/              OPC_EmitConvertToTarget, 3,
/* 29191*/              OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 29194*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 29202*/              OPC_EmitConvertToTarget, 3,
/* 29204*/              OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 29207*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29210*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29213*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i32), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                        // Dst: (VQRDMLSHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 29225*/            /*Scope*/ 62, /*->29288*/
/* 29226*/              OPC_MoveChild1,
/* 29227*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29230*/              OPC_RecordChild0, // #1 = $src3
/* 29231*/              OPC_CheckChild0Type, MVT::v4i32,
/* 29233*/              OPC_RecordChild1, // #2 = $lane
/* 29234*/              OPC_MoveChild1,
/* 29235*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29238*/              OPC_MoveParent,
/* 29239*/              OPC_CheckType, MVT::v4i32,
/* 29241*/              OPC_MoveParent,
/* 29242*/              OPC_RecordChild2, // #3 = $src2
/* 29243*/              OPC_CheckChild2Type, MVT::v4i32,
/* 29245*/              OPC_CheckType, MVT::v4i32,
/* 29247*/              OPC_MoveParent,
/* 29248*/              OPC_CheckType, MVT::v4i32,
/* 29250*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29252*/              OPC_EmitConvertToTarget, 2,
/* 29254*/              OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 29257*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 29265*/              OPC_EmitConvertToTarget, 2,
/* 29267*/              OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 29270*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29273*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29276*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i32), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 22
                        // Dst: (VQRDMLSHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 29288*/            /*Scope*/ 30, /*->29319*/
/* 29289*/              OPC_RecordChild1, // #1 = $Vn
/* 29290*/              OPC_CheckChild1Type, MVT::v4i32,
/* 29292*/              OPC_RecordChild2, // #2 = $Vm
/* 29293*/              OPC_CheckChild2Type, MVT::v4i32,
/* 29295*/              OPC_CheckType, MVT::v4i32,
/* 29297*/              OPC_MoveParent,
/* 29298*/              OPC_CheckType, MVT::v4i32,
/* 29300*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29302*/              OPC_EmitInteger, MVT::i32, 14, 
/* 29305*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29308*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv4i32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                        // Dst: (VQRDMLSHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 29319*/            0, /*End of Scope*/
/* 29320*/          0, /*End of Scope*/
/* 29321*/        /*Scope*/ 23, /*->29345*/
/* 29322*/          OPC_RecordChild2, // #1 = $Vm
/* 29323*/          OPC_CheckChild2Type, MVT::v4i32,
/* 29325*/          OPC_CheckType, MVT::v4i32,
/* 29327*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29329*/          OPC_EmitInteger, MVT::i32, 14, 
/* 29332*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29335*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1094:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 29345*/        0, /*End of Scope*/
/* 29346*/      /*Scope*/ 30|128,1/*158*/, /*->29506*/
/* 29348*/        OPC_CheckChild1Type, MVT::v2i64,
/* 29350*/        OPC_Scope, 0|128,1/*128*/, /*->29481*/ // 2 children in Scope
/* 29353*/          OPC_MoveChild2,
/* 29354*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 29357*/          OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 29360*/          OPC_Scope, 44, /*->29406*/ // 3 children in Scope
/* 29362*/            OPC_RecordChild1, // #1 = $Vn
/* 29363*/            OPC_CheckChild1Type, MVT::v2i32,
/* 29365*/            OPC_MoveChild2,
/* 29366*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29369*/            OPC_RecordChild0, // #2 = $Vm
/* 29370*/            OPC_CheckChild0Type, MVT::v2i32,
/* 29372*/            OPC_RecordChild1, // #3 = $lane
/* 29373*/            OPC_MoveChild1,
/* 29374*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29377*/            OPC_MoveParent,
/* 29378*/            OPC_CheckType, MVT::v2i32,
/* 29380*/            OPC_MoveParent,
/* 29381*/            OPC_CheckType, MVT::v2i64,
/* 29383*/            OPC_MoveParent,
/* 29384*/            OPC_CheckType, MVT::v2i64,
/* 29386*/            OPC_EmitConvertToTarget, 3,
/* 29388*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29391*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29394*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv2i32), 0,
                          MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1094:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQDMLSLslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 29406*/          /*Scope*/ 44, /*->29451*/
/* 29407*/            OPC_MoveChild1,
/* 29408*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29411*/            OPC_RecordChild0, // #1 = $Vm
/* 29412*/            OPC_CheckChild0Type, MVT::v2i32,
/* 29414*/            OPC_RecordChild1, // #2 = $lane
/* 29415*/            OPC_MoveChild1,
/* 29416*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29419*/            OPC_MoveParent,
/* 29420*/            OPC_CheckType, MVT::v2i32,
/* 29422*/            OPC_MoveParent,
/* 29423*/            OPC_RecordChild2, // #3 = $Vn
/* 29424*/            OPC_CheckChild2Type, MVT::v2i32,
/* 29426*/            OPC_CheckType, MVT::v2i64,
/* 29428*/            OPC_MoveParent,
/* 29429*/            OPC_CheckType, MVT::v2i64,
/* 29431*/            OPC_EmitConvertToTarget, 2,
/* 29433*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29436*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29439*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv2i32), 0,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1094:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 22
                      // Dst: (VQDMLSLslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 29451*/          /*Scope*/ 28, /*->29480*/
/* 29452*/            OPC_RecordChild1, // #1 = $Vn
/* 29453*/            OPC_CheckChild1Type, MVT::v2i32,
/* 29455*/            OPC_RecordChild2, // #2 = $Vm
/* 29456*/            OPC_CheckChild2Type, MVT::v2i32,
/* 29458*/            OPC_CheckType, MVT::v2i64,
/* 29460*/            OPC_MoveParent,
/* 29461*/            OPC_CheckType, MVT::v2i64,
/* 29463*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29466*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29469*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1094:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                      // Dst: (VQDMLSLv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 29480*/          0, /*End of Scope*/
/* 29481*/        /*Scope*/ 23, /*->29505*/
/* 29482*/          OPC_RecordChild2, // #1 = $Vm
/* 29483*/          OPC_CheckChild2Type, MVT::v2i64,
/* 29485*/          OPC_CheckType, MVT::v2i64,
/* 29487*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29489*/          OPC_EmitInteger, MVT::i32, 14, 
/* 29492*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29495*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1094:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                    // Dst: (VQSUBsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 29505*/        0, /*End of Scope*/
/* 29506*/      /*Scope*/ 68|128,1/*196*/, /*->29704*/
/* 29508*/        OPC_CheckChild1Type, MVT::v8i16,
/* 29510*/        OPC_Scope, 38|128,1/*166*/, /*->29679*/ // 2 children in Scope
/* 29513*/          OPC_MoveChild2,
/* 29514*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 29517*/          OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 29520*/          OPC_Scope, 62, /*->29584*/ // 3 children in Scope
/* 29522*/            OPC_RecordChild1, // #1 = $src2
/* 29523*/            OPC_CheckChild1Type, MVT::v8i16,
/* 29525*/            OPC_MoveChild2,
/* 29526*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29529*/            OPC_RecordChild0, // #2 = $src3
/* 29530*/            OPC_CheckChild0Type, MVT::v8i16,
/* 29532*/            OPC_RecordChild1, // #3 = $lane
/* 29533*/            OPC_MoveChild1,
/* 29534*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29537*/            OPC_MoveParent,
/* 29538*/            OPC_CheckType, MVT::v8i16,
/* 29540*/            OPC_MoveParent,
/* 29541*/            OPC_CheckType, MVT::v8i16,
/* 29543*/            OPC_MoveParent,
/* 29544*/            OPC_CheckType, MVT::v8i16,
/* 29546*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29548*/            OPC_EmitConvertToTarget, 3,
/* 29550*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 29553*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 29561*/            OPC_EmitConvertToTarget, 3,
/* 29563*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 29566*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29569*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29572*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1094:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 22
                      // Dst: (VQRDMLSHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 29584*/          /*Scope*/ 62, /*->29647*/
/* 29585*/            OPC_MoveChild1,
/* 29586*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29589*/            OPC_RecordChild0, // #1 = $src3
/* 29590*/            OPC_CheckChild0Type, MVT::v8i16,
/* 29592*/            OPC_RecordChild1, // #2 = $lane
/* 29593*/            OPC_MoveChild1,
/* 29594*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29597*/            OPC_MoveParent,
/* 29598*/            OPC_CheckType, MVT::v8i16,
/* 29600*/            OPC_MoveParent,
/* 29601*/            OPC_RecordChild2, // #3 = $src2
/* 29602*/            OPC_CheckChild2Type, MVT::v8i16,
/* 29604*/            OPC_CheckType, MVT::v8i16,
/* 29606*/            OPC_MoveParent,
/* 29607*/            OPC_CheckType, MVT::v8i16,
/* 29609*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29611*/            OPC_EmitConvertToTarget, 2,
/* 29613*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 29616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 29624*/            OPC_EmitConvertToTarget, 2,
/* 29626*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 29629*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29632*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29635*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1094:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 22
                      // Dst: (VQRDMLSHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 29647*/          /*Scope*/ 30, /*->29678*/
/* 29648*/            OPC_RecordChild1, // #1 = $Vn
/* 29649*/            OPC_CheckChild1Type, MVT::v8i16,
/* 29651*/            OPC_RecordChild2, // #2 = $Vm
/* 29652*/            OPC_CheckChild2Type, MVT::v8i16,
/* 29654*/            OPC_CheckType, MVT::v8i16,
/* 29656*/            OPC_MoveParent,
/* 29657*/            OPC_CheckType, MVT::v8i16,
/* 29659*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 29661*/            OPC_EmitInteger, MVT::i32, 14, 
/* 29664*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29667*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1094:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 16
                      // Dst: (VQRDMLSHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 29678*/          0, /*End of Scope*/
/* 29679*/        /*Scope*/ 23, /*->29703*/
/* 29680*/          OPC_RecordChild2, // #1 = $Vm
/* 29681*/          OPC_CheckChild2Type, MVT::v8i16,
/* 29683*/          OPC_CheckType, MVT::v8i16,
/* 29685*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29687*/          OPC_EmitInteger, MVT::i32, 14, 
/* 29690*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29693*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1094:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 29703*/        0, /*End of Scope*/
/* 29704*/      /*Scope*/ 25, /*->29730*/
/* 29705*/        OPC_CheckChild1Type, MVT::v8i8,
/* 29707*/        OPC_RecordChild2, // #1 = $Vm
/* 29708*/        OPC_CheckChild2Type, MVT::v8i8,
/* 29710*/        OPC_CheckType, MVT::v8i8,
/* 29712*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29714*/        OPC_EmitInteger, MVT::i32, 14, 
/* 29717*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29720*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1094:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 29730*/      /*Scope*/ 25, /*->29756*/
/* 29731*/        OPC_CheckChild1Type, MVT::v16i8,
/* 29733*/        OPC_RecordChild2, // #1 = $Vm
/* 29734*/        OPC_CheckChild2Type, MVT::v16i8,
/* 29736*/        OPC_CheckType, MVT::v16i8,
/* 29738*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29740*/        OPC_EmitInteger, MVT::i32, 14, 
/* 29743*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29746*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1094:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 29756*/      /*Scope*/ 25, /*->29782*/
/* 29757*/        OPC_CheckChild1Type, MVT::v1i64,
/* 29759*/        OPC_RecordChild2, // #1 = $Vm
/* 29760*/        OPC_CheckChild2Type, MVT::v1i64,
/* 29762*/        OPC_CheckType, MVT::v1i64,
/* 29764*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 29766*/        OPC_EmitInteger, MVT::i32, 14, 
/* 29769*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29772*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1094:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 29782*/      0, /*End of Scope*/
/* 29783*/    /*Scope*/ 19|128,1/*147*/, /*->29932*/
/* 29785*/      OPC_CheckChild0Integer, 119|128,7/*1015*/, 
/* 29788*/      OPC_RecordChild1, // #0 = $Vd
/* 29789*/      OPC_Scope, 64, /*->29855*/ // 2 children in Scope
/* 29791*/        OPC_CheckChild1Type, MVT::v2i32,
/* 29793*/        OPC_RecordChild2, // #1 = $Vn
/* 29794*/        OPC_CheckChild2Type, MVT::v8i8,
/* 29796*/        OPC_Scope, 39, /*->29837*/ // 2 children in Scope
/* 29798*/          OPC_MoveChild3,
/* 29799*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29802*/          OPC_MoveChild0,
/* 29803*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29806*/          OPC_RecordChild0, // #2 = $Vm
/* 29807*/          OPC_CheckChild0Type, MVT::v2i32,
/* 29809*/          OPC_RecordChild1, // #3 = $lane
/* 29810*/          OPC_MoveChild1,
/* 29811*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29814*/          OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 29816*/          OPC_MoveParent,
/* 29817*/          OPC_CheckType, MVT::v2i32,
/* 29819*/          OPC_MoveParent,
/* 29820*/          OPC_CheckType, MVT::v8i8,
/* 29822*/          OPC_MoveParent,
/* 29823*/          OPC_CheckType, MVT::v2i32,
/* 29825*/          OPC_EmitConvertToTarget, 3,
/* 29827*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTDI), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1015:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, (bitconvert:{ *:[v8i8] } (NEONvduplane:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane))) - Complexity = 18
                    // Dst: (VUDOTDI:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane)
/* 29837*/        /*Scope*/ 16, /*->29854*/
/* 29838*/          OPC_RecordChild3, // #2 = $Vm
/* 29839*/          OPC_CheckChild3Type, MVT::v8i8,
/* 29841*/          OPC_CheckType, MVT::v2i32,
/* 29843*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasDotProd())
/* 29845*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTD), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1015:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                    // Dst: (VUDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 29854*/        0, /*End of Scope*/
/* 29855*/      /*Scope*/ 75, /*->29931*/
/* 29856*/        OPC_CheckChild1Type, MVT::v4i32,
/* 29858*/        OPC_RecordChild2, // #1 = $Vn
/* 29859*/        OPC_CheckChild2Type, MVT::v16i8,
/* 29861*/        OPC_Scope, 50, /*->29913*/ // 2 children in Scope
/* 29863*/          OPC_MoveChild3,
/* 29864*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29867*/          OPC_MoveChild0,
/* 29868*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29871*/          OPC_RecordChild0, // #2 = $Vm
/* 29872*/          OPC_CheckChild0Type, MVT::v4i32,
/* 29874*/          OPC_RecordChild1, // #3 = $lane
/* 29875*/          OPC_MoveChild1,
/* 29876*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29879*/          OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 29881*/          OPC_MoveParent,
/* 29882*/          OPC_CheckType, MVT::v4i32,
/* 29884*/          OPC_MoveParent,
/* 29885*/          OPC_CheckType, MVT::v16i8,
/* 29887*/          OPC_MoveParent,
/* 29888*/          OPC_CheckType, MVT::v4i32,
/* 29890*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 29893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5
/* 29901*/          OPC_EmitConvertToTarget, 3,
/* 29903*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTQI), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1015:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (bitconvert:{ *:[v16i8] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane))) - Complexity = 18
                    // Dst: (VUDOTQI:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (EXTRACT_SUBREG:{ *:[f64] } QPR:{ *:[v4i32] }:$Vm, dsub_0:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane)
/* 29913*/        /*Scope*/ 16, /*->29930*/
/* 29914*/          OPC_RecordChild3, // #2 = $Vm
/* 29915*/          OPC_CheckChild3Type, MVT::v16i8,
/* 29917*/          OPC_CheckType, MVT::v4i32,
/* 29919*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasDotProd())
/* 29921*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTQ), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1015:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                    // Dst: (VUDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 29930*/        0, /*End of Scope*/
/* 29931*/      0, /*End of Scope*/
/* 29932*/    /*Scope*/ 19|128,1/*147*/, /*->30081*/
/* 29934*/      OPC_CheckChild0Integer, 108|128,7/*1004*/, 
/* 29937*/      OPC_RecordChild1, // #0 = $Vd
/* 29938*/      OPC_Scope, 64, /*->30004*/ // 2 children in Scope
/* 29940*/        OPC_CheckChild1Type, MVT::v2i32,
/* 29942*/        OPC_RecordChild2, // #1 = $Vn
/* 29943*/        OPC_CheckChild2Type, MVT::v8i8,
/* 29945*/        OPC_Scope, 39, /*->29986*/ // 2 children in Scope
/* 29947*/          OPC_MoveChild3,
/* 29948*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29951*/          OPC_MoveChild0,
/* 29952*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 29955*/          OPC_RecordChild0, // #2 = $Vm
/* 29956*/          OPC_CheckChild0Type, MVT::v2i32,
/* 29958*/          OPC_RecordChild1, // #3 = $lane
/* 29959*/          OPC_MoveChild1,
/* 29960*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29963*/          OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 29965*/          OPC_MoveParent,
/* 29966*/          OPC_CheckType, MVT::v2i32,
/* 29968*/          OPC_MoveParent,
/* 29969*/          OPC_CheckType, MVT::v8i8,
/* 29971*/          OPC_MoveParent,
/* 29972*/          OPC_CheckType, MVT::v2i32,
/* 29974*/          OPC_EmitConvertToTarget, 3,
/* 29976*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTDI), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1004:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, (bitconvert:{ *:[v8i8] } (NEONvduplane:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane))) - Complexity = 18
                    // Dst: (VSDOTDI:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane)
/* 29986*/        /*Scope*/ 16, /*->30003*/
/* 29987*/          OPC_RecordChild3, // #2 = $Vm
/* 29988*/          OPC_CheckChild3Type, MVT::v8i8,
/* 29990*/          OPC_CheckType, MVT::v2i32,
/* 29992*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasDotProd())
/* 29994*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTD), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1004:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                    // Dst: (VSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 30003*/        0, /*End of Scope*/
/* 30004*/      /*Scope*/ 75, /*->30080*/
/* 30005*/        OPC_CheckChild1Type, MVT::v4i32,
/* 30007*/        OPC_RecordChild2, // #1 = $Vn
/* 30008*/        OPC_CheckChild2Type, MVT::v16i8,
/* 30010*/        OPC_Scope, 50, /*->30062*/ // 2 children in Scope
/* 30012*/          OPC_MoveChild3,
/* 30013*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30016*/          OPC_MoveChild0,
/* 30017*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30020*/          OPC_RecordChild0, // #2 = $Vm
/* 30021*/          OPC_CheckChild0Type, MVT::v4i32,
/* 30023*/          OPC_RecordChild1, // #3 = $lane
/* 30024*/          OPC_MoveChild1,
/* 30025*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30028*/          OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 30030*/          OPC_MoveParent,
/* 30031*/          OPC_CheckType, MVT::v4i32,
/* 30033*/          OPC_MoveParent,
/* 30034*/          OPC_CheckType, MVT::v16i8,
/* 30036*/          OPC_MoveParent,
/* 30037*/          OPC_CheckType, MVT::v4i32,
/* 30039*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 30042*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5
/* 30050*/          OPC_EmitConvertToTarget, 3,
/* 30052*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTQI), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1004:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (bitconvert:{ *:[v16i8] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane))) - Complexity = 18
                    // Dst: (VSDOTQI:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (EXTRACT_SUBREG:{ *:[f64] } QPR:{ *:[v4i32] }:$Vm, dsub_0:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane)
/* 30062*/        /*Scope*/ 16, /*->30079*/
/* 30063*/          OPC_RecordChild3, // #2 = $Vm
/* 30064*/          OPC_CheckChild3Type, MVT::v16i8,
/* 30066*/          OPC_CheckType, MVT::v4i32,
/* 30068*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasDotProd())
/* 30070*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTQ), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1004:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                    // Dst: (VSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 30079*/        0, /*End of Scope*/
/* 30080*/      0, /*End of Scope*/
/* 30081*/    /*Scope*/ 17|128,5/*657*/, /*->30740*/
/* 30083*/      OPC_CheckChild0Integer, 52|128,8/*1076*/, 
/* 30086*/      OPC_Scope, 43|128,1/*171*/, /*->30260*/ // 5 children in Scope
/* 30089*/        OPC_RecordChild1, // #0 = $Vn
/* 30090*/        OPC_Scope, 41, /*->30133*/ // 4 children in Scope
/* 30092*/          OPC_CheckChild1Type, MVT::v4i16,
/* 30094*/          OPC_MoveChild2,
/* 30095*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30098*/          OPC_RecordChild0, // #1 = $Vm
/* 30099*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30101*/          OPC_RecordChild1, // #2 = $lane
/* 30102*/          OPC_MoveChild1,
/* 30103*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30106*/          OPC_MoveParent,
/* 30107*/          OPC_CheckType, MVT::v4i16,
/* 30109*/          OPC_MoveParent,
/* 30110*/          OPC_CheckType, MVT::v4i16,
/* 30112*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30114*/          OPC_EmitConvertToTarget, 2,
/* 30116*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30119*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30122*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1076:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30133*/        /*Scope*/ 41, /*->30175*/
/* 30134*/          OPC_CheckChild1Type, MVT::v2i32,
/* 30136*/          OPC_MoveChild2,
/* 30137*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30140*/          OPC_RecordChild0, // #1 = $Vm
/* 30141*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30143*/          OPC_RecordChild1, // #2 = $lane
/* 30144*/          OPC_MoveChild1,
/* 30145*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30148*/          OPC_MoveParent,
/* 30149*/          OPC_CheckType, MVT::v2i32,
/* 30151*/          OPC_MoveParent,
/* 30152*/          OPC_CheckType, MVT::v2i32,
/* 30154*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30156*/          OPC_EmitConvertToTarget, 2,
/* 30158*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30161*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30164*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1076:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30175*/        /*Scope*/ 41, /*->30217*/
/* 30176*/          OPC_CheckChild1Type, MVT::v8i16,
/* 30178*/          OPC_MoveChild2,
/* 30179*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30182*/          OPC_RecordChild0, // #1 = $Vm
/* 30183*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30185*/          OPC_RecordChild1, // #2 = $lane
/* 30186*/          OPC_MoveChild1,
/* 30187*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30190*/          OPC_MoveParent,
/* 30191*/          OPC_CheckType, MVT::v8i16,
/* 30193*/          OPC_MoveParent,
/* 30194*/          OPC_CheckType, MVT::v8i16,
/* 30196*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30198*/          OPC_EmitConvertToTarget, 2,
/* 30200*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30203*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30206*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30217*/        /*Scope*/ 41, /*->30259*/
/* 30218*/          OPC_CheckChild1Type, MVT::v4i32,
/* 30220*/          OPC_MoveChild2,
/* 30221*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30224*/          OPC_RecordChild0, // #1 = $Vm
/* 30225*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30227*/          OPC_RecordChild1, // #2 = $lane
/* 30228*/          OPC_MoveChild1,
/* 30229*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30232*/          OPC_MoveParent,
/* 30233*/          OPC_CheckType, MVT::v4i32,
/* 30235*/          OPC_MoveParent,
/* 30236*/          OPC_CheckType, MVT::v4i32,
/* 30238*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30240*/          OPC_EmitConvertToTarget, 2,
/* 30242*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30245*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30248*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30259*/        0, /*End of Scope*/
/* 30260*/      /*Scope*/ 17|128,1/*145*/, /*->30407*/
/* 30262*/        OPC_MoveChild1,
/* 30263*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30266*/        OPC_RecordChild0, // #0 = $Vm
/* 30267*/        OPC_Scope, 68, /*->30337*/ // 2 children in Scope
/* 30269*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30271*/          OPC_RecordChild1, // #1 = $lane
/* 30272*/          OPC_MoveChild1,
/* 30273*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30276*/          OPC_MoveParent,
/* 30277*/          OPC_SwitchType /*2 cases */, 27, MVT::v4i16,// ->30307
/* 30280*/            OPC_MoveParent,
/* 30281*/            OPC_RecordChild2, // #2 = $Vn
/* 30282*/            OPC_CheckChild2Type, MVT::v4i16,
/* 30284*/            OPC_CheckType, MVT::v4i16,
/* 30286*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30288*/            OPC_EmitConvertToTarget, 1,
/* 30290*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30293*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30296*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn) - Complexity = 14
                      // Dst: (VQDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30307*/          /*SwitchType*/ 27, MVT::v8i16,// ->30336
/* 30309*/            OPC_MoveParent,
/* 30310*/            OPC_RecordChild2, // #2 = $Vn
/* 30311*/            OPC_CheckChild2Type, MVT::v8i16,
/* 30313*/            OPC_CheckType, MVT::v8i16,
/* 30315*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30317*/            OPC_EmitConvertToTarget, 1,
/* 30319*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30322*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30325*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn) - Complexity = 14
                      // Dst: (VQDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30336*/          0, // EndSwitchType
/* 30337*/        /*Scope*/ 68, /*->30406*/
/* 30338*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30340*/          OPC_RecordChild1, // #1 = $lane
/* 30341*/          OPC_MoveChild1,
/* 30342*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30345*/          OPC_MoveParent,
/* 30346*/          OPC_SwitchType /*2 cases */, 27, MVT::v2i32,// ->30376
/* 30349*/            OPC_MoveParent,
/* 30350*/            OPC_RecordChild2, // #2 = $Vn
/* 30351*/            OPC_CheckChild2Type, MVT::v2i32,
/* 30353*/            OPC_CheckType, MVT::v2i32,
/* 30355*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30357*/            OPC_EmitConvertToTarget, 1,
/* 30359*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30362*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30365*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn) - Complexity = 14
                      // Dst: (VQDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30376*/          /*SwitchType*/ 27, MVT::v4i32,// ->30405
/* 30378*/            OPC_MoveParent,
/* 30379*/            OPC_RecordChild2, // #2 = $Vn
/* 30380*/            OPC_CheckChild2Type, MVT::v4i32,
/* 30382*/            OPC_CheckType, MVT::v4i32,
/* 30384*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30386*/            OPC_EmitConvertToTarget, 1,
/* 30388*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30391*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30394*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn) - Complexity = 14
                      // Dst: (VQDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30405*/          0, // EndSwitchType
/* 30406*/        0, /*End of Scope*/
/* 30407*/      /*Scope*/ 115, /*->30523*/
/* 30408*/        OPC_RecordChild1, // #0 = $src1
/* 30409*/        OPC_Scope, 55, /*->30466*/ // 2 children in Scope
/* 30411*/          OPC_CheckChild1Type, MVT::v8i16,
/* 30413*/          OPC_MoveChild2,
/* 30414*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30417*/          OPC_RecordChild0, // #1 = $src2
/* 30418*/          OPC_CheckChild0Type, MVT::v8i16,
/* 30420*/          OPC_RecordChild1, // #2 = $lane
/* 30421*/          OPC_MoveChild1,
/* 30422*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30425*/          OPC_MoveParent,
/* 30426*/          OPC_CheckType, MVT::v8i16,
/* 30428*/          OPC_MoveParent,
/* 30429*/          OPC_CheckType, MVT::v8i16,
/* 30431*/          OPC_EmitConvertToTarget, 2,
/* 30433*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 30436*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 30444*/          OPC_EmitConvertToTarget, 2,
/* 30446*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 30449*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30452*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30455*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 30466*/        /*Scope*/ 55, /*->30522*/
/* 30467*/          OPC_CheckChild1Type, MVT::v4i32,
/* 30469*/          OPC_MoveChild2,
/* 30470*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30473*/          OPC_RecordChild0, // #1 = $src2
/* 30474*/          OPC_CheckChild0Type, MVT::v4i32,
/* 30476*/          OPC_RecordChild1, // #2 = $lane
/* 30477*/          OPC_MoveChild1,
/* 30478*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30481*/          OPC_MoveParent,
/* 30482*/          OPC_CheckType, MVT::v4i32,
/* 30484*/          OPC_MoveParent,
/* 30485*/          OPC_CheckType, MVT::v4i32,
/* 30487*/          OPC_EmitConvertToTarget, 2,
/* 30489*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 30492*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 30500*/          OPC_EmitConvertToTarget, 2,
/* 30502*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 30505*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30508*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30511*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 30522*/        0, /*End of Scope*/
/* 30523*/      /*Scope*/ 111, /*->30635*/
/* 30524*/        OPC_MoveChild1,
/* 30525*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30528*/        OPC_RecordChild0, // #0 = $src2
/* 30529*/        OPC_Scope, 51, /*->30582*/ // 2 children in Scope
/* 30531*/          OPC_CheckChild0Type, MVT::v8i16,
/* 30533*/          OPC_RecordChild1, // #1 = $lane
/* 30534*/          OPC_MoveChild1,
/* 30535*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30538*/          OPC_MoveParent,
/* 30539*/          OPC_CheckType, MVT::v8i16,
/* 30541*/          OPC_MoveParent,
/* 30542*/          OPC_RecordChild2, // #2 = $src1
/* 30543*/          OPC_CheckChild2Type, MVT::v8i16,
/* 30545*/          OPC_CheckType, MVT::v8i16,
/* 30547*/          OPC_EmitConvertToTarget, 1,
/* 30549*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 30552*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 30560*/          OPC_EmitConvertToTarget, 1,
/* 30562*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 30565*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30568*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30571*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VQDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 30582*/        /*Scope*/ 51, /*->30634*/
/* 30583*/          OPC_CheckChild0Type, MVT::v4i32,
/* 30585*/          OPC_RecordChild1, // #1 = $lane
/* 30586*/          OPC_MoveChild1,
/* 30587*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30590*/          OPC_MoveParent,
/* 30591*/          OPC_CheckType, MVT::v4i32,
/* 30593*/          OPC_MoveParent,
/* 30594*/          OPC_RecordChild2, // #2 = $src1
/* 30595*/          OPC_CheckChild2Type, MVT::v4i32,
/* 30597*/          OPC_CheckType, MVT::v4i32,
/* 30599*/          OPC_EmitConvertToTarget, 1,
/* 30601*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 30604*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 30612*/          OPC_EmitConvertToTarget, 1,
/* 30614*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 30617*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30620*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30623*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VQDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 30634*/        0, /*End of Scope*/
/* 30635*/      /*Scope*/ 103, /*->30739*/
/* 30636*/        OPC_RecordChild1, // #0 = $Vn
/* 30637*/        OPC_SwitchType /*4 cases */, 23, MVT::v4i16,// ->30663
/* 30640*/          OPC_CheckChild1Type, MVT::v4i16,
/* 30642*/          OPC_RecordChild2, // #1 = $Vm
/* 30643*/          OPC_CheckChild2Type, MVT::v4i16,
/* 30645*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30647*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30650*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30653*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1076:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 30663*/        /*SwitchType*/ 23, MVT::v2i32,// ->30688
/* 30665*/          OPC_CheckChild1Type, MVT::v2i32,
/* 30667*/          OPC_RecordChild2, // #1 = $Vm
/* 30668*/          OPC_CheckChild2Type, MVT::v2i32,
/* 30670*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30672*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30675*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30678*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1076:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 30688*/        /*SwitchType*/ 23, MVT::v8i16,// ->30713
/* 30690*/          OPC_CheckChild1Type, MVT::v8i16,
/* 30692*/          OPC_RecordChild2, // #1 = $Vm
/* 30693*/          OPC_CheckChild2Type, MVT::v8i16,
/* 30695*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30697*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30700*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30703*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 30713*/        /*SwitchType*/ 23, MVT::v4i32,// ->30738
/* 30715*/          OPC_CheckChild1Type, MVT::v4i32,
/* 30717*/          OPC_RecordChild2, // #1 = $Vm
/* 30718*/          OPC_CheckChild2Type, MVT::v4i32,
/* 30720*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30722*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30725*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30728*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 30738*/        0, // EndSwitchType
/* 30739*/      0, /*End of Scope*/
/* 30740*/    /*Scope*/ 17|128,5/*657*/, /*->31399*/
/* 30742*/      OPC_CheckChild0Integer, 58|128,8/*1082*/, 
/* 30745*/      OPC_Scope, 43|128,1/*171*/, /*->30919*/ // 5 children in Scope
/* 30748*/        OPC_RecordChild1, // #0 = $Vn
/* 30749*/        OPC_Scope, 41, /*->30792*/ // 4 children in Scope
/* 30751*/          OPC_CheckChild1Type, MVT::v4i16,
/* 30753*/          OPC_MoveChild2,
/* 30754*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30757*/          OPC_RecordChild0, // #1 = $Vm
/* 30758*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30760*/          OPC_RecordChild1, // #2 = $lane
/* 30761*/          OPC_MoveChild1,
/* 30762*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30765*/          OPC_MoveParent,
/* 30766*/          OPC_CheckType, MVT::v4i16,
/* 30768*/          OPC_MoveParent,
/* 30769*/          OPC_CheckType, MVT::v4i16,
/* 30771*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30773*/          OPC_EmitConvertToTarget, 2,
/* 30775*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30778*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30781*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30792*/        /*Scope*/ 41, /*->30834*/
/* 30793*/          OPC_CheckChild1Type, MVT::v2i32,
/* 30795*/          OPC_MoveChild2,
/* 30796*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30799*/          OPC_RecordChild0, // #1 = $Vm
/* 30800*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30802*/          OPC_RecordChild1, // #2 = $lane
/* 30803*/          OPC_MoveChild1,
/* 30804*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30807*/          OPC_MoveParent,
/* 30808*/          OPC_CheckType, MVT::v2i32,
/* 30810*/          OPC_MoveParent,
/* 30811*/          OPC_CheckType, MVT::v2i32,
/* 30813*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30815*/          OPC_EmitConvertToTarget, 2,
/* 30817*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30820*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30823*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30834*/        /*Scope*/ 41, /*->30876*/
/* 30835*/          OPC_CheckChild1Type, MVT::v8i16,
/* 30837*/          OPC_MoveChild2,
/* 30838*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30841*/          OPC_RecordChild0, // #1 = $Vm
/* 30842*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30844*/          OPC_RecordChild1, // #2 = $lane
/* 30845*/          OPC_MoveChild1,
/* 30846*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30849*/          OPC_MoveParent,
/* 30850*/          OPC_CheckType, MVT::v8i16,
/* 30852*/          OPC_MoveParent,
/* 30853*/          OPC_CheckType, MVT::v8i16,
/* 30855*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30857*/          OPC_EmitConvertToTarget, 2,
/* 30859*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30862*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30865*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30876*/        /*Scope*/ 41, /*->30918*/
/* 30877*/          OPC_CheckChild1Type, MVT::v4i32,
/* 30879*/          OPC_MoveChild2,
/* 30880*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30883*/          OPC_RecordChild0, // #1 = $Vm
/* 30884*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30886*/          OPC_RecordChild1, // #2 = $lane
/* 30887*/          OPC_MoveChild1,
/* 30888*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30891*/          OPC_MoveParent,
/* 30892*/          OPC_CheckType, MVT::v4i32,
/* 30894*/          OPC_MoveParent,
/* 30895*/          OPC_CheckType, MVT::v4i32,
/* 30897*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30899*/          OPC_EmitConvertToTarget, 2,
/* 30901*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30904*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30907*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30918*/        0, /*End of Scope*/
/* 30919*/      /*Scope*/ 17|128,1/*145*/, /*->31066*/
/* 30921*/        OPC_MoveChild1,
/* 30922*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 30925*/        OPC_RecordChild0, // #0 = $Vm
/* 30926*/        OPC_Scope, 68, /*->30996*/ // 2 children in Scope
/* 30928*/          OPC_CheckChild0Type, MVT::v4i16,
/* 30930*/          OPC_RecordChild1, // #1 = $lane
/* 30931*/          OPC_MoveChild1,
/* 30932*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30935*/          OPC_MoveParent,
/* 30936*/          OPC_SwitchType /*2 cases */, 27, MVT::v4i16,// ->30966
/* 30939*/            OPC_MoveParent,
/* 30940*/            OPC_RecordChild2, // #2 = $Vn
/* 30941*/            OPC_CheckChild2Type, MVT::v4i16,
/* 30943*/            OPC_CheckType, MVT::v4i16,
/* 30945*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30947*/            OPC_EmitConvertToTarget, 1,
/* 30949*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30952*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30955*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn) - Complexity = 14
                      // Dst: (VQRDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30966*/          /*SwitchType*/ 27, MVT::v8i16,// ->30995
/* 30968*/            OPC_MoveParent,
/* 30969*/            OPC_RecordChild2, // #2 = $Vn
/* 30970*/            OPC_CheckChild2Type, MVT::v8i16,
/* 30972*/            OPC_CheckType, MVT::v8i16,
/* 30974*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 30976*/            OPC_EmitConvertToTarget, 1,
/* 30978*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30981*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30984*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn) - Complexity = 14
                      // Dst: (VQRDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 30995*/          0, // EndSwitchType
/* 30996*/        /*Scope*/ 68, /*->31065*/
/* 30997*/          OPC_CheckChild0Type, MVT::v2i32,
/* 30999*/          OPC_RecordChild1, // #1 = $lane
/* 31000*/          OPC_MoveChild1,
/* 31001*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31004*/          OPC_MoveParent,
/* 31005*/          OPC_SwitchType /*2 cases */, 27, MVT::v2i32,// ->31035
/* 31008*/            OPC_MoveParent,
/* 31009*/            OPC_RecordChild2, // #2 = $Vn
/* 31010*/            OPC_CheckChild2Type, MVT::v2i32,
/* 31012*/            OPC_CheckType, MVT::v2i32,
/* 31014*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31016*/            OPC_EmitConvertToTarget, 1,
/* 31018*/            OPC_EmitInteger, MVT::i32, 14, 
/* 31021*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31024*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn) - Complexity = 14
                      // Dst: (VQRDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31035*/          /*SwitchType*/ 27, MVT::v4i32,// ->31064
/* 31037*/            OPC_MoveParent,
/* 31038*/            OPC_RecordChild2, // #2 = $Vn
/* 31039*/            OPC_CheckChild2Type, MVT::v4i32,
/* 31041*/            OPC_CheckType, MVT::v4i32,
/* 31043*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31045*/            OPC_EmitConvertToTarget, 1,
/* 31047*/            OPC_EmitInteger, MVT::i32, 14, 
/* 31050*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31053*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn) - Complexity = 14
                      // Dst: (VQRDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31064*/          0, // EndSwitchType
/* 31065*/        0, /*End of Scope*/
/* 31066*/      /*Scope*/ 115, /*->31182*/
/* 31067*/        OPC_RecordChild1, // #0 = $src1
/* 31068*/        OPC_Scope, 55, /*->31125*/ // 2 children in Scope
/* 31070*/          OPC_CheckChild1Type, MVT::v8i16,
/* 31072*/          OPC_MoveChild2,
/* 31073*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31076*/          OPC_RecordChild0, // #1 = $src2
/* 31077*/          OPC_CheckChild0Type, MVT::v8i16,
/* 31079*/          OPC_RecordChild1, // #2 = $lane
/* 31080*/          OPC_MoveChild1,
/* 31081*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31084*/          OPC_MoveParent,
/* 31085*/          OPC_CheckType, MVT::v8i16,
/* 31087*/          OPC_MoveParent,
/* 31088*/          OPC_CheckType, MVT::v8i16,
/* 31090*/          OPC_EmitConvertToTarget, 2,
/* 31092*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 31095*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 31103*/          OPC_EmitConvertToTarget, 2,
/* 31105*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 31108*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31111*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31114*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 31125*/        /*Scope*/ 55, /*->31181*/
/* 31126*/          OPC_CheckChild1Type, MVT::v4i32,
/* 31128*/          OPC_MoveChild2,
/* 31129*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31132*/          OPC_RecordChild0, // #1 = $src2
/* 31133*/          OPC_CheckChild0Type, MVT::v4i32,
/* 31135*/          OPC_RecordChild1, // #2 = $lane
/* 31136*/          OPC_MoveChild1,
/* 31137*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31140*/          OPC_MoveParent,
/* 31141*/          OPC_CheckType, MVT::v4i32,
/* 31143*/          OPC_MoveParent,
/* 31144*/          OPC_CheckType, MVT::v4i32,
/* 31146*/          OPC_EmitConvertToTarget, 2,
/* 31148*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 31151*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 31159*/          OPC_EmitConvertToTarget, 2,
/* 31161*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 31164*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31167*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31170*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 31181*/        0, /*End of Scope*/
/* 31182*/      /*Scope*/ 111, /*->31294*/
/* 31183*/        OPC_MoveChild1,
/* 31184*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31187*/        OPC_RecordChild0, // #0 = $src2
/* 31188*/        OPC_Scope, 51, /*->31241*/ // 2 children in Scope
/* 31190*/          OPC_CheckChild0Type, MVT::v8i16,
/* 31192*/          OPC_RecordChild1, // #1 = $lane
/* 31193*/          OPC_MoveChild1,
/* 31194*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31197*/          OPC_MoveParent,
/* 31198*/          OPC_CheckType, MVT::v8i16,
/* 31200*/          OPC_MoveParent,
/* 31201*/          OPC_RecordChild2, // #2 = $src1
/* 31202*/          OPC_CheckChild2Type, MVT::v8i16,
/* 31204*/          OPC_CheckType, MVT::v8i16,
/* 31206*/          OPC_EmitConvertToTarget, 1,
/* 31208*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 31211*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 31219*/          OPC_EmitConvertToTarget, 1,
/* 31221*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 31224*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31227*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31230*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VQRDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 31241*/        /*Scope*/ 51, /*->31293*/
/* 31242*/          OPC_CheckChild0Type, MVT::v4i32,
/* 31244*/          OPC_RecordChild1, // #1 = $lane
/* 31245*/          OPC_MoveChild1,
/* 31246*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31249*/          OPC_MoveParent,
/* 31250*/          OPC_CheckType, MVT::v4i32,
/* 31252*/          OPC_MoveParent,
/* 31253*/          OPC_RecordChild2, // #2 = $src1
/* 31254*/          OPC_CheckChild2Type, MVT::v4i32,
/* 31256*/          OPC_CheckType, MVT::v4i32,
/* 31258*/          OPC_EmitConvertToTarget, 1,
/* 31260*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 31263*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 31271*/          OPC_EmitConvertToTarget, 1,
/* 31273*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 31276*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31279*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31282*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VQRDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 31293*/        0, /*End of Scope*/
/* 31294*/      /*Scope*/ 103, /*->31398*/
/* 31295*/        OPC_RecordChild1, // #0 = $Vn
/* 31296*/        OPC_SwitchType /*4 cases */, 23, MVT::v4i16,// ->31322
/* 31299*/          OPC_CheckChild1Type, MVT::v4i16,
/* 31301*/          OPC_RecordChild2, // #1 = $Vm
/* 31302*/          OPC_CheckChild2Type, MVT::v4i16,
/* 31304*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31306*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31309*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31312*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1082:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 31322*/        /*SwitchType*/ 23, MVT::v2i32,// ->31347
/* 31324*/          OPC_CheckChild1Type, MVT::v2i32,
/* 31326*/          OPC_RecordChild2, // #1 = $Vm
/* 31327*/          OPC_CheckChild2Type, MVT::v2i32,
/* 31329*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31331*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31334*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31337*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1082:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 31347*/        /*SwitchType*/ 23, MVT::v8i16,// ->31372
/* 31349*/          OPC_CheckChild1Type, MVT::v8i16,
/* 31351*/          OPC_RecordChild2, // #1 = $Vm
/* 31352*/          OPC_CheckChild2Type, MVT::v8i16,
/* 31354*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31356*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31359*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31362*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1082:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 31372*/        /*SwitchType*/ 23, MVT::v4i32,// ->31397
/* 31374*/          OPC_CheckChild1Type, MVT::v4i32,
/* 31376*/          OPC_RecordChild2, // #1 = $Vm
/* 31377*/          OPC_CheckChild2Type, MVT::v4i32,
/* 31379*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31381*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31384*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31387*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1082:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 31397*/        0, // EndSwitchType
/* 31398*/      0, /*End of Scope*/
/* 31399*/    /*Scope*/ 103|128,1/*231*/, /*->31632*/
/* 31401*/      OPC_CheckChild0Integer, 53|128,8/*1077*/, 
/* 31404*/      OPC_Scope, 87, /*->31493*/ // 3 children in Scope
/* 31406*/        OPC_RecordChild1, // #0 = $Vn
/* 31407*/        OPC_Scope, 41, /*->31450*/ // 2 children in Scope
/* 31409*/          OPC_CheckChild1Type, MVT::v4i16,
/* 31411*/          OPC_MoveChild2,
/* 31412*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31415*/          OPC_RecordChild0, // #1 = $Vm
/* 31416*/          OPC_CheckChild0Type, MVT::v4i16,
/* 31418*/          OPC_RecordChild1, // #2 = $lane
/* 31419*/          OPC_MoveChild1,
/* 31420*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31423*/          OPC_MoveParent,
/* 31424*/          OPC_CheckType, MVT::v4i16,
/* 31426*/          OPC_MoveParent,
/* 31427*/          OPC_CheckType, MVT::v4i32,
/* 31429*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31431*/          OPC_EmitConvertToTarget, 2,
/* 31433*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31436*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31439*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv4i16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULLslv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31450*/        /*Scope*/ 41, /*->31492*/
/* 31451*/          OPC_CheckChild1Type, MVT::v2i32,
/* 31453*/          OPC_MoveChild2,
/* 31454*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31457*/          OPC_RecordChild0, // #1 = $Vm
/* 31458*/          OPC_CheckChild0Type, MVT::v2i32,
/* 31460*/          OPC_RecordChild1, // #2 = $lane
/* 31461*/          OPC_MoveChild1,
/* 31462*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31465*/          OPC_MoveParent,
/* 31466*/          OPC_CheckType, MVT::v2i32,
/* 31468*/          OPC_MoveParent,
/* 31469*/          OPC_CheckType, MVT::v2i64,
/* 31471*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31473*/          OPC_EmitConvertToTarget, 2,
/* 31475*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31478*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31481*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv2i32), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULLslv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31492*/        0, /*End of Scope*/
/* 31493*/      /*Scope*/ 83, /*->31577*/
/* 31494*/        OPC_MoveChild1,
/* 31495*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 31498*/        OPC_RecordChild0, // #0 = $Vm
/* 31499*/        OPC_Scope, 37, /*->31538*/ // 2 children in Scope
/* 31501*/          OPC_CheckChild0Type, MVT::v4i16,
/* 31503*/          OPC_RecordChild1, // #1 = $lane
/* 31504*/          OPC_MoveChild1,
/* 31505*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31508*/          OPC_MoveParent,
/* 31509*/          OPC_CheckType, MVT::v4i16,
/* 31511*/          OPC_MoveParent,
/* 31512*/          OPC_RecordChild2, // #2 = $Vn
/* 31513*/          OPC_CheckChild2Type, MVT::v4i16,
/* 31515*/          OPC_CheckType, MVT::v4i32,
/* 31517*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31519*/          OPC_EmitConvertToTarget, 1,
/* 31521*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31524*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31527*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv4i16), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn) - Complexity = 14
                    // Dst: (VQDMULLslv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31538*/        /*Scope*/ 37, /*->31576*/
/* 31539*/          OPC_CheckChild0Type, MVT::v2i32,
/* 31541*/          OPC_RecordChild1, // #1 = $lane
/* 31542*/          OPC_MoveChild1,
/* 31543*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31546*/          OPC_MoveParent,
/* 31547*/          OPC_CheckType, MVT::v2i32,
/* 31549*/          OPC_MoveParent,
/* 31550*/          OPC_RecordChild2, // #2 = $Vn
/* 31551*/          OPC_CheckChild2Type, MVT::v2i32,
/* 31553*/          OPC_CheckType, MVT::v2i64,
/* 31555*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31557*/          OPC_EmitConvertToTarget, 1,
/* 31559*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31562*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31565*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv2i32), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn) - Complexity = 14
                    // Dst: (VQDMULLslv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 31576*/        0, /*End of Scope*/
/* 31577*/      /*Scope*/ 53, /*->31631*/
/* 31578*/        OPC_RecordChild1, // #0 = $Vn
/* 31579*/        OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->31605
/* 31582*/          OPC_CheckChild1Type, MVT::v4i16,
/* 31584*/          OPC_RecordChild2, // #1 = $Vm
/* 31585*/          OPC_CheckChild2Type, MVT::v4i16,
/* 31587*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31589*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31592*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31595*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULLv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 31605*/        /*SwitchType*/ 23, MVT::v2i64,// ->31630
/* 31607*/          OPC_CheckChild1Type, MVT::v2i32,
/* 31609*/          OPC_RecordChild2, // #1 = $Vm
/* 31610*/          OPC_CheckChild2Type, MVT::v2i32,
/* 31612*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31614*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31617*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31620*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULLv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 31630*/        0, // EndSwitchType
/* 31631*/      0, /*End of Scope*/
/* 31632*/    /*Scope*/ 2|128,1/*130*/, /*->31764*/
/* 31634*/      OPC_CheckChild0Integer, 1|128,8/*1025*/, 
/* 31637*/      OPC_RecordChild1, // #0 = $Vm
/* 31638*/      OPC_Scope, 30, /*->31670*/ // 4 children in Scope
/* 31640*/        OPC_CheckChild1Type, MVT::v2f32,
/* 31642*/        OPC_RecordChild2, // #1 = $SIMM
/* 31643*/        OPC_MoveChild2,
/* 31644*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31647*/        OPC_MoveParent,
/* 31648*/        OPC_CheckType, MVT::v2i32,
/* 31650*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31652*/        OPC_EmitConvertToTarget, 1,
/* 31654*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31657*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31660*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xsd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1025:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xsd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31670*/      /*Scope*/ 30, /*->31701*/
/* 31671*/        OPC_CheckChild1Type, MVT::v4f16,
/* 31673*/        OPC_RecordChild2, // #1 = $SIMM
/* 31674*/        OPC_MoveChild2,
/* 31675*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31678*/        OPC_MoveParent,
/* 31679*/        OPC_CheckType, MVT::v4i16,
/* 31681*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 31683*/        OPC_EmitConvertToTarget, 1,
/* 31685*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31688*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31691*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xsd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1025:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xsd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31701*/      /*Scope*/ 30, /*->31732*/
/* 31702*/        OPC_CheckChild1Type, MVT::v4f32,
/* 31704*/        OPC_RecordChild2, // #1 = $SIMM
/* 31705*/        OPC_MoveChild2,
/* 31706*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31709*/        OPC_MoveParent,
/* 31710*/        OPC_CheckType, MVT::v4i32,
/* 31712*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31714*/        OPC_EmitConvertToTarget, 1,
/* 31716*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31719*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31722*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xsq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1025:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xsq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31732*/      /*Scope*/ 30, /*->31763*/
/* 31733*/        OPC_CheckChild1Type, MVT::v8f16,
/* 31735*/        OPC_RecordChild2, // #1 = $SIMM
/* 31736*/        OPC_MoveChild2,
/* 31737*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31740*/        OPC_MoveParent,
/* 31741*/        OPC_CheckType, MVT::v8i16,
/* 31743*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 31745*/        OPC_EmitConvertToTarget, 1,
/* 31747*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31750*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31753*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xsq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1025:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xsq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31763*/      0, /*End of Scope*/
/* 31764*/    /*Scope*/ 2|128,1/*130*/, /*->31896*/
/* 31766*/      OPC_CheckChild0Integer, 2|128,8/*1026*/, 
/* 31769*/      OPC_RecordChild1, // #0 = $Vm
/* 31770*/      OPC_Scope, 30, /*->31802*/ // 4 children in Scope
/* 31772*/        OPC_CheckChild1Type, MVT::v2f32,
/* 31774*/        OPC_RecordChild2, // #1 = $SIMM
/* 31775*/        OPC_MoveChild2,
/* 31776*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31779*/        OPC_MoveParent,
/* 31780*/        OPC_CheckType, MVT::v2i32,
/* 31782*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31784*/        OPC_EmitConvertToTarget, 1,
/* 31786*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31792*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xud), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1026:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31802*/      /*Scope*/ 30, /*->31833*/
/* 31803*/        OPC_CheckChild1Type, MVT::v4f16,
/* 31805*/        OPC_RecordChild2, // #1 = $SIMM
/* 31806*/        OPC_MoveChild2,
/* 31807*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31810*/        OPC_MoveParent,
/* 31811*/        OPC_CheckType, MVT::v4i16,
/* 31813*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 31815*/        OPC_EmitConvertToTarget, 1,
/* 31817*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31820*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31823*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xud), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1026:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31833*/      /*Scope*/ 30, /*->31864*/
/* 31834*/        OPC_CheckChild1Type, MVT::v4f32,
/* 31836*/        OPC_RecordChild2, // #1 = $SIMM
/* 31837*/        OPC_MoveChild2,
/* 31838*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31841*/        OPC_MoveParent,
/* 31842*/        OPC_CheckType, MVT::v4i32,
/* 31844*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31846*/        OPC_EmitConvertToTarget, 1,
/* 31848*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31851*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31854*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xuq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1026:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xuq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31864*/      /*Scope*/ 30, /*->31895*/
/* 31865*/        OPC_CheckChild1Type, MVT::v8f16,
/* 31867*/        OPC_RecordChild2, // #1 = $SIMM
/* 31868*/        OPC_MoveChild2,
/* 31869*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31872*/        OPC_MoveParent,
/* 31873*/        OPC_CheckType, MVT::v8i16,
/* 31875*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 31877*/        OPC_EmitConvertToTarget, 1,
/* 31879*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31882*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31885*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xuq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1026:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xuq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 31895*/      0, /*End of Scope*/
/* 31896*/    /*Scope*/ 28|128,1/*156*/, /*->32054*/
/* 31898*/      OPC_CheckChild0Integer, 13|128,8/*1037*/, 
/* 31901*/      OPC_RecordChild1, // #0 = $Vn
/* 31902*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->31928
/* 31905*/        OPC_CheckChild1Type, MVT::v4i16,
/* 31907*/        OPC_RecordChild2, // #1 = $Vm
/* 31908*/        OPC_CheckChild2Type, MVT::v4i16,
/* 31910*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31912*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31915*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31918*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1037:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 31928*/      /*SwitchType*/ 23, MVT::v2i32,// ->31953
/* 31930*/        OPC_CheckChild1Type, MVT::v2i32,
/* 31932*/        OPC_RecordChild2, // #1 = $Vm
/* 31933*/        OPC_CheckChild2Type, MVT::v2i32,
/* 31935*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31937*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31940*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31943*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1037:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 31953*/      /*SwitchType*/ 23, MVT::v8i16,// ->31978
/* 31955*/        OPC_CheckChild1Type, MVT::v8i16,
/* 31957*/        OPC_RecordChild2, // #1 = $Vm
/* 31958*/        OPC_CheckChild2Type, MVT::v8i16,
/* 31960*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31962*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31965*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31968*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1037:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 31978*/      /*SwitchType*/ 23, MVT::v4i32,// ->32003
/* 31980*/        OPC_CheckChild1Type, MVT::v4i32,
/* 31982*/        OPC_RecordChild2, // #1 = $Vm
/* 31983*/        OPC_CheckChild2Type, MVT::v4i32,
/* 31985*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 31987*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31990*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31993*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1037:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32003*/      /*SwitchType*/ 23, MVT::v8i8,// ->32028
/* 32005*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32007*/        OPC_RecordChild2, // #1 = $Vm
/* 32008*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32010*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32012*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32015*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32018*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1037:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32028*/      /*SwitchType*/ 23, MVT::v16i8,// ->32053
/* 32030*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32032*/        OPC_RecordChild2, // #1 = $Vm
/* 32033*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32035*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32037*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32040*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32043*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1037:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32053*/      0, // EndSwitchType
/* 32054*/    /*Scope*/ 28|128,1/*156*/, /*->32212*/
/* 32056*/      OPC_CheckChild0Integer, 14|128,8/*1038*/, 
/* 32059*/      OPC_RecordChild1, // #0 = $Vn
/* 32060*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->32086
/* 32063*/        OPC_CheckChild1Type, MVT::v4i16,
/* 32065*/        OPC_RecordChild2, // #1 = $Vm
/* 32066*/        OPC_CheckChild2Type, MVT::v4i16,
/* 32068*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32070*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32073*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32076*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1038:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 32086*/      /*SwitchType*/ 23, MVT::v2i32,// ->32111
/* 32088*/        OPC_CheckChild1Type, MVT::v2i32,
/* 32090*/        OPC_RecordChild2, // #1 = $Vm
/* 32091*/        OPC_CheckChild2Type, MVT::v2i32,
/* 32093*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32095*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32098*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32101*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1038:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 32111*/      /*SwitchType*/ 23, MVT::v8i16,// ->32136
/* 32113*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32115*/        OPC_RecordChild2, // #1 = $Vm
/* 32116*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32118*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32120*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32123*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32126*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1038:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 32136*/      /*SwitchType*/ 23, MVT::v4i32,// ->32161
/* 32138*/        OPC_CheckChild1Type, MVT::v4i32,
/* 32140*/        OPC_RecordChild2, // #1 = $Vm
/* 32141*/        OPC_CheckChild2Type, MVT::v4i32,
/* 32143*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32145*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32148*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32151*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1038:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32161*/      /*SwitchType*/ 23, MVT::v8i8,// ->32186
/* 32163*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32165*/        OPC_RecordChild2, // #1 = $Vm
/* 32166*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32168*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32170*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32173*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32176*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1038:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32186*/      /*SwitchType*/ 23, MVT::v16i8,// ->32211
/* 32188*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32190*/        OPC_RecordChild2, // #1 = $Vm
/* 32191*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32193*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32195*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32198*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32201*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1038:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32211*/      0, // EndSwitchType
/* 32212*/    /*Scope*/ 28|128,1/*156*/, /*->32370*/
/* 32214*/      OPC_CheckChild0Integer, 75|128,8/*1099*/, 
/* 32217*/      OPC_RecordChild1, // #0 = $Vn
/* 32218*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->32244
/* 32221*/        OPC_CheckChild1Type, MVT::v4i16,
/* 32223*/        OPC_RecordChild2, // #1 = $Vm
/* 32224*/        OPC_CheckChild2Type, MVT::v4i16,
/* 32226*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32228*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32231*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32234*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1099:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 32244*/      /*SwitchType*/ 23, MVT::v2i32,// ->32269
/* 32246*/        OPC_CheckChild1Type, MVT::v2i32,
/* 32248*/        OPC_RecordChild2, // #1 = $Vm
/* 32249*/        OPC_CheckChild2Type, MVT::v2i32,
/* 32251*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32253*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32256*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32259*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1099:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 32269*/      /*SwitchType*/ 23, MVT::v8i16,// ->32294
/* 32271*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32273*/        OPC_RecordChild2, // #1 = $Vm
/* 32274*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32276*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32278*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32281*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32284*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1099:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 32294*/      /*SwitchType*/ 23, MVT::v4i32,// ->32319
/* 32296*/        OPC_CheckChild1Type, MVT::v4i32,
/* 32298*/        OPC_RecordChild2, // #1 = $Vm
/* 32299*/        OPC_CheckChild2Type, MVT::v4i32,
/* 32301*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32303*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32309*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1099:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32319*/      /*SwitchType*/ 23, MVT::v8i8,// ->32344
/* 32321*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32323*/        OPC_RecordChild2, // #1 = $Vm
/* 32324*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32326*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32328*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32331*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32334*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1099:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32344*/      /*SwitchType*/ 23, MVT::v16i8,// ->32369
/* 32346*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32348*/        OPC_RecordChild2, // #1 = $Vm
/* 32349*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32351*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32353*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32356*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32359*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1099:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32369*/      0, // EndSwitchType
/* 32370*/    /*Scope*/ 28|128,1/*156*/, /*->32528*/
/* 32372*/      OPC_CheckChild0Integer, 76|128,8/*1100*/, 
/* 32375*/      OPC_RecordChild1, // #0 = $Vn
/* 32376*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->32402
/* 32379*/        OPC_CheckChild1Type, MVT::v4i16,
/* 32381*/        OPC_RecordChild2, // #1 = $Vm
/* 32382*/        OPC_CheckChild2Type, MVT::v4i16,
/* 32384*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32386*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32389*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32392*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1100:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 32402*/      /*SwitchType*/ 23, MVT::v2i32,// ->32427
/* 32404*/        OPC_CheckChild1Type, MVT::v2i32,
/* 32406*/        OPC_RecordChild2, // #1 = $Vm
/* 32407*/        OPC_CheckChild2Type, MVT::v2i32,
/* 32409*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32411*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32414*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32417*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1100:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 32427*/      /*SwitchType*/ 23, MVT::v8i16,// ->32452
/* 32429*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32431*/        OPC_RecordChild2, // #1 = $Vm
/* 32432*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32434*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32436*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32439*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32442*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1100:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 32452*/      /*SwitchType*/ 23, MVT::v4i32,// ->32477
/* 32454*/        OPC_CheckChild1Type, MVT::v4i32,
/* 32456*/        OPC_RecordChild2, // #1 = $Vm
/* 32457*/        OPC_CheckChild2Type, MVT::v4i32,
/* 32459*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32461*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32464*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32467*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1100:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32477*/      /*SwitchType*/ 23, MVT::v8i8,// ->32502
/* 32479*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32481*/        OPC_RecordChild2, // #1 = $Vm
/* 32482*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32484*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32486*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32489*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32492*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1100:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32502*/      /*SwitchType*/ 23, MVT::v16i8,// ->32527
/* 32504*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32506*/        OPC_RecordChild2, // #1 = $Vm
/* 32507*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32509*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32511*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32514*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32517*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1100:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32527*/      0, // EndSwitchType
/* 32528*/    /*Scope*/ 78|128,1/*206*/, /*->32736*/
/* 32530*/      OPC_CheckChild0Integer, 51|128,8/*1075*/, 
/* 32533*/      OPC_RecordChild1, // #0 = $Vn
/* 32534*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->32560
/* 32537*/        OPC_CheckChild1Type, MVT::v4i16,
/* 32539*/        OPC_RecordChild2, // #1 = $Vm
/* 32540*/        OPC_CheckChild2Type, MVT::v4i16,
/* 32542*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32544*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32547*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32550*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1075:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 32560*/      /*SwitchType*/ 23, MVT::v2i32,// ->32585
/* 32562*/        OPC_CheckChild1Type, MVT::v2i32,
/* 32564*/        OPC_RecordChild2, // #1 = $Vm
/* 32565*/        OPC_CheckChild2Type, MVT::v2i32,
/* 32567*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32569*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32572*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32575*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1075:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 32585*/      /*SwitchType*/ 23, MVT::v8i16,// ->32610
/* 32587*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32589*/        OPC_RecordChild2, // #1 = $Vm
/* 32590*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32592*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32594*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32597*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32600*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1075:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 32610*/      /*SwitchType*/ 23, MVT::v4i32,// ->32635
/* 32612*/        OPC_CheckChild1Type, MVT::v4i32,
/* 32614*/        OPC_RecordChild2, // #1 = $Vm
/* 32615*/        OPC_CheckChild2Type, MVT::v4i32,
/* 32617*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32619*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32622*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32625*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1075:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32635*/      /*SwitchType*/ 23, MVT::v8i8,// ->32660
/* 32637*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32639*/        OPC_RecordChild2, // #1 = $Vm
/* 32640*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32642*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32644*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32647*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32650*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1075:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32660*/      /*SwitchType*/ 23, MVT::v16i8,// ->32685
/* 32662*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32664*/        OPC_RecordChild2, // #1 = $Vm
/* 32665*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32667*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32669*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32672*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32675*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1075:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32685*/      /*SwitchType*/ 23, MVT::v1i64,// ->32710
/* 32687*/        OPC_CheckChild1Type, MVT::v1i64,
/* 32689*/        OPC_RecordChild2, // #1 = $Vm
/* 32690*/        OPC_CheckChild2Type, MVT::v1i64,
/* 32692*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32694*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32697*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32700*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1075:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 32710*/      /*SwitchType*/ 23, MVT::v2i64,// ->32735
/* 32712*/        OPC_CheckChild1Type, MVT::v2i64,
/* 32714*/        OPC_RecordChild2, // #1 = $Vm
/* 32715*/        OPC_CheckChild2Type, MVT::v2i64,
/* 32717*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32719*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32722*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32725*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1075:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQADDuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 32735*/      0, // EndSwitchType
/* 32736*/    /*Scope*/ 81, /*->32818*/
/* 32737*/      OPC_CheckChild0Integer, 72|128,8/*1096*/, 
/* 32740*/      OPC_RecordChild1, // #0 = $Vn
/* 32741*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->32767
/* 32744*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32746*/        OPC_RecordChild2, // #1 = $Vm
/* 32747*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32749*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32751*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32754*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32757*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1096:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 32767*/      /*SwitchType*/ 23, MVT::v4i16,// ->32792
/* 32769*/        OPC_CheckChild1Type, MVT::v4i32,
/* 32771*/        OPC_RecordChild2, // #1 = $Vm
/* 32772*/        OPC_CheckChild2Type, MVT::v4i32,
/* 32774*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32776*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32779*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32782*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1096:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 32792*/      /*SwitchType*/ 23, MVT::v2i32,// ->32817
/* 32794*/        OPC_CheckChild1Type, MVT::v2i64,
/* 32796*/        OPC_RecordChild2, // #1 = $Vm
/* 32797*/        OPC_CheckChild2Type, MVT::v2i64,
/* 32799*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32801*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32804*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32807*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1096:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 32817*/      0, // EndSwitchType
/* 32818*/    /*Scope*/ 56, /*->32875*/
/* 32819*/      OPC_CheckChild0Integer, 39|128,8/*1063*/, 
/* 32822*/      OPC_RecordChild1, // #0 = $Vn
/* 32823*/      OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->32849
/* 32826*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32828*/        OPC_RecordChild2, // #1 = $Vm
/* 32829*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32831*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32833*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32836*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32839*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULpd), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1063:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULpd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32849*/      /*SwitchType*/ 23, MVT::v16i8,// ->32874
/* 32851*/        OPC_CheckChild1Type, MVT::v16i8,
/* 32853*/        OPC_RecordChild2, // #1 = $Vm
/* 32854*/        OPC_CheckChild2Type, MVT::v16i8,
/* 32856*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32858*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32861*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32864*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULpq), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1063:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULpq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 32874*/      0, // EndSwitchType
/* 32875*/    /*Scope*/ 48, /*->32924*/
/* 32876*/      OPC_CheckChild0Integer, 36|128,8/*1060*/, 
/* 32879*/      OPC_RecordChild1, // #0 = $Vn
/* 32880*/      OPC_SwitchType /*2 cases */, 23, MVT::v8i16,// ->32906
/* 32883*/        OPC_CheckChild1Type, MVT::v8i8,
/* 32885*/        OPC_RecordChild2, // #1 = $Vm
/* 32886*/        OPC_CheckChild2Type, MVT::v8i8,
/* 32888*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32890*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32893*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32896*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLp8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1060:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULLp8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 32906*/      /*SwitchType*/ 15, MVT::v2i64,// ->32923
/* 32908*/        OPC_CheckChild1Type, MVT::v1i64,
/* 32910*/        OPC_RecordChild2, // #1 = $Vm
/* 32911*/        OPC_CheckChild2Type, MVT::v1i64,
/* 32913*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 32915*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLp64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1060:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VMULLp64:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 32923*/      0, // EndSwitchType
/* 32924*/    /*Scope*/ 28|128,1/*156*/, /*->33082*/
/* 32926*/      OPC_CheckChild0Integer, 15|128,8/*1039*/, 
/* 32929*/      OPC_RecordChild1, // #0 = $Vn
/* 32930*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->32956
/* 32933*/        OPC_CheckChild1Type, MVT::v4i16,
/* 32935*/        OPC_RecordChild2, // #1 = $Vm
/* 32936*/        OPC_CheckChild2Type, MVT::v4i16,
/* 32938*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32940*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32943*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32946*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1039:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 32956*/      /*SwitchType*/ 23, MVT::v2i32,// ->32981
/* 32958*/        OPC_CheckChild1Type, MVT::v2i32,
/* 32960*/        OPC_RecordChild2, // #1 = $Vm
/* 32961*/        OPC_CheckChild2Type, MVT::v2i32,
/* 32963*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32965*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32971*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1039:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 32981*/      /*SwitchType*/ 23, MVT::v8i16,// ->33006
/* 32983*/        OPC_CheckChild1Type, MVT::v8i16,
/* 32985*/        OPC_RecordChild2, // #1 = $Vm
/* 32986*/        OPC_CheckChild2Type, MVT::v8i16,
/* 32988*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 32990*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32993*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32996*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1039:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 33006*/      /*SwitchType*/ 23, MVT::v4i32,// ->33031
/* 33008*/        OPC_CheckChild1Type, MVT::v4i32,
/* 33010*/        OPC_RecordChild2, // #1 = $Vm
/* 33011*/        OPC_CheckChild2Type, MVT::v4i32,
/* 33013*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33015*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33018*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33021*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1039:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 33031*/      /*SwitchType*/ 23, MVT::v8i8,// ->33056
/* 33033*/        OPC_CheckChild1Type, MVT::v8i8,
/* 33035*/        OPC_RecordChild2, // #1 = $Vm
/* 33036*/        OPC_CheckChild2Type, MVT::v8i8,
/* 33038*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33040*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33043*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33046*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1039:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 33056*/      /*SwitchType*/ 23, MVT::v16i8,// ->33081
/* 33058*/        OPC_CheckChild1Type, MVT::v16i8,
/* 33060*/        OPC_RecordChild2, // #1 = $Vm
/* 33061*/        OPC_CheckChild2Type, MVT::v16i8,
/* 33063*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33065*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33071*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1039:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 33081*/      0, // EndSwitchType
/* 33082*/    /*Scope*/ 28|128,1/*156*/, /*->33240*/
/* 33084*/      OPC_CheckChild0Integer, 16|128,8/*1040*/, 
/* 33087*/      OPC_RecordChild1, // #0 = $Vn
/* 33088*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->33114
/* 33091*/        OPC_CheckChild1Type, MVT::v4i16,
/* 33093*/        OPC_RecordChild2, // #1 = $Vm
/* 33094*/        OPC_CheckChild2Type, MVT::v4i16,
/* 33096*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33098*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33101*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33104*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1040:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 33114*/      /*SwitchType*/ 23, MVT::v2i32,// ->33139
/* 33116*/        OPC_CheckChild1Type, MVT::v2i32,
/* 33118*/        OPC_RecordChild2, // #1 = $Vm
/* 33119*/        OPC_CheckChild2Type, MVT::v2i32,
/* 33121*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33123*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33126*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33129*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1040:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 33139*/      /*SwitchType*/ 23, MVT::v8i16,// ->33164
/* 33141*/        OPC_CheckChild1Type, MVT::v8i16,
/* 33143*/        OPC_RecordChild2, // #1 = $Vm
/* 33144*/        OPC_CheckChild2Type, MVT::v8i16,
/* 33146*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33148*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33154*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1040:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 33164*/      /*SwitchType*/ 23, MVT::v4i32,// ->33189
/* 33166*/        OPC_CheckChild1Type, MVT::v4i32,
/* 33168*/        OPC_RecordChild2, // #1 = $Vm
/* 33169*/        OPC_CheckChild2Type, MVT::v4i32,
/* 33171*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33173*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33176*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33179*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1040:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 33189*/      /*SwitchType*/ 23, MVT::v8i8,// ->33214
/* 33191*/        OPC_CheckChild1Type, MVT::v8i8,
/* 33193*/        OPC_RecordChild2, // #1 = $Vm
/* 33194*/        OPC_CheckChild2Type, MVT::v8i8,
/* 33196*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33198*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33201*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33204*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1040:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 33214*/      /*SwitchType*/ 23, MVT::v16i8,// ->33239
/* 33216*/        OPC_CheckChild1Type, MVT::v16i8,
/* 33218*/        OPC_RecordChild2, // #1 = $Vm
/* 33219*/        OPC_CheckChild2Type, MVT::v16i8,
/* 33221*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33223*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33226*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33229*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1040:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 33239*/      0, // EndSwitchType
/* 33240*/    /*Scope*/ 78|128,1/*206*/, /*->33448*/
/* 33242*/      OPC_CheckChild0Integer, 71|128,8/*1095*/, 
/* 33245*/      OPC_RecordChild1, // #0 = $Vn
/* 33246*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->33272
/* 33249*/        OPC_CheckChild1Type, MVT::v4i16,
/* 33251*/        OPC_RecordChild2, // #1 = $Vm
/* 33252*/        OPC_CheckChild2Type, MVT::v4i16,
/* 33254*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33256*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33259*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33262*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1095:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 33272*/      /*SwitchType*/ 23, MVT::v2i32,// ->33297
/* 33274*/        OPC_CheckChild1Type, MVT::v2i32,
/* 33276*/        OPC_RecordChild2, // #1 = $Vm
/* 33277*/        OPC_CheckChild2Type, MVT::v2i32,
/* 33279*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33281*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33287*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1095:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 33297*/      /*SwitchType*/ 23, MVT::v8i16,// ->33322
/* 33299*/        OPC_CheckChild1Type, MVT::v8i16,
/* 33301*/        OPC_RecordChild2, // #1 = $Vm
/* 33302*/        OPC_CheckChild2Type, MVT::v8i16,
/* 33304*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33306*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33309*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33312*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1095:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 33322*/      /*SwitchType*/ 23, MVT::v4i32,// ->33347
/* 33324*/        OPC_CheckChild1Type, MVT::v4i32,
/* 33326*/        OPC_RecordChild2, // #1 = $Vm
/* 33327*/        OPC_CheckChild2Type, MVT::v4i32,
/* 33329*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33331*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33334*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33337*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1095:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 33347*/      /*SwitchType*/ 23, MVT::v8i8,// ->33372
/* 33349*/        OPC_CheckChild1Type, MVT::v8i8,
/* 33351*/        OPC_RecordChild2, // #1 = $Vm
/* 33352*/        OPC_CheckChild2Type, MVT::v8i8,
/* 33354*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33356*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33359*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33362*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1095:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 33372*/      /*SwitchType*/ 23, MVT::v16i8,// ->33397
/* 33374*/        OPC_CheckChild1Type, MVT::v16i8,
/* 33376*/        OPC_RecordChild2, // #1 = $Vm
/* 33377*/        OPC_CheckChild2Type, MVT::v16i8,
/* 33379*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33381*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33387*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1095:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 33397*/      /*SwitchType*/ 23, MVT::v1i64,// ->33422
/* 33399*/        OPC_CheckChild1Type, MVT::v1i64,
/* 33401*/        OPC_RecordChild2, // #1 = $Vm
/* 33402*/        OPC_CheckChild2Type, MVT::v1i64,
/* 33404*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33406*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33409*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33412*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1095:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 33422*/      /*SwitchType*/ 23, MVT::v2i64,// ->33447
/* 33424*/        OPC_CheckChild1Type, MVT::v2i64,
/* 33426*/        OPC_RecordChild2, // #1 = $Vm
/* 33427*/        OPC_CheckChild2Type, MVT::v2i64,
/* 33429*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33431*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33434*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33437*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1095:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQSUBuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 33447*/      0, // EndSwitchType
/* 33448*/    /*Scope*/ 81, /*->33530*/
/* 33449*/      OPC_CheckChild0Integer, 88|128,8/*1112*/, 
/* 33452*/      OPC_RecordChild1, // #0 = $Vn
/* 33453*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->33479
/* 33456*/        OPC_CheckChild1Type, MVT::v8i16,
/* 33458*/        OPC_RecordChild2, // #1 = $Vm
/* 33459*/        OPC_CheckChild2Type, MVT::v8i16,
/* 33461*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33463*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33466*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33469*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1112:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 33479*/      /*SwitchType*/ 23, MVT::v4i16,// ->33504
/* 33481*/        OPC_CheckChild1Type, MVT::v4i32,
/* 33483*/        OPC_RecordChild2, // #1 = $Vm
/* 33484*/        OPC_CheckChild2Type, MVT::v4i32,
/* 33486*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33488*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33491*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33494*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1112:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 33504*/      /*SwitchType*/ 23, MVT::v2i32,// ->33529
/* 33506*/        OPC_CheckChild1Type, MVT::v2i64,
/* 33508*/        OPC_RecordChild2, // #1 = $Vm
/* 33509*/        OPC_CheckChild2Type, MVT::v2i64,
/* 33511*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33513*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33516*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33519*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1112:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 33529*/      0, // EndSwitchType
/* 33530*/    /*Scope*/ 106, /*->33637*/
/* 33531*/      OPC_CheckChild0Integer, 123|128,7/*1019*/, 
/* 33534*/      OPC_RecordChild1, // #0 = $Vn
/* 33535*/      OPC_SwitchType /*4 cases */, 23, MVT::v2i32,// ->33561
/* 33538*/        OPC_CheckChild1Type, MVT::v2f32,
/* 33540*/        OPC_RecordChild2, // #1 = $Vm
/* 33541*/        OPC_CheckChild2Type, MVT::v2f32,
/* 33543*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33545*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33548*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33551*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1019:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 33561*/      /*SwitchType*/ 23, MVT::v4i32,// ->33586
/* 33563*/        OPC_CheckChild1Type, MVT::v4f32,
/* 33565*/        OPC_RecordChild2, // #1 = $Vm
/* 33566*/        OPC_CheckChild2Type, MVT::v4f32,
/* 33568*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33570*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33573*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33576*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1019:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 33586*/      /*SwitchType*/ 23, MVT::v4i16,// ->33611
/* 33588*/        OPC_CheckChild1Type, MVT::v4f16,
/* 33590*/        OPC_RecordChild2, // #1 = $Vm
/* 33591*/        OPC_CheckChild2Type, MVT::v4f16,
/* 33593*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 33595*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33598*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33601*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1019:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 33611*/      /*SwitchType*/ 23, MVT::v8i16,// ->33636
/* 33613*/        OPC_CheckChild1Type, MVT::v8f16,
/* 33615*/        OPC_RecordChild2, // #1 = $Vm
/* 33616*/        OPC_CheckChild2Type, MVT::v8f16,
/* 33618*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 33620*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33623*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33626*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEhq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1019:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 33636*/      0, // EndSwitchType
/* 33637*/    /*Scope*/ 106, /*->33744*/
/* 33638*/      OPC_CheckChild0Integer, 124|128,7/*1020*/, 
/* 33641*/      OPC_RecordChild1, // #0 = $Vn
/* 33642*/      OPC_SwitchType /*4 cases */, 23, MVT::v2i32,// ->33668
/* 33645*/        OPC_CheckChild1Type, MVT::v2f32,
/* 33647*/        OPC_RecordChild2, // #1 = $Vm
/* 33648*/        OPC_CheckChild2Type, MVT::v2f32,
/* 33650*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33652*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33655*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33658*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGTfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1020:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 33668*/      /*SwitchType*/ 23, MVT::v4i32,// ->33693
/* 33670*/        OPC_CheckChild1Type, MVT::v4f32,
/* 33672*/        OPC_RecordChild2, // #1 = $Vm
/* 33673*/        OPC_CheckChild2Type, MVT::v4f32,
/* 33675*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33677*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33680*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33683*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGTfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1020:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 33693*/      /*SwitchType*/ 23, MVT::v4i16,// ->33718
/* 33695*/        OPC_CheckChild1Type, MVT::v4f16,
/* 33697*/        OPC_RecordChild2, // #1 = $Vm
/* 33698*/        OPC_CheckChild2Type, MVT::v4f16,
/* 33700*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 33702*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33705*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33708*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGThd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1020:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 33718*/      /*SwitchType*/ 23, MVT::v8f16,// ->33743
/* 33720*/        OPC_CheckChild1Type, MVT::v8f16,
/* 33722*/        OPC_RecordChild2, // #1 = $Vm
/* 33723*/        OPC_CheckChild2Type, MVT::v8f16,
/* 33725*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 33727*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33730*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33733*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGThq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1020:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGThq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 33743*/      0, // EndSwitchType
/* 33744*/    /*Scope*/ 40|128,2/*296*/, /*->34042*/
/* 33746*/      OPC_CheckChild0Integer, 125|128,7/*1021*/, 
/* 33749*/      OPC_RecordChild1, // #0 = $src1
/* 33750*/      OPC_SwitchType /*10 cases */, 27, MVT::v8i8,// ->33780
/* 33753*/        OPC_CheckChild1Type, MVT::v8i8,
/* 33755*/        OPC_RecordChild2, // #1 = $Vn
/* 33756*/        OPC_CheckChild2Type, MVT::v8i8,
/* 33758*/        OPC_RecordChild3, // #2 = $Vm
/* 33759*/        OPC_CheckChild3Type, MVT::v8i8,
/* 33761*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33763*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33766*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33769*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1021:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 33780*/      /*SwitchType*/ 27, MVT::v4i16,// ->33809
/* 33782*/        OPC_CheckChild1Type, MVT::v4i16,
/* 33784*/        OPC_RecordChild2, // #1 = $Vn
/* 33785*/        OPC_CheckChild2Type, MVT::v4i16,
/* 33787*/        OPC_RecordChild3, // #2 = $Vm
/* 33788*/        OPC_CheckChild3Type, MVT::v4i16,
/* 33790*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33792*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33795*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33798*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1021:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 33809*/      /*SwitchType*/ 27, MVT::v2i32,// ->33838
/* 33811*/        OPC_CheckChild1Type, MVT::v2i32,
/* 33813*/        OPC_RecordChild2, // #1 = $Vn
/* 33814*/        OPC_CheckChild2Type, MVT::v2i32,
/* 33816*/        OPC_RecordChild3, // #2 = $Vm
/* 33817*/        OPC_CheckChild3Type, MVT::v2i32,
/* 33819*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33821*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33824*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33827*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1021:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 33838*/      /*SwitchType*/ 27, MVT::v1i64,// ->33867
/* 33840*/        OPC_CheckChild1Type, MVT::v1i64,
/* 33842*/        OPC_RecordChild2, // #1 = $Vn
/* 33843*/        OPC_CheckChild2Type, MVT::v1i64,
/* 33845*/        OPC_RecordChild3, // #2 = $Vm
/* 33846*/        OPC_CheckChild3Type, MVT::v1i64,
/* 33848*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33850*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33853*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33856*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1021:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 33867*/      /*SwitchType*/ 27, MVT::v16i8,// ->33896
/* 33869*/        OPC_CheckChild1Type, MVT::v16i8,
/* 33871*/        OPC_RecordChild2, // #1 = $Vn
/* 33872*/        OPC_CheckChild2Type, MVT::v16i8,
/* 33874*/        OPC_RecordChild3, // #2 = $Vm
/* 33875*/        OPC_CheckChild3Type, MVT::v16i8,
/* 33877*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33879*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33882*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33885*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1021:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 33896*/      /*SwitchType*/ 27, MVT::v8i16,// ->33925
/* 33898*/        OPC_CheckChild1Type, MVT::v8i16,
/* 33900*/        OPC_RecordChild2, // #1 = $Vn
/* 33901*/        OPC_CheckChild2Type, MVT::v8i16,
/* 33903*/        OPC_RecordChild3, // #2 = $Vm
/* 33904*/        OPC_CheckChild3Type, MVT::v8i16,
/* 33906*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33908*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33911*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33914*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1021:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 33925*/      /*SwitchType*/ 27, MVT::v4i32,// ->33954
/* 33927*/        OPC_CheckChild1Type, MVT::v4i32,
/* 33929*/        OPC_RecordChild2, // #1 = $Vn
/* 33930*/        OPC_CheckChild2Type, MVT::v4i32,
/* 33932*/        OPC_RecordChild3, // #2 = $Vm
/* 33933*/        OPC_CheckChild3Type, MVT::v4i32,
/* 33935*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33937*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33940*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33943*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1021:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 33954*/      /*SwitchType*/ 27, MVT::v2i64,// ->33983
/* 33956*/        OPC_CheckChild1Type, MVT::v2i64,
/* 33958*/        OPC_RecordChild2, // #1 = $Vn
/* 33959*/        OPC_CheckChild2Type, MVT::v2i64,
/* 33961*/        OPC_RecordChild3, // #2 = $Vm
/* 33962*/        OPC_CheckChild3Type, MVT::v2i64,
/* 33964*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33966*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33969*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33972*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1021:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 33983*/      /*SwitchType*/ 27, MVT::v2f32,// ->34012
/* 33985*/        OPC_CheckChild1Type, MVT::v2f32,
/* 33987*/        OPC_RecordChild2, // #1 = $Vn
/* 33988*/        OPC_CheckChild2Type, MVT::v2f32,
/* 33990*/        OPC_RecordChild3, // #2 = $Vm
/* 33991*/        OPC_CheckChild3Type, MVT::v2f32,
/* 33993*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 33995*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33998*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34001*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1021:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 34012*/      /*SwitchType*/ 27, MVT::v4f32,// ->34041
/* 34014*/        OPC_CheckChild1Type, MVT::v4f32,
/* 34016*/        OPC_RecordChild2, // #1 = $Vn
/* 34017*/        OPC_CheckChild2Type, MVT::v4f32,
/* 34019*/        OPC_RecordChild3, // #2 = $Vm
/* 34020*/        OPC_CheckChild3Type, MVT::v4f32,
/* 34022*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34024*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34027*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34030*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1021:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 34041*/      0, // EndSwitchType
/* 34042*/    /*Scope*/ 0|128,2/*256*/, /*->34300*/
/* 34044*/      OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 34047*/      OPC_RecordChild1, // #0 = $Vn
/* 34048*/      OPC_SwitchType /*10 cases */, 23, MVT::v4i16,// ->34074
/* 34051*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34053*/        OPC_RecordChild2, // #1 = $Vm
/* 34054*/        OPC_CheckChild2Type, MVT::v4i16,
/* 34056*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34058*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34064*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 34074*/      /*SwitchType*/ 23, MVT::v2i32,// ->34099
/* 34076*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34078*/        OPC_RecordChild2, // #1 = $Vm
/* 34079*/        OPC_CheckChild2Type, MVT::v2i32,
/* 34081*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34083*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34086*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34089*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 34099*/      /*SwitchType*/ 23, MVT::v8i16,// ->34124
/* 34101*/        OPC_CheckChild1Type, MVT::v8i16,
/* 34103*/        OPC_RecordChild2, // #1 = $Vm
/* 34104*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34106*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34108*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34111*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34114*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1016:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 34124*/      /*SwitchType*/ 23, MVT::v4i32,// ->34149
/* 34126*/        OPC_CheckChild1Type, MVT::v4i32,
/* 34128*/        OPC_RecordChild2, // #1 = $Vm
/* 34129*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34131*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34133*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34136*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34139*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1016:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 34149*/      /*SwitchType*/ 23, MVT::v8i8,// ->34174
/* 34151*/        OPC_CheckChild1Type, MVT::v8i8,
/* 34153*/        OPC_RecordChild2, // #1 = $Vm
/* 34154*/        OPC_CheckChild2Type, MVT::v8i8,
/* 34156*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34158*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34161*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34164*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 34174*/      /*SwitchType*/ 23, MVT::v16i8,// ->34199
/* 34176*/        OPC_CheckChild1Type, MVT::v16i8,
/* 34178*/        OPC_RecordChild2, // #1 = $Vm
/* 34179*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34181*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34183*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34186*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34189*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1016:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 34199*/      /*SwitchType*/ 23, MVT::v2f32,// ->34224
/* 34201*/        OPC_CheckChild1Type, MVT::v2f32,
/* 34203*/        OPC_RecordChild2, // #1 = $Vm
/* 34204*/        OPC_CheckChild2Type, MVT::v2f32,
/* 34206*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34208*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34211*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34214*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VABDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 34224*/      /*SwitchType*/ 23, MVT::v4f32,// ->34249
/* 34226*/        OPC_CheckChild1Type, MVT::v4f32,
/* 34228*/        OPC_RecordChild2, // #1 = $Vm
/* 34229*/        OPC_CheckChild2Type, MVT::v4f32,
/* 34231*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34233*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34236*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34239*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1016:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VABDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 34249*/      /*SwitchType*/ 23, MVT::v4f16,// ->34274
/* 34251*/        OPC_CheckChild1Type, MVT::v4f16,
/* 34253*/        OPC_RecordChild2, // #1 = $Vm
/* 34254*/        OPC_CheckChild2Type, MVT::v4f16,
/* 34256*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 34258*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34261*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34264*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDhd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VABDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 34274*/      /*SwitchType*/ 23, MVT::v8f16,// ->34299
/* 34276*/        OPC_CheckChild1Type, MVT::v8f16,
/* 34278*/        OPC_RecordChild2, // #1 = $Vm
/* 34279*/        OPC_CheckChild2Type, MVT::v8f16,
/* 34281*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 34283*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34286*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34289*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDhq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1016:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VABDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 34299*/      0, // EndSwitchType
/* 34300*/    /*Scope*/ 28|128,1/*156*/, /*->34458*/
/* 34302*/      OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 34305*/      OPC_RecordChild1, // #0 = $Vn
/* 34306*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->34332
/* 34309*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34311*/        OPC_RecordChild2, // #1 = $Vm
/* 34312*/        OPC_CheckChild2Type, MVT::v4i16,
/* 34314*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34316*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34319*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34322*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 34332*/      /*SwitchType*/ 23, MVT::v2i32,// ->34357
/* 34334*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34336*/        OPC_RecordChild2, // #1 = $Vm
/* 34337*/        OPC_CheckChild2Type, MVT::v2i32,
/* 34339*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34341*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34344*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34347*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 34357*/      /*SwitchType*/ 23, MVT::v8i16,// ->34382
/* 34359*/        OPC_CheckChild1Type, MVT::v8i16,
/* 34361*/        OPC_RecordChild2, // #1 = $Vm
/* 34362*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34364*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34366*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34369*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34372*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1017:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 34382*/      /*SwitchType*/ 23, MVT::v4i32,// ->34407
/* 34384*/        OPC_CheckChild1Type, MVT::v4i32,
/* 34386*/        OPC_RecordChild2, // #1 = $Vm
/* 34387*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34389*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34391*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34394*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34397*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1017:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 34407*/      /*SwitchType*/ 23, MVT::v8i8,// ->34432
/* 34409*/        OPC_CheckChild1Type, MVT::v8i8,
/* 34411*/        OPC_RecordChild2, // #1 = $Vm
/* 34412*/        OPC_CheckChild2Type, MVT::v8i8,
/* 34414*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34416*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34419*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34422*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 34432*/      /*SwitchType*/ 23, MVT::v16i8,// ->34457
/* 34434*/        OPC_CheckChild1Type, MVT::v16i8,
/* 34436*/        OPC_RecordChild2, // #1 = $Vm
/* 34437*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34439*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34441*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34444*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34447*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1017:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 34457*/      0, // EndSwitchType
/* 34458*/    /*Scope*/ 3|128,1/*131*/, /*->34591*/
/* 34460*/      OPC_CheckChild0Integer, 42|128,8/*1066*/, 
/* 34463*/      OPC_RecordChild1, // #0 = $Vn
/* 34464*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->34490
/* 34467*/        OPC_CheckChild1Type, MVT::v8i8,
/* 34469*/        OPC_RecordChild2, // #1 = $Vm
/* 34470*/        OPC_CheckChild2Type, MVT::v8i8,
/* 34472*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34474*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34477*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34480*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1066:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 34490*/      /*SwitchType*/ 23, MVT::v4i16,// ->34515
/* 34492*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34494*/        OPC_RecordChild2, // #1 = $Vm
/* 34495*/        OPC_CheckChild2Type, MVT::v4i16,
/* 34497*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34499*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34502*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34505*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1066:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 34515*/      /*SwitchType*/ 23, MVT::v2i32,// ->34540
/* 34517*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34519*/        OPC_RecordChild2, // #1 = $Vm
/* 34520*/        OPC_CheckChild2Type, MVT::v2i32,
/* 34522*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34524*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34527*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34530*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1066:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 34540*/      /*SwitchType*/ 23, MVT::v2f32,// ->34565
/* 34542*/        OPC_CheckChild1Type, MVT::v2f32,
/* 34544*/        OPC_RecordChild2, // #1 = $Vm
/* 34545*/        OPC_CheckChild2Type, MVT::v2f32,
/* 34547*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34549*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34552*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34555*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1066:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 34565*/      /*SwitchType*/ 23, MVT::v4f16,// ->34590
/* 34567*/        OPC_CheckChild1Type, MVT::v4f16,
/* 34569*/        OPC_RecordChild2, // #1 = $Vm
/* 34570*/        OPC_CheckChild2Type, MVT::v4f16,
/* 34572*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 34574*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34577*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34580*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1066:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 34590*/      0, // EndSwitchType
/* 34591*/    /*Scope*/ 4|128,1/*132*/, /*->34725*/
/* 34593*/      OPC_CheckChild0Integer, 43|128,8/*1067*/, 
/* 34596*/      OPC_RecordChild1, // #0 = $Vm
/* 34597*/      OPC_SwitchType /*6 cases */, 19, MVT::v4i16,// ->34619
/* 34600*/        OPC_CheckChild1Type, MVT::v8i8,
/* 34602*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34604*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34607*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34610*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv8i8), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1067:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
/* 34619*/      /*SwitchType*/ 19, MVT::v2i32,// ->34640
/* 34621*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34623*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34625*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34628*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34631*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv4i16), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1067:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
/* 34640*/      /*SwitchType*/ 19, MVT::v1i64,// ->34661
/* 34642*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34644*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34646*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34649*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34652*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv2i32), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1067:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
/* 34661*/      /*SwitchType*/ 19, MVT::v8i16,// ->34682
/* 34663*/        OPC_CheckChild1Type, MVT::v16i8,
/* 34665*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34667*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34670*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34673*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv16i8), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1067:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
/* 34682*/      /*SwitchType*/ 19, MVT::v4i32,// ->34703
/* 34684*/        OPC_CheckChild1Type, MVT::v8i16,
/* 34686*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34688*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34691*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34694*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv8i16), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1067:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
/* 34703*/      /*SwitchType*/ 19, MVT::v2i64,// ->34724
/* 34705*/        OPC_CheckChild1Type, MVT::v4i32,
/* 34707*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34709*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34712*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34715*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv4i32), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1067:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
/* 34724*/      0, // EndSwitchType
/* 34725*/    /*Scope*/ 4|128,1/*132*/, /*->34859*/
/* 34727*/      OPC_CheckChild0Integer, 44|128,8/*1068*/, 
/* 34730*/      OPC_RecordChild1, // #0 = $Vm
/* 34731*/      OPC_SwitchType /*6 cases */, 19, MVT::v4i16,// ->34753
/* 34734*/        OPC_CheckChild1Type, MVT::v8i8,
/* 34736*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34738*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34741*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34744*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv8i8), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1068:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
/* 34753*/      /*SwitchType*/ 19, MVT::v2i32,// ->34774
/* 34755*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34757*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34759*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34762*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34765*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv4i16), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1068:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
/* 34774*/      /*SwitchType*/ 19, MVT::v1i64,// ->34795
/* 34776*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34778*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34780*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34783*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34786*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv2i32), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1068:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
/* 34795*/      /*SwitchType*/ 19, MVT::v8i16,// ->34816
/* 34797*/        OPC_CheckChild1Type, MVT::v16i8,
/* 34799*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34801*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34804*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34807*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv16i8), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1068:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
/* 34816*/      /*SwitchType*/ 19, MVT::v4i32,// ->34837
/* 34818*/        OPC_CheckChild1Type, MVT::v8i16,
/* 34820*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34822*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34825*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34828*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv8i16), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1068:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
/* 34837*/      /*SwitchType*/ 19, MVT::v2i64,// ->34858
/* 34839*/        OPC_CheckChild1Type, MVT::v4i32,
/* 34841*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34843*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34846*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34849*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv4i32), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1068:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
/* 34858*/      0, // EndSwitchType
/* 34859*/    /*Scope*/ 28|128,1/*156*/, /*->35017*/
/* 34861*/      OPC_CheckChild0Integer, 40|128,8/*1064*/, 
/* 34864*/      OPC_RecordChild1, // #0 = $src1
/* 34865*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->34891
/* 34868*/        OPC_CheckChild1Type, MVT::v4i16,
/* 34870*/        OPC_RecordChild2, // #1 = $Vm
/* 34871*/        OPC_CheckChild2Type, MVT::v8i8,
/* 34873*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34875*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34878*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34881*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv8i8), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1064:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
/* 34891*/      /*SwitchType*/ 23, MVT::v2i32,// ->34916
/* 34893*/        OPC_CheckChild1Type, MVT::v2i32,
/* 34895*/        OPC_RecordChild2, // #1 = $Vm
/* 34896*/        OPC_CheckChild2Type, MVT::v4i16,
/* 34898*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34900*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34903*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34906*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv4i16), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1064:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
/* 34916*/      /*SwitchType*/ 23, MVT::v1i64,// ->34941
/* 34918*/        OPC_CheckChild1Type, MVT::v1i64,
/* 34920*/        OPC_RecordChild2, // #1 = $Vm
/* 34921*/        OPC_CheckChild2Type, MVT::v2i32,
/* 34923*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34925*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34928*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34931*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv2i32), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1064:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
/* 34941*/      /*SwitchType*/ 23, MVT::v8i16,// ->34966
/* 34943*/        OPC_CheckChild1Type, MVT::v8i16,
/* 34945*/        OPC_RecordChild2, // #1 = $Vm
/* 34946*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34948*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34950*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34953*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34956*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv16i8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1064:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
/* 34966*/      /*SwitchType*/ 23, MVT::v4i32,// ->34991
/* 34968*/        OPC_CheckChild1Type, MVT::v4i32,
/* 34970*/        OPC_RecordChild2, // #1 = $Vm
/* 34971*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34973*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34975*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34978*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34981*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv8i16), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1064:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
/* 34991*/      /*SwitchType*/ 23, MVT::v2i64,// ->35016
/* 34993*/        OPC_CheckChild1Type, MVT::v2i64,
/* 34995*/        OPC_RecordChild2, // #1 = $Vm
/* 34996*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34998*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35000*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35003*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35006*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv4i32), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1064:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
/* 35016*/      0, // EndSwitchType
/* 35017*/    /*Scope*/ 28|128,1/*156*/, /*->35175*/
/* 35019*/      OPC_CheckChild0Integer, 41|128,8/*1065*/, 
/* 35022*/      OPC_RecordChild1, // #0 = $src1
/* 35023*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->35049
/* 35026*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35028*/        OPC_RecordChild2, // #1 = $Vm
/* 35029*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35031*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35033*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35036*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35039*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv8i8), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1065:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
/* 35049*/      /*SwitchType*/ 23, MVT::v2i32,// ->35074
/* 35051*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35053*/        OPC_RecordChild2, // #1 = $Vm
/* 35054*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35056*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35058*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35064*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv4i16), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1065:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
/* 35074*/      /*SwitchType*/ 23, MVT::v1i64,// ->35099
/* 35076*/        OPC_CheckChild1Type, MVT::v1i64,
/* 35078*/        OPC_RecordChild2, // #1 = $Vm
/* 35079*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35081*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35083*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35086*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35089*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv2i32), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1065:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
/* 35099*/      /*SwitchType*/ 23, MVT::v8i16,// ->35124
/* 35101*/        OPC_CheckChild1Type, MVT::v8i16,
/* 35103*/        OPC_RecordChild2, // #1 = $Vm
/* 35104*/        OPC_CheckChild2Type, MVT::v16i8,
/* 35106*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35108*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35111*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35114*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv16i8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1065:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
/* 35124*/      /*SwitchType*/ 23, MVT::v4i32,// ->35149
/* 35126*/        OPC_CheckChild1Type, MVT::v4i32,
/* 35128*/        OPC_RecordChild2, // #1 = $Vm
/* 35129*/        OPC_CheckChild2Type, MVT::v8i16,
/* 35131*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35133*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35136*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35139*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv8i16), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1065:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
/* 35149*/      /*SwitchType*/ 23, MVT::v2i64,// ->35174
/* 35151*/        OPC_CheckChild1Type, MVT::v2i64,
/* 35153*/        OPC_RecordChild2, // #1 = $Vm
/* 35154*/        OPC_CheckChild2Type, MVT::v4i32,
/* 35156*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35158*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35161*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35164*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv4i32), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1065:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
/* 35174*/      0, // EndSwitchType
/* 35175*/    /*Scope*/ 3|128,1/*131*/, /*->35308*/
/* 35177*/      OPC_CheckChild0Integer, 45|128,8/*1069*/, 
/* 35180*/      OPC_RecordChild1, // #0 = $Vn
/* 35181*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->35207
/* 35184*/        OPC_CheckChild1Type, MVT::v8i8,
/* 35186*/        OPC_RecordChild2, // #1 = $Vm
/* 35187*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35189*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35191*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35194*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35197*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1069:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 35207*/      /*SwitchType*/ 23, MVT::v4i16,// ->35232
/* 35209*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35211*/        OPC_RecordChild2, // #1 = $Vm
/* 35212*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35214*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35216*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35219*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35222*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1069:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 35232*/      /*SwitchType*/ 23, MVT::v2i32,// ->35257
/* 35234*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35236*/        OPC_RecordChild2, // #1 = $Vm
/* 35237*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35239*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35241*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35244*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35247*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1069:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 35257*/      /*SwitchType*/ 23, MVT::v2f32,// ->35282
/* 35259*/        OPC_CheckChild1Type, MVT::v2f32,
/* 35261*/        OPC_RecordChild2, // #1 = $Vm
/* 35262*/        OPC_CheckChild2Type, MVT::v2f32,
/* 35264*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35266*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35269*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35272*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1069:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 35282*/      /*SwitchType*/ 23, MVT::v4f16,// ->35307
/* 35284*/        OPC_CheckChild1Type, MVT::v4f16,
/* 35286*/        OPC_RecordChild2, // #1 = $Vm
/* 35287*/        OPC_CheckChild2Type, MVT::v4f16,
/* 35289*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35291*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35297*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1069:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 35307*/      0, // EndSwitchType
/* 35308*/    /*Scope*/ 81, /*->35390*/
/* 35309*/      OPC_CheckChild0Integer, 46|128,8/*1070*/, 
/* 35312*/      OPC_RecordChild1, // #0 = $Vn
/* 35313*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->35339
/* 35316*/        OPC_CheckChild1Type, MVT::v8i8,
/* 35318*/        OPC_RecordChild2, // #1 = $Vm
/* 35319*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35321*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35323*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35329*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1070:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 35339*/      /*SwitchType*/ 23, MVT::v4i16,// ->35364
/* 35341*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35343*/        OPC_RecordChild2, // #1 = $Vm
/* 35344*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35346*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35348*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35351*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35354*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1070:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 35364*/      /*SwitchType*/ 23, MVT::v2i32,// ->35389
/* 35366*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35368*/        OPC_RecordChild2, // #1 = $Vm
/* 35369*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35371*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35373*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35379*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1070:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 35389*/      0, // EndSwitchType
/* 35390*/    /*Scope*/ 3|128,1/*131*/, /*->35523*/
/* 35392*/      OPC_CheckChild0Integer, 47|128,8/*1071*/, 
/* 35395*/      OPC_RecordChild1, // #0 = $Vn
/* 35396*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->35422
/* 35399*/        OPC_CheckChild1Type, MVT::v8i8,
/* 35401*/        OPC_RecordChild2, // #1 = $Vm
/* 35402*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35404*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35406*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35409*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35412*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1071:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 35422*/      /*SwitchType*/ 23, MVT::v4i16,// ->35447
/* 35424*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35426*/        OPC_RecordChild2, // #1 = $Vm
/* 35427*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35429*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35431*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35434*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35437*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1071:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 35447*/      /*SwitchType*/ 23, MVT::v2i32,// ->35472
/* 35449*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35451*/        OPC_RecordChild2, // #1 = $Vm
/* 35452*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35454*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35456*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35459*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35462*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1071:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 35472*/      /*SwitchType*/ 23, MVT::v2f32,// ->35497
/* 35474*/        OPC_CheckChild1Type, MVT::v2f32,
/* 35476*/        OPC_RecordChild2, // #1 = $Vm
/* 35477*/        OPC_CheckChild2Type, MVT::v2f32,
/* 35479*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35481*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35484*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1071:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 35497*/      /*SwitchType*/ 23, MVT::v4f16,// ->35522
/* 35499*/        OPC_CheckChild1Type, MVT::v4f16,
/* 35501*/        OPC_RecordChild2, // #1 = $Vm
/* 35502*/        OPC_CheckChild2Type, MVT::v4f16,
/* 35504*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35506*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35512*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1071:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 35522*/      0, // EndSwitchType
/* 35523*/    /*Scope*/ 81, /*->35605*/
/* 35524*/      OPC_CheckChild0Integer, 48|128,8/*1072*/, 
/* 35527*/      OPC_RecordChild1, // #0 = $Vn
/* 35528*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->35554
/* 35531*/        OPC_CheckChild1Type, MVT::v8i8,
/* 35533*/        OPC_RecordChild2, // #1 = $Vm
/* 35534*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35536*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35538*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35541*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35544*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1072:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 35554*/      /*SwitchType*/ 23, MVT::v4i16,// ->35579
/* 35556*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35558*/        OPC_RecordChild2, // #1 = $Vm
/* 35559*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35561*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35563*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35566*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35569*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1072:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 35579*/      /*SwitchType*/ 23, MVT::v2i32,// ->35604
/* 35581*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35583*/        OPC_RecordChild2, // #1 = $Vm
/* 35584*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35586*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35588*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35591*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35594*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1072:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 35604*/      0, // EndSwitchType
/* 35605*/    /*Scope*/ 4|128,1/*132*/, /*->35739*/
/* 35607*/      OPC_CheckChild0Integer, 73|128,8/*1097*/, 
/* 35610*/      OPC_RecordChild1, // #0 = $Vm
/* 35611*/      OPC_SwitchType /*6 cases */, 19, MVT::v2i32,// ->35633
/* 35614*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35616*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35618*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35621*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35624*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1097:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 35633*/      /*SwitchType*/ 19, MVT::v4i32,// ->35654
/* 35635*/        OPC_CheckChild1Type, MVT::v4i32,
/* 35637*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35639*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35642*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35645*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1097:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 35654*/      /*SwitchType*/ 19, MVT::v2f32,// ->35675
/* 35656*/        OPC_CheckChild1Type, MVT::v2f32,
/* 35658*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35660*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35663*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35666*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1097:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 35675*/      /*SwitchType*/ 19, MVT::v4f32,// ->35696
/* 35677*/        OPC_CheckChild1Type, MVT::v4f32,
/* 35679*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35681*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35684*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35687*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEfq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1097:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 35696*/      /*SwitchType*/ 19, MVT::v4f16,// ->35717
/* 35698*/        OPC_CheckChild1Type, MVT::v4f16,
/* 35700*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35702*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35705*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35708*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEhd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1097:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 35717*/      /*SwitchType*/ 19, MVT::v8f16,// ->35738
/* 35719*/        OPC_CheckChild1Type, MVT::v8f16,
/* 35721*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35723*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35726*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35729*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEhq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1097:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 35738*/      0, // EndSwitchType
/* 35739*/    /*Scope*/ 4|128,1/*132*/, /*->35873*/
/* 35741*/      OPC_CheckChild0Integer, 86|128,8/*1110*/, 
/* 35744*/      OPC_RecordChild1, // #0 = $Vm
/* 35745*/      OPC_SwitchType /*6 cases */, 19, MVT::v2i32,// ->35767
/* 35748*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35750*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35752*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35755*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35758*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1110:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 35767*/      /*SwitchType*/ 19, MVT::v4i32,// ->35788
/* 35769*/        OPC_CheckChild1Type, MVT::v4i32,
/* 35771*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35773*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35779*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1110:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 35788*/      /*SwitchType*/ 19, MVT::v2f32,// ->35809
/* 35790*/        OPC_CheckChild1Type, MVT::v2f32,
/* 35792*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35794*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35797*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35800*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1110:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 35809*/      /*SwitchType*/ 19, MVT::v4f32,// ->35830
/* 35811*/        OPC_CheckChild1Type, MVT::v4f32,
/* 35813*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35815*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35818*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35821*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEfq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1110:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 35830*/      /*SwitchType*/ 19, MVT::v4f16,// ->35851
/* 35832*/        OPC_CheckChild1Type, MVT::v4f16,
/* 35834*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35836*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35839*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35842*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEhd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1110:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 35851*/      /*SwitchType*/ 19, MVT::v8f16,// ->35872
/* 35853*/        OPC_CheckChild1Type, MVT::v8f16,
/* 35855*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 35857*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35860*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35863*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEhq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1110:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 35872*/      0, // EndSwitchType
/* 35873*/    /*Scope*/ 78|128,1/*206*/, /*->36081*/
/* 35875*/      OPC_CheckChild0Integer, 90|128,8/*1114*/, 
/* 35878*/      OPC_RecordChild1, // #0 = $Vm
/* 35879*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->35905
/* 35882*/        OPC_CheckChild1Type, MVT::v4i16,
/* 35884*/        OPC_RecordChild2, // #1 = $Vn
/* 35885*/        OPC_CheckChild2Type, MVT::v4i16,
/* 35887*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35889*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35892*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35895*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1114:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 35905*/      /*SwitchType*/ 23, MVT::v2i32,// ->35930
/* 35907*/        OPC_CheckChild1Type, MVT::v2i32,
/* 35909*/        OPC_RecordChild2, // #1 = $Vn
/* 35910*/        OPC_CheckChild2Type, MVT::v2i32,
/* 35912*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35914*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35917*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35920*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1114:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 35930*/      /*SwitchType*/ 23, MVT::v8i16,// ->35955
/* 35932*/        OPC_CheckChild1Type, MVT::v8i16,
/* 35934*/        OPC_RecordChild2, // #1 = $Vn
/* 35935*/        OPC_CheckChild2Type, MVT::v8i16,
/* 35937*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35939*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35942*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35945*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1114:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 35955*/      /*SwitchType*/ 23, MVT::v4i32,// ->35980
/* 35957*/        OPC_CheckChild1Type, MVT::v4i32,
/* 35959*/        OPC_RecordChild2, // #1 = $Vn
/* 35960*/        OPC_CheckChild2Type, MVT::v4i32,
/* 35962*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35964*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35967*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35970*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1114:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 35980*/      /*SwitchType*/ 23, MVT::v8i8,// ->36005
/* 35982*/        OPC_CheckChild1Type, MVT::v8i8,
/* 35984*/        OPC_RecordChild2, // #1 = $Vn
/* 35985*/        OPC_CheckChild2Type, MVT::v8i8,
/* 35987*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 35989*/        OPC_EmitInteger, MVT::i32, 14, 
/* 35992*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35995*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1114:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 36005*/      /*SwitchType*/ 23, MVT::v16i8,// ->36030
/* 36007*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36009*/        OPC_RecordChild2, // #1 = $Vn
/* 36010*/        OPC_CheckChild2Type, MVT::v16i8,
/* 36012*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36014*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36017*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36020*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1114:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 36030*/      /*SwitchType*/ 23, MVT::v1i64,// ->36055
/* 36032*/        OPC_CheckChild1Type, MVT::v1i64,
/* 36034*/        OPC_RecordChild2, // #1 = $Vn
/* 36035*/        OPC_CheckChild2Type, MVT::v1i64,
/* 36037*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36039*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36042*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36045*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1114:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 36055*/      /*SwitchType*/ 23, MVT::v2i64,// ->36080
/* 36057*/        OPC_CheckChild1Type, MVT::v2i64,
/* 36059*/        OPC_RecordChild2, // #1 = $Vn
/* 36060*/        OPC_CheckChild2Type, MVT::v2i64,
/* 36062*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36064*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36067*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36070*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1114:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 36080*/      0, // EndSwitchType
/* 36081*/    /*Scope*/ 78|128,1/*206*/, /*->36289*/
/* 36083*/      OPC_CheckChild0Integer, 91|128,8/*1115*/, 
/* 36086*/      OPC_RecordChild1, // #0 = $Vm
/* 36087*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->36113
/* 36090*/        OPC_CheckChild1Type, MVT::v4i16,
/* 36092*/        OPC_RecordChild2, // #1 = $Vn
/* 36093*/        OPC_CheckChild2Type, MVT::v4i16,
/* 36095*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36097*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36100*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36103*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1115:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 36113*/      /*SwitchType*/ 23, MVT::v2i32,// ->36138
/* 36115*/        OPC_CheckChild1Type, MVT::v2i32,
/* 36117*/        OPC_RecordChild2, // #1 = $Vn
/* 36118*/        OPC_CheckChild2Type, MVT::v2i32,
/* 36120*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36122*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36125*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36128*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1115:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 36138*/      /*SwitchType*/ 23, MVT::v8i16,// ->36163
/* 36140*/        OPC_CheckChild1Type, MVT::v8i16,
/* 36142*/        OPC_RecordChild2, // #1 = $Vn
/* 36143*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36145*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36147*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36150*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36153*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1115:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 36163*/      /*SwitchType*/ 23, MVT::v4i32,// ->36188
/* 36165*/        OPC_CheckChild1Type, MVT::v4i32,
/* 36167*/        OPC_RecordChild2, // #1 = $Vn
/* 36168*/        OPC_CheckChild2Type, MVT::v4i32,
/* 36170*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36172*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36175*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36178*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1115:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 36188*/      /*SwitchType*/ 23, MVT::v8i8,// ->36213
/* 36190*/        OPC_CheckChild1Type, MVT::v8i8,
/* 36192*/        OPC_RecordChild2, // #1 = $Vn
/* 36193*/        OPC_CheckChild2Type, MVT::v8i8,
/* 36195*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36197*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1115:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 36213*/      /*SwitchType*/ 23, MVT::v16i8,// ->36238
/* 36215*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36217*/        OPC_RecordChild2, // #1 = $Vn
/* 36218*/        OPC_CheckChild2Type, MVT::v16i8,
/* 36220*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1115:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 36238*/      /*SwitchType*/ 23, MVT::v1i64,// ->36263
/* 36240*/        OPC_CheckChild1Type, MVT::v1i64,
/* 36242*/        OPC_RecordChild2, // #1 = $Vn
/* 36243*/        OPC_CheckChild2Type, MVT::v1i64,
/* 36245*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36247*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36250*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36253*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1115:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 36263*/      /*SwitchType*/ 23, MVT::v2i64,// ->36288
/* 36265*/        OPC_CheckChild1Type, MVT::v2i64,
/* 36267*/        OPC_RecordChild2, // #1 = $Vn
/* 36268*/        OPC_CheckChild2Type, MVT::v2i64,
/* 36270*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36272*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36275*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36278*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1115:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 36288*/      0, // EndSwitchType
/* 36289*/    /*Scope*/ 78|128,1/*206*/, /*->36497*/
/* 36291*/      OPC_CheckChild0Integer, 84|128,8/*1108*/, 
/* 36294*/      OPC_RecordChild1, // #0 = $Vm
/* 36295*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->36321
/* 36298*/        OPC_CheckChild1Type, MVT::v4i16,
/* 36300*/        OPC_RecordChild2, // #1 = $Vn
/* 36301*/        OPC_CheckChild2Type, MVT::v4i16,
/* 36303*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36305*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36308*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36311*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1108:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 36321*/      /*SwitchType*/ 23, MVT::v2i32,// ->36346
/* 36323*/        OPC_CheckChild1Type, MVT::v2i32,
/* 36325*/        OPC_RecordChild2, // #1 = $Vn
/* 36326*/        OPC_CheckChild2Type, MVT::v2i32,
/* 36328*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36330*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36333*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36336*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1108:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 36346*/      /*SwitchType*/ 23, MVT::v8i16,// ->36371
/* 36348*/        OPC_CheckChild1Type, MVT::v8i16,
/* 36350*/        OPC_RecordChild2, // #1 = $Vn
/* 36351*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36353*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36355*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36358*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36361*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1108:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 36371*/      /*SwitchType*/ 23, MVT::v4i32,// ->36396
/* 36373*/        OPC_CheckChild1Type, MVT::v4i32,
/* 36375*/        OPC_RecordChild2, // #1 = $Vn
/* 36376*/        OPC_CheckChild2Type, MVT::v4i32,
/* 36378*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36380*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36383*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36386*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1108:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 36396*/      /*SwitchType*/ 23, MVT::v8i8,// ->36421
/* 36398*/        OPC_CheckChild1Type, MVT::v8i8,
/* 36400*/        OPC_RecordChild2, // #1 = $Vn
/* 36401*/        OPC_CheckChild2Type, MVT::v8i8,
/* 36403*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36405*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36408*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36411*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1108:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 36421*/      /*SwitchType*/ 23, MVT::v16i8,// ->36446
/* 36423*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36425*/        OPC_RecordChild2, // #1 = $Vn
/* 36426*/        OPC_CheckChild2Type, MVT::v16i8,
/* 36428*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36430*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36433*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36436*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1108:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 36446*/      /*SwitchType*/ 23, MVT::v1i64,// ->36471
/* 36448*/        OPC_CheckChild1Type, MVT::v1i64,
/* 36450*/        OPC_RecordChild2, // #1 = $Vn
/* 36451*/        OPC_CheckChild2Type, MVT::v1i64,
/* 36453*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36455*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36458*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36461*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1108:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 36471*/      /*SwitchType*/ 23, MVT::v2i64,// ->36496
/* 36473*/        OPC_CheckChild1Type, MVT::v2i64,
/* 36475*/        OPC_RecordChild2, // #1 = $Vn
/* 36476*/        OPC_CheckChild2Type, MVT::v2i64,
/* 36478*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36480*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36483*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36486*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1108:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 36496*/      0, // EndSwitchType
/* 36497*/    /*Scope*/ 78|128,1/*206*/, /*->36705*/
/* 36499*/      OPC_CheckChild0Integer, 85|128,8/*1109*/, 
/* 36502*/      OPC_RecordChild1, // #0 = $Vm
/* 36503*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->36529
/* 36506*/        OPC_CheckChild1Type, MVT::v4i16,
/* 36508*/        OPC_RecordChild2, // #1 = $Vn
/* 36509*/        OPC_CheckChild2Type, MVT::v4i16,
/* 36511*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36513*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36516*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36519*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1109:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 36529*/      /*SwitchType*/ 23, MVT::v2i32,// ->36554
/* 36531*/        OPC_CheckChild1Type, MVT::v2i32,
/* 36533*/        OPC_RecordChild2, // #1 = $Vn
/* 36534*/        OPC_CheckChild2Type, MVT::v2i32,
/* 36536*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36538*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36541*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36544*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1109:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 36554*/      /*SwitchType*/ 23, MVT::v8i16,// ->36579
/* 36556*/        OPC_CheckChild1Type, MVT::v8i16,
/* 36558*/        OPC_RecordChild2, // #1 = $Vn
/* 36559*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36561*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36563*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36566*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36569*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1109:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 36579*/      /*SwitchType*/ 23, MVT::v4i32,// ->36604
/* 36581*/        OPC_CheckChild1Type, MVT::v4i32,
/* 36583*/        OPC_RecordChild2, // #1 = $Vn
/* 36584*/        OPC_CheckChild2Type, MVT::v4i32,
/* 36586*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36588*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36591*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36594*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1109:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 36604*/      /*SwitchType*/ 23, MVT::v8i8,// ->36629
/* 36606*/        OPC_CheckChild1Type, MVT::v8i8,
/* 36608*/        OPC_RecordChild2, // #1 = $Vn
/* 36609*/        OPC_CheckChild2Type, MVT::v8i8,
/* 36611*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36613*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36616*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36619*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1109:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 36629*/      /*SwitchType*/ 23, MVT::v16i8,// ->36654
/* 36631*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36633*/        OPC_RecordChild2, // #1 = $Vn
/* 36634*/        OPC_CheckChild2Type, MVT::v16i8,
/* 36636*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36638*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36641*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36644*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1109:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 36654*/      /*SwitchType*/ 23, MVT::v1i64,// ->36679
/* 36656*/        OPC_CheckChild1Type, MVT::v1i64,
/* 36658*/        OPC_RecordChild2, // #1 = $Vn
/* 36659*/        OPC_CheckChild2Type, MVT::v1i64,
/* 36661*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36663*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36666*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36669*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1109:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 36679*/      /*SwitchType*/ 23, MVT::v2i64,// ->36704
/* 36681*/        OPC_CheckChild1Type, MVT::v2i64,
/* 36683*/        OPC_RecordChild2, // #1 = $Vn
/* 36684*/        OPC_CheckChild2Type, MVT::v2i64,
/* 36686*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36688*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36691*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36694*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1109:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 36704*/      0, // EndSwitchType
/* 36705*/    /*Scope*/ 78|128,1/*206*/, /*->36913*/
/* 36707*/      OPC_CheckChild0Integer, 67|128,8/*1091*/, 
/* 36710*/      OPC_RecordChild1, // #0 = $Vm
/* 36711*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->36737
/* 36714*/        OPC_CheckChild1Type, MVT::v4i16,
/* 36716*/        OPC_RecordChild2, // #1 = $Vn
/* 36717*/        OPC_CheckChild2Type, MVT::v4i16,
/* 36719*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36721*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36724*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36727*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1091:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 36737*/      /*SwitchType*/ 23, MVT::v2i32,// ->36762
/* 36739*/        OPC_CheckChild1Type, MVT::v2i32,
/* 36741*/        OPC_RecordChild2, // #1 = $Vn
/* 36742*/        OPC_CheckChild2Type, MVT::v2i32,
/* 36744*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36746*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36749*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36752*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1091:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 36762*/      /*SwitchType*/ 23, MVT::v8i16,// ->36787
/* 36764*/        OPC_CheckChild1Type, MVT::v8i16,
/* 36766*/        OPC_RecordChild2, // #1 = $Vn
/* 36767*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36769*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36771*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36774*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36777*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1091:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 36787*/      /*SwitchType*/ 23, MVT::v4i32,// ->36812
/* 36789*/        OPC_CheckChild1Type, MVT::v4i32,
/* 36791*/        OPC_RecordChild2, // #1 = $Vn
/* 36792*/        OPC_CheckChild2Type, MVT::v4i32,
/* 36794*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36796*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36799*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36802*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1091:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 36812*/      /*SwitchType*/ 23, MVT::v8i8,// ->36837
/* 36814*/        OPC_CheckChild1Type, MVT::v8i8,
/* 36816*/        OPC_RecordChild2, // #1 = $Vn
/* 36817*/        OPC_CheckChild2Type, MVT::v8i8,
/* 36819*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36821*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36824*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36827*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1091:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 36837*/      /*SwitchType*/ 23, MVT::v16i8,// ->36862
/* 36839*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36841*/        OPC_RecordChild2, // #1 = $Vn
/* 36842*/        OPC_CheckChild2Type, MVT::v16i8,
/* 36844*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36846*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36849*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36852*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1091:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 36862*/      /*SwitchType*/ 23, MVT::v1i64,// ->36887
/* 36864*/        OPC_CheckChild1Type, MVT::v1i64,
/* 36866*/        OPC_RecordChild2, // #1 = $Vn
/* 36867*/        OPC_CheckChild2Type, MVT::v1i64,
/* 36869*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36871*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36874*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36877*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1091:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 36887*/      /*SwitchType*/ 23, MVT::v2i64,// ->36912
/* 36889*/        OPC_CheckChild1Type, MVT::v2i64,
/* 36891*/        OPC_RecordChild2, // #1 = $Vn
/* 36892*/        OPC_CheckChild2Type, MVT::v2i64,
/* 36894*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36896*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36899*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36902*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1091:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 36912*/      0, // EndSwitchType
/* 36913*/    /*Scope*/ 78|128,1/*206*/, /*->37121*/
/* 36915*/      OPC_CheckChild0Integer, 69|128,8/*1093*/, 
/* 36918*/      OPC_RecordChild1, // #0 = $Vm
/* 36919*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->36945
/* 36922*/        OPC_CheckChild1Type, MVT::v4i16,
/* 36924*/        OPC_RecordChild2, // #1 = $Vn
/* 36925*/        OPC_CheckChild2Type, MVT::v4i16,
/* 36927*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36929*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36932*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36935*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1093:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 36945*/      /*SwitchType*/ 23, MVT::v2i32,// ->36970
/* 36947*/        OPC_CheckChild1Type, MVT::v2i32,
/* 36949*/        OPC_RecordChild2, // #1 = $Vn
/* 36950*/        OPC_CheckChild2Type, MVT::v2i32,
/* 36952*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36954*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36957*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36960*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1093:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 36970*/      /*SwitchType*/ 23, MVT::v8i16,// ->36995
/* 36972*/        OPC_CheckChild1Type, MVT::v8i16,
/* 36974*/        OPC_RecordChild2, // #1 = $Vn
/* 36975*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36977*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 36979*/        OPC_EmitInteger, MVT::i32, 14, 
/* 36982*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36985*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1093:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 36995*/      /*SwitchType*/ 23, MVT::v4i32,// ->37020
/* 36997*/        OPC_CheckChild1Type, MVT::v4i32,
/* 36999*/        OPC_RecordChild2, // #1 = $Vn
/* 37000*/        OPC_CheckChild2Type, MVT::v4i32,
/* 37002*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37004*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37007*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37010*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1093:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 37020*/      /*SwitchType*/ 23, MVT::v8i8,// ->37045
/* 37022*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37024*/        OPC_RecordChild2, // #1 = $Vn
/* 37025*/        OPC_CheckChild2Type, MVT::v8i8,
/* 37027*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37029*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37032*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37035*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1093:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 37045*/      /*SwitchType*/ 23, MVT::v16i8,// ->37070
/* 37047*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37049*/        OPC_RecordChild2, // #1 = $Vn
/* 37050*/        OPC_CheckChild2Type, MVT::v16i8,
/* 37052*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37054*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37057*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37060*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1093:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 37070*/      /*SwitchType*/ 23, MVT::v1i64,// ->37095
/* 37072*/        OPC_CheckChild1Type, MVT::v1i64,
/* 37074*/        OPC_RecordChild2, // #1 = $Vn
/* 37075*/        OPC_CheckChild2Type, MVT::v1i64,
/* 37077*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37079*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37082*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37085*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1093:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 37095*/      /*SwitchType*/ 23, MVT::v2i64,// ->37120
/* 37097*/        OPC_CheckChild1Type, MVT::v2i64,
/* 37099*/        OPC_RecordChild2, // #1 = $Vn
/* 37100*/        OPC_CheckChild2Type, MVT::v2i64,
/* 37102*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37104*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37110*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1093:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 37120*/      0, // EndSwitchType
/* 37121*/    /*Scope*/ 78|128,1/*206*/, /*->37329*/
/* 37123*/      OPC_CheckChild0Integer, 62|128,8/*1086*/, 
/* 37126*/      OPC_RecordChild1, // #0 = $Vm
/* 37127*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->37153
/* 37130*/        OPC_CheckChild1Type, MVT::v4i16,
/* 37132*/        OPC_RecordChild2, // #1 = $Vn
/* 37133*/        OPC_CheckChild2Type, MVT::v4i16,
/* 37135*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37137*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37140*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37143*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1086:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 37153*/      /*SwitchType*/ 23, MVT::v2i32,// ->37178
/* 37155*/        OPC_CheckChild1Type, MVT::v2i32,
/* 37157*/        OPC_RecordChild2, // #1 = $Vn
/* 37158*/        OPC_CheckChild2Type, MVT::v2i32,
/* 37160*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37162*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37165*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37168*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1086:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 37178*/      /*SwitchType*/ 23, MVT::v8i16,// ->37203
/* 37180*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37182*/        OPC_RecordChild2, // #1 = $Vn
/* 37183*/        OPC_CheckChild2Type, MVT::v8i16,
/* 37185*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37187*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37190*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37193*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1086:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 37203*/      /*SwitchType*/ 23, MVT::v4i32,// ->37228
/* 37205*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37207*/        OPC_RecordChild2, // #1 = $Vn
/* 37208*/        OPC_CheckChild2Type, MVT::v4i32,
/* 37210*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37212*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37215*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37218*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1086:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 37228*/      /*SwitchType*/ 23, MVT::v8i8,// ->37253
/* 37230*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37232*/        OPC_RecordChild2, // #1 = $Vn
/* 37233*/        OPC_CheckChild2Type, MVT::v8i8,
/* 37235*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37237*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37240*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37243*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1086:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 37253*/      /*SwitchType*/ 23, MVT::v16i8,// ->37278
/* 37255*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37257*/        OPC_RecordChild2, // #1 = $Vn
/* 37258*/        OPC_CheckChild2Type, MVT::v16i8,
/* 37260*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37262*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37265*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37268*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1086:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 37278*/      /*SwitchType*/ 23, MVT::v1i64,// ->37303
/* 37280*/        OPC_CheckChild1Type, MVT::v1i64,
/* 37282*/        OPC_RecordChild2, // #1 = $Vn
/* 37283*/        OPC_CheckChild2Type, MVT::v1i64,
/* 37285*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37287*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37290*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37293*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1086:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 37303*/      /*SwitchType*/ 23, MVT::v2i64,// ->37328
/* 37305*/        OPC_CheckChild1Type, MVT::v2i64,
/* 37307*/        OPC_RecordChild2, // #1 = $Vn
/* 37308*/        OPC_CheckChild2Type, MVT::v2i64,
/* 37310*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1086:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 37328*/      0, // EndSwitchType
/* 37329*/    /*Scope*/ 78|128,1/*206*/, /*->37537*/
/* 37331*/      OPC_CheckChild0Integer, 63|128,8/*1087*/, 
/* 37334*/      OPC_RecordChild1, // #0 = $Vm
/* 37335*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->37361
/* 37338*/        OPC_CheckChild1Type, MVT::v4i16,
/* 37340*/        OPC_RecordChild2, // #1 = $Vn
/* 37341*/        OPC_CheckChild2Type, MVT::v4i16,
/* 37343*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37345*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37348*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37351*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1087:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 37361*/      /*SwitchType*/ 23, MVT::v2i32,// ->37386
/* 37363*/        OPC_CheckChild1Type, MVT::v2i32,
/* 37365*/        OPC_RecordChild2, // #1 = $Vn
/* 37366*/        OPC_CheckChild2Type, MVT::v2i32,
/* 37368*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37370*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37373*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37376*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1087:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 37386*/      /*SwitchType*/ 23, MVT::v8i16,// ->37411
/* 37388*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37390*/        OPC_RecordChild2, // #1 = $Vn
/* 37391*/        OPC_CheckChild2Type, MVT::v8i16,
/* 37393*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37395*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37398*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37401*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1087:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 37411*/      /*SwitchType*/ 23, MVT::v4i32,// ->37436
/* 37413*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37415*/        OPC_RecordChild2, // #1 = $Vn
/* 37416*/        OPC_CheckChild2Type, MVT::v4i32,
/* 37418*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37420*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37423*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37426*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1087:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 37436*/      /*SwitchType*/ 23, MVT::v8i8,// ->37461
/* 37438*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37440*/        OPC_RecordChild2, // #1 = $Vn
/* 37441*/        OPC_CheckChild2Type, MVT::v8i8,
/* 37443*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37445*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37448*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37451*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1087:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 37461*/      /*SwitchType*/ 23, MVT::v16i8,// ->37486
/* 37463*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37465*/        OPC_RecordChild2, // #1 = $Vn
/* 37466*/        OPC_CheckChild2Type, MVT::v16i8,
/* 37468*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37470*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37473*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37476*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1087:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 37486*/      /*SwitchType*/ 23, MVT::v1i64,// ->37511
/* 37488*/        OPC_CheckChild1Type, MVT::v1i64,
/* 37490*/        OPC_RecordChild2, // #1 = $Vn
/* 37491*/        OPC_CheckChild2Type, MVT::v1i64,
/* 37493*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37495*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37498*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37501*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1087:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 37511*/      /*SwitchType*/ 23, MVT::v2i64,// ->37536
/* 37513*/        OPC_CheckChild1Type, MVT::v2i64,
/* 37515*/        OPC_RecordChild2, // #1 = $Vn
/* 37516*/        OPC_CheckChild2Type, MVT::v2i64,
/* 37518*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37520*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37523*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37526*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1087:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 37536*/      0, // EndSwitchType
/* 37537*/    /*Scope*/ 4|128,1/*132*/, /*->37671*/
/* 37539*/      OPC_CheckChild0Integer, 49|128,8/*1073*/, 
/* 37542*/      OPC_RecordChild1, // #0 = $Vm
/* 37543*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->37565
/* 37546*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37548*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37550*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37553*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37556*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1073:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 37565*/      /*SwitchType*/ 19, MVT::v4i16,// ->37586
/* 37567*/        OPC_CheckChild1Type, MVT::v4i16,
/* 37569*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37571*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37574*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37577*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1073:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 37586*/      /*SwitchType*/ 19, MVT::v2i32,// ->37607
/* 37588*/        OPC_CheckChild1Type, MVT::v2i32,
/* 37590*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37592*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37598*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1073:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 37607*/      /*SwitchType*/ 19, MVT::v16i8,// ->37628
/* 37609*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37611*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37613*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37616*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37619*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1073:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 37628*/      /*SwitchType*/ 19, MVT::v8i16,// ->37649
/* 37630*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37632*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37634*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37637*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37640*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1073:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 37649*/      /*SwitchType*/ 19, MVT::v4i32,// ->37670
/* 37651*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37653*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37655*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37658*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37661*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1073:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 37670*/      0, // EndSwitchType
/* 37671*/    /*Scope*/ 4|128,1/*132*/, /*->37805*/
/* 37673*/      OPC_CheckChild0Integer, 57|128,8/*1081*/, 
/* 37676*/      OPC_RecordChild1, // #0 = $Vm
/* 37677*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->37699
/* 37680*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37682*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37684*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37687*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37690*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1081:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 37699*/      /*SwitchType*/ 19, MVT::v4i16,// ->37720
/* 37701*/        OPC_CheckChild1Type, MVT::v4i16,
/* 37703*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37705*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37708*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37711*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1081:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 37720*/      /*SwitchType*/ 19, MVT::v2i32,// ->37741
/* 37722*/        OPC_CheckChild1Type, MVT::v2i32,
/* 37724*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37726*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37729*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37732*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1081:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 37741*/      /*SwitchType*/ 19, MVT::v16i8,// ->37762
/* 37743*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37745*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37747*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37750*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37753*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1081:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 37762*/      /*SwitchType*/ 19, MVT::v8i16,// ->37783
/* 37764*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37766*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37768*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37771*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37774*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1081:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 37783*/      /*SwitchType*/ 19, MVT::v4i32,// ->37804
/* 37785*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37787*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37789*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37792*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37795*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1081:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 37804*/      0, // EndSwitchType
/* 37805*/    /*Scope*/ 4|128,1/*132*/, /*->37939*/
/* 37807*/      OPC_CheckChild0Integer, 126|128,7/*1022*/, 
/* 37810*/      OPC_RecordChild1, // #0 = $Vm
/* 37811*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->37833
/* 37814*/        OPC_CheckChild1Type, MVT::v8i8,
/* 37816*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37818*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37821*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37824*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1022:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 37833*/      /*SwitchType*/ 19, MVT::v4i16,// ->37854
/* 37835*/        OPC_CheckChild1Type, MVT::v4i16,
/* 37837*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1022:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 37854*/      /*SwitchType*/ 19, MVT::v2i32,// ->37875
/* 37856*/        OPC_CheckChild1Type, MVT::v2i32,
/* 37858*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37860*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37866*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1022:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 37875*/      /*SwitchType*/ 19, MVT::v16i8,// ->37896
/* 37877*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37879*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37881*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37884*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37887*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1022:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 37896*/      /*SwitchType*/ 19, MVT::v8i16,// ->37917
/* 37898*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37900*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37902*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37905*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37908*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1022:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 37917*/      /*SwitchType*/ 19, MVT::v4i32,// ->37938
/* 37919*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37921*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37923*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37926*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37929*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1022:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 37938*/      0, // EndSwitchType
/* 37939*/    /*Scope*/ 69, /*->38009*/
/* 37940*/      OPC_CheckChild0Integer, 54|128,8/*1078*/, 
/* 37943*/      OPC_RecordChild1, // #0 = $Vm
/* 37944*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->37966
/* 37947*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37949*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37951*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37954*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37957*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1078:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 37966*/      /*SwitchType*/ 19, MVT::v4i16,// ->37987
/* 37968*/        OPC_CheckChild1Type, MVT::v4i32,
/* 37970*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37972*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37975*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37978*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1078:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 37987*/      /*SwitchType*/ 19, MVT::v2i32,// ->38008
/* 37989*/        OPC_CheckChild1Type, MVT::v2i64,
/* 37991*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 37993*/        OPC_EmitInteger, MVT::i32, 14, 
/* 37996*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37999*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1078:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 38008*/      0, // EndSwitchType
/* 38009*/    /*Scope*/ 69, /*->38079*/
/* 38010*/      OPC_CheckChild0Integer, 56|128,8/*1080*/, 
/* 38013*/      OPC_RecordChild1, // #0 = $Vm
/* 38014*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->38036
/* 38017*/        OPC_CheckChild1Type, MVT::v8i16,
/* 38019*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38021*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38024*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38027*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1080:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 38036*/      /*SwitchType*/ 19, MVT::v4i16,// ->38057
/* 38038*/        OPC_CheckChild1Type, MVT::v4i32,
/* 38040*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38042*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38045*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38048*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1080:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 38057*/      /*SwitchType*/ 19, MVT::v2i32,// ->38078
/* 38059*/        OPC_CheckChild1Type, MVT::v2i64,
/* 38061*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38063*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38066*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38069*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1080:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 38078*/      0, // EndSwitchType
/* 38079*/    /*Scope*/ 69, /*->38149*/
/* 38080*/      OPC_CheckChild0Integer, 55|128,8/*1079*/, 
/* 38083*/      OPC_RecordChild1, // #0 = $Vm
/* 38084*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->38106
/* 38087*/        OPC_CheckChild1Type, MVT::v8i16,
/* 38089*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38091*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38094*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38097*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1079:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 38106*/      /*SwitchType*/ 19, MVT::v4i16,// ->38127
/* 38108*/        OPC_CheckChild1Type, MVT::v4i32,
/* 38110*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38112*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38115*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38118*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1079:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 38127*/      /*SwitchType*/ 19, MVT::v2i32,// ->38148
/* 38129*/        OPC_CheckChild1Type, MVT::v2i64,
/* 38131*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38133*/        OPC_EmitInteger, MVT::i32, 14, 
/* 38136*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38139*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1079:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 38148*/      0, // EndSwitchType
/* 38149*/    /*Scope*/ 58, /*->38208*/
/* 38150*/      OPC_CheckChild0Integer, 127|128,7/*1023*/, 
/* 38153*/      OPC_RecordChild1, // #0 = $Vm
/* 38154*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38168
/* 38157*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38159*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38161*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1023:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38168*/      /*SwitchType*/ 11, MVT::v4i32,// ->38181
/* 38170*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38172*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38174*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1023:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38181*/      /*SwitchType*/ 11, MVT::v4i16,// ->38194
/* 38183*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38185*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38187*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1023:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38194*/      /*SwitchType*/ 11, MVT::v8i16,// ->38207
/* 38196*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38198*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38200*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1023:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38207*/      0, // EndSwitchType
/* 38208*/    /*Scope*/ 58, /*->38267*/
/* 38209*/      OPC_CheckChild0Integer, 0|128,8/*1024*/, 
/* 38212*/      OPC_RecordChild1, // #0 = $Vm
/* 38213*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38227
/* 38216*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38218*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38220*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1024:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38227*/      /*SwitchType*/ 11, MVT::v4i32,// ->38240
/* 38229*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38231*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1024:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38240*/      /*SwitchType*/ 11, MVT::v4i16,// ->38253
/* 38242*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38244*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38246*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1024:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38253*/      /*SwitchType*/ 11, MVT::v8i16,// ->38266
/* 38255*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38257*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38259*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1024:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38266*/      0, // EndSwitchType
/* 38267*/    /*Scope*/ 58, /*->38326*/
/* 38268*/      OPC_CheckChild0Integer, 9|128,8/*1033*/, 
/* 38271*/      OPC_RecordChild1, // #0 = $Vm
/* 38272*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38286
/* 38275*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38277*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38279*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1033:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38286*/      /*SwitchType*/ 11, MVT::v4i32,// ->38299
/* 38288*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38290*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38292*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1033:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38299*/      /*SwitchType*/ 11, MVT::v4i16,// ->38312
/* 38301*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38303*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38305*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1033:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38312*/      /*SwitchType*/ 11, MVT::v8i16,// ->38325
/* 38314*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38316*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1033:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38325*/      0, // EndSwitchType
/* 38326*/    /*Scope*/ 58, /*->38385*/
/* 38327*/      OPC_CheckChild0Integer, 10|128,8/*1034*/, 
/* 38330*/      OPC_RecordChild1, // #0 = $Vm
/* 38331*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38345
/* 38334*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38336*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38338*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1034:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38345*/      /*SwitchType*/ 11, MVT::v4i32,// ->38358
/* 38347*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38349*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38351*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1034:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38358*/      /*SwitchType*/ 11, MVT::v4i16,// ->38371
/* 38360*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38362*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38364*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1034:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38371*/      /*SwitchType*/ 11, MVT::v8i16,// ->38384
/* 38373*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38375*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38377*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1034:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38384*/      0, // EndSwitchType
/* 38385*/    /*Scope*/ 58, /*->38444*/
/* 38386*/      OPC_CheckChild0Integer, 11|128,8/*1035*/, 
/* 38389*/      OPC_RecordChild1, // #0 = $Vm
/* 38390*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38404
/* 38393*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38395*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38397*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1035:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38404*/      /*SwitchType*/ 11, MVT::v4i32,// ->38417
/* 38406*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38408*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38410*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1035:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38417*/      /*SwitchType*/ 11, MVT::v4i16,// ->38430
/* 38419*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38421*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38423*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1035:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38430*/      /*SwitchType*/ 11, MVT::v8i16,// ->38443
/* 38432*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38434*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38436*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1035:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38443*/      0, // EndSwitchType
/* 38444*/    /*Scope*/ 58, /*->38503*/
/* 38445*/      OPC_CheckChild0Integer, 12|128,8/*1036*/, 
/* 38448*/      OPC_RecordChild1, // #0 = $Vm
/* 38449*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38463
/* 38452*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38454*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38456*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1036:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38463*/      /*SwitchType*/ 11, MVT::v4i32,// ->38476
/* 38465*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38467*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38469*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1036:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38476*/      /*SwitchType*/ 11, MVT::v4i16,// ->38489
/* 38478*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38480*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38482*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1036:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38489*/      /*SwitchType*/ 11, MVT::v8i16,// ->38502
/* 38491*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38493*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38495*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1036:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38502*/      0, // EndSwitchType
/* 38503*/    /*Scope*/ 58, /*->38562*/
/* 38504*/      OPC_CheckChild0Integer, 7|128,8/*1031*/, 
/* 38507*/      OPC_RecordChild1, // #0 = $Vm
/* 38508*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38522
/* 38511*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38513*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38515*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1031:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38522*/      /*SwitchType*/ 11, MVT::v4i32,// ->38535
/* 38524*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38526*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38528*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1031:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38535*/      /*SwitchType*/ 11, MVT::v4i16,// ->38548
/* 38537*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38539*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38541*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1031:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38548*/      /*SwitchType*/ 11, MVT::v8i16,// ->38561
/* 38550*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38552*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38554*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1031:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38561*/      0, // EndSwitchType
/* 38562*/    /*Scope*/ 58, /*->38621*/
/* 38563*/      OPC_CheckChild0Integer, 8|128,8/*1032*/, 
/* 38566*/      OPC_RecordChild1, // #0 = $Vm
/* 38567*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->38581
/* 38570*/        OPC_CheckChild1Type, MVT::v2f32,
/* 38572*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38574*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1032:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 38581*/      /*SwitchType*/ 11, MVT::v4i32,// ->38594
/* 38583*/        OPC_CheckChild1Type, MVT::v4f32,
/* 38585*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38587*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1032:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 38594*/      /*SwitchType*/ 11, MVT::v4i16,// ->38607
/* 38596*/        OPC_CheckChild1Type, MVT::v4f16,
/* 38598*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38600*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1032:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 38607*/      /*SwitchType*/ 11, MVT::v8i16,// ->38620
/* 38609*/        OPC_CheckChild1Type, MVT::v8f16,
/* 38611*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 38613*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1032:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 38620*/      0, // EndSwitchType
/* 38621*/    /*Scope*/ 21, /*->38643*/
/* 38622*/      OPC_CheckChild0Integer, 3|128,8/*1027*/, 
/* 38625*/      OPC_RecordChild1, // #0 = $Vm
/* 38626*/      OPC_CheckPatternPredicate, 45, // (Subtarget->hasFP16()) && (Subtarget->hasNEON())
/* 38628*/      OPC_EmitInteger, MVT::i32, 14, 
/* 38631*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38634*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2h), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1027:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                // Dst: (VCVTf2h:{ *:[v4i16] } QPR:{ *:[v4f32] }:$Vm)
/* 38643*/    /*Scope*/ 25, /*->38669*/
/* 38644*/      OPC_CheckChild0Integer, 106|128,8/*1130*/, 
/* 38647*/      OPC_RecordChild1, // #0 = $orig
/* 38648*/      OPC_RecordChild2, // #1 = $Vn
/* 38649*/      OPC_RecordChild3, // #2 = $Vm
/* 38650*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 38652*/      OPC_EmitInteger, MVT::i32, 14, 
/* 38655*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38658*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX1), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1130:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBX1:{ *:[v8i8] } DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 38669*/    /*Scope*/ 15, /*->38685*/
/* 38670*/      OPC_CheckChild0Integer, 104|128,7/*1000*/, 
/* 38673*/      OPC_RecordChild1, // #0 = $src
/* 38674*/      OPC_RecordChild2, // #1 = $Vm
/* 38675*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38677*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESD), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1000:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESD:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
/* 38685*/    /*Scope*/ 15, /*->38701*/
/* 38686*/      OPC_CheckChild0Integer, 105|128,7/*1001*/, 
/* 38689*/      OPC_RecordChild1, // #0 = $src
/* 38690*/      OPC_RecordChild2, // #1 = $Vm
/* 38691*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38693*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESE), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1001:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESE:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
/* 38701*/    /*Scope*/ 13, /*->38715*/
/* 38702*/      OPC_CheckChild0Integer, 106|128,7/*1002*/, 
/* 38705*/      OPC_RecordChild1, // #0 = $Vm
/* 38706*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38708*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESIMC), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1002:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESIMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 38715*/    /*Scope*/ 13, /*->38729*/
/* 38716*/      OPC_CheckChild0Integer, 107|128,7/*1003*/, 
/* 38719*/      OPC_RecordChild1, // #0 = $Vm
/* 38720*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38722*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESMC), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1003:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 38729*/    /*Scope*/ 15, /*->38745*/
/* 38730*/      OPC_CheckChild0Integer, 114|128,7/*1010*/, 
/* 38733*/      OPC_RecordChild1, // #0 = $src
/* 38734*/      OPC_RecordChild2, // #1 = $Vm
/* 38735*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38737*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1SU1), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1010:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA1SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
/* 38745*/    /*Scope*/ 15, /*->38761*/
/* 38746*/      OPC_CheckChild0Integer, 117|128,7/*1013*/, 
/* 38749*/      OPC_RecordChild1, // #0 = $src
/* 38750*/      OPC_RecordChild2, // #1 = $Vm
/* 38751*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38753*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256SU0), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1013:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
/* 38761*/    /*Scope*/ 17, /*->38779*/
/* 38762*/      OPC_CheckChild0Integer, 113|128,7/*1009*/, 
/* 38765*/      OPC_RecordChild1, // #0 = $src
/* 38766*/      OPC_RecordChild2, // #1 = $Vn
/* 38767*/      OPC_RecordChild3, // #2 = $Vm
/* 38768*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38770*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1SU0), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1009:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA1SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 38779*/    /*Scope*/ 17, /*->38797*/
/* 38780*/      OPC_CheckChild0Integer, 115|128,7/*1011*/, 
/* 38783*/      OPC_RecordChild1, // #0 = $src
/* 38784*/      OPC_RecordChild2, // #1 = $Vn
/* 38785*/      OPC_RecordChild3, // #2 = $Vm
/* 38786*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38788*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256H), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1011:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256H:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 38797*/    /*Scope*/ 17, /*->38815*/
/* 38798*/      OPC_CheckChild0Integer, 116|128,7/*1012*/, 
/* 38801*/      OPC_RecordChild1, // #0 = $src
/* 38802*/      OPC_RecordChild2, // #1 = $Vn
/* 38803*/      OPC_RecordChild3, // #2 = $Vm
/* 38804*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38806*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256H2), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1012:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256H2:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 38815*/    /*Scope*/ 17, /*->38833*/
/* 38816*/      OPC_CheckChild0Integer, 118|128,7/*1014*/, 
/* 38819*/      OPC_RecordChild1, // #0 = $src
/* 38820*/      OPC_RecordChild2, // #1 = $Vn
/* 38821*/      OPC_RecordChild3, // #2 = $Vm
/* 38822*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 38824*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256SU1), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1014:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 38833*/    /*Scope*/ 44, /*->38878*/
/* 38834*/      OPC_CheckChild0Integer, 107|128,8/*1131*/, 
/* 38837*/      OPC_RecordChild1, // #0 = $orig
/* 38838*/      OPC_RecordChild2, // #1 = $Vn0
/* 38839*/      OPC_RecordChild3, // #2 = $Vn1
/* 38840*/      OPC_RecordChild4, // #3 = $Vm
/* 38841*/      OPC_EmitInteger, MVT::i32, ARM::DPairRegClassID,
/* 38844*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 38847*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 38850*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v16i8, 5/*#Ops*/, 4, 1, 5, 2, 6,  // Results = #7
/* 38861*/      OPC_EmitInteger, MVT::i32, 14, 
/* 38864*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38867*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX2), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 7, 3, 8, 9, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1131:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBX2:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v16i8] } DPair:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 38878*/    /*Scope*/ 54, /*->38933*/
/* 38879*/      OPC_CheckChild0Integer, 105|128,8/*1129*/, 
/* 38882*/      OPC_RecordChild1, // #0 = $Vn0
/* 38883*/      OPC_RecordChild2, // #1 = $Vn1
/* 38884*/      OPC_RecordChild3, // #2 = $Vn2
/* 38885*/      OPC_RecordChild4, // #3 = $Vn3
/* 38886*/      OPC_RecordChild5, // #4 = $Vm
/* 38887*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 38890*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 38893*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 38896*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 38899*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 38902*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 5, 0, 6, 1, 7, 2, 8, 3, 9,  // Results = #10
/* 38917*/      OPC_EmitInteger, MVT::i32, 14, 
/* 38920*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38923*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL4Pseudo), 0,
                    MVT::v8i8, 4/*#Ops*/, 10, 4, 11, 12, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1129:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBL4Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 38933*/    /*Scope*/ 56, /*->38990*/
/* 38934*/      OPC_CheckChild0Integer, 109|128,8/*1133*/, 
/* 38937*/      OPC_RecordChild1, // #0 = $orig
/* 38938*/      OPC_RecordChild2, // #1 = $Vn0
/* 38939*/      OPC_RecordChild3, // #2 = $Vn1
/* 38940*/      OPC_RecordChild4, // #3 = $Vn2
/* 38941*/      OPC_RecordChild5, // #4 = $Vn3
/* 38942*/      OPC_RecordChild6, // #5 = $Vm
/* 38943*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 38946*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 38949*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 38952*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 38955*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 38958*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 6, 1, 7, 2, 8, 3, 9, 4, 10,  // Results = #11
/* 38973*/      OPC_EmitInteger, MVT::i32, 14, 
/* 38976*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38979*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX4Pseudo), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 11, 5, 12, 13, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1133:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBX4Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 38990*/    /*Scope*/ 59, /*->39050*/
/* 38991*/      OPC_CheckChild0Integer, 104|128,8/*1128*/, 
/* 38994*/      OPC_RecordChild1, // #0 = $Vn0
/* 38995*/      OPC_RecordChild2, // #1 = $Vn1
/* 38996*/      OPC_RecordChild3, // #2 = $Vn2
/* 38997*/      OPC_RecordChild4, // #3 = $Vm
/* 38998*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 39001*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 39004*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 39007*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 39010*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #8
/* 39016*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 39019*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 4, 0, 5, 1, 6, 2, 7, 8, 9,  // Results = #10
/* 39034*/      OPC_EmitInteger, MVT::i32, 14, 
/* 39037*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39040*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL3Pseudo), 0,
                    MVT::v8i8, 4/*#Ops*/, 10, 3, 11, 12, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1128:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBL3Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 39050*/    /*Scope*/ 61, /*->39112*/
/* 39051*/      OPC_CheckChild0Integer, 108|128,8/*1132*/, 
/* 39054*/      OPC_RecordChild1, // #0 = $orig
/* 39055*/      OPC_RecordChild2, // #1 = $Vn0
/* 39056*/      OPC_RecordChild3, // #2 = $Vn1
/* 39057*/      OPC_RecordChild4, // #3 = $Vn2
/* 39058*/      OPC_RecordChild5, // #4 = $Vm
/* 39059*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 39062*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 39065*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 39068*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 39071*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #9
/* 39077*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 39080*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 5, 1, 6, 2, 7, 3, 8, 9, 10,  // Results = #11
/* 39095*/      OPC_EmitInteger, MVT::i32, 14, 
/* 39098*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39101*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX3Pseudo), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 11, 4, 12, 13, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1132:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBX3Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 39112*/    /*Scope*/ 41, /*->39154*/
/* 39113*/      OPC_CheckChild0Integer, 109|128,7/*1005*/, 
/* 39116*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 39117*/      OPC_RecordChild2, // #1 = $hash_e
/* 39118*/      OPC_RecordChild3, // #2 = $wk
/* 39119*/      OPC_EmitInteger, MVT::i64, 0, 
/* 39122*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 39125*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 39133*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 39136*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 39145*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1C), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1005:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) - Complexity = 8
                // Dst: (SHA1C:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
/* 39154*/    /*Scope*/ 41, /*->39196*/
/* 39155*/      OPC_CheckChild0Integer, 111|128,7/*1007*/, 
/* 39158*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 39159*/      OPC_RecordChild2, // #1 = $hash_e
/* 39160*/      OPC_RecordChild3, // #2 = $wk
/* 39161*/      OPC_EmitInteger, MVT::i64, 0, 
/* 39164*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 39167*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 39175*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 39178*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 39187*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1M), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1007:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) - Complexity = 8
                // Dst: (SHA1M:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
/* 39196*/    /*Scope*/ 41, /*->39238*/
/* 39197*/      OPC_CheckChild0Integer, 112|128,7/*1008*/, 
/* 39200*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 39201*/      OPC_RecordChild2, // #1 = $hash_e
/* 39202*/      OPC_RecordChild3, // #2 = $wk
/* 39203*/      OPC_EmitInteger, MVT::i64, 0, 
/* 39206*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 39209*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 39217*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 39220*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 39229*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1P), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1008:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) - Complexity = 8
                // Dst: (SHA1P:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
/* 39238*/    /*Scope*/ 2|128,1/*130*/, /*->39370*/
/* 39240*/      OPC_CheckChild0Integer, 4|128,8/*1028*/, 
/* 39243*/      OPC_RecordChild1, // #0 = $Vm
/* 39244*/      OPC_Scope, 30, /*->39276*/ // 4 children in Scope
/* 39246*/        OPC_CheckChild1Type, MVT::v2i32,
/* 39248*/        OPC_RecordChild2, // #1 = $SIMM
/* 39249*/        OPC_MoveChild2,
/* 39250*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39253*/        OPC_MoveParent,
/* 39254*/        OPC_CheckType, MVT::v2f32,
/* 39256*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39258*/        OPC_EmitConvertToTarget, 1,
/* 39260*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39263*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39266*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2fd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1028:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39276*/      /*Scope*/ 30, /*->39307*/
/* 39277*/        OPC_CheckChild1Type, MVT::v4i16,
/* 39279*/        OPC_RecordChild2, // #1 = $SIMM
/* 39280*/        OPC_MoveChild2,
/* 39281*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39284*/        OPC_MoveParent,
/* 39285*/        OPC_CheckType, MVT::v4f16,
/* 39287*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39289*/        OPC_EmitConvertToTarget, 1,
/* 39291*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39297*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2hd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1028:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39307*/      /*Scope*/ 30, /*->39338*/
/* 39308*/        OPC_CheckChild1Type, MVT::v4i32,
/* 39310*/        OPC_RecordChild2, // #1 = $SIMM
/* 39311*/        OPC_MoveChild2,
/* 39312*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39315*/        OPC_MoveParent,
/* 39316*/        OPC_CheckType, MVT::v4f32,
/* 39318*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39320*/        OPC_EmitConvertToTarget, 1,
/* 39322*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39325*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39328*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2fq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1028:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39338*/      /*Scope*/ 30, /*->39369*/
/* 39339*/        OPC_CheckChild1Type, MVT::v8i16,
/* 39341*/        OPC_RecordChild2, // #1 = $SIMM
/* 39342*/        OPC_MoveChild2,
/* 39343*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39346*/        OPC_MoveParent,
/* 39347*/        OPC_CheckType, MVT::v8f16,
/* 39349*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39351*/        OPC_EmitConvertToTarget, 1,
/* 39353*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39356*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39359*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2hq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1028:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39369*/      0, /*End of Scope*/
/* 39370*/    /*Scope*/ 2|128,1/*130*/, /*->39502*/
/* 39372*/      OPC_CheckChild0Integer, 5|128,8/*1029*/, 
/* 39375*/      OPC_RecordChild1, // #0 = $Vm
/* 39376*/      OPC_Scope, 30, /*->39408*/ // 4 children in Scope
/* 39378*/        OPC_CheckChild1Type, MVT::v2i32,
/* 39380*/        OPC_RecordChild2, // #1 = $SIMM
/* 39381*/        OPC_MoveChild2,
/* 39382*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39385*/        OPC_MoveParent,
/* 39386*/        OPC_CheckType, MVT::v2f32,
/* 39388*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39390*/        OPC_EmitConvertToTarget, 1,
/* 39392*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39395*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39398*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2fd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1029:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39408*/      /*Scope*/ 30, /*->39439*/
/* 39409*/        OPC_CheckChild1Type, MVT::v4i16,
/* 39411*/        OPC_RecordChild2, // #1 = $SIMM
/* 39412*/        OPC_MoveChild2,
/* 39413*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39416*/        OPC_MoveParent,
/* 39417*/        OPC_CheckType, MVT::v4f16,
/* 39419*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39421*/        OPC_EmitConvertToTarget, 1,
/* 39423*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39426*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39429*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2hd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1029:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39439*/      /*Scope*/ 30, /*->39470*/
/* 39440*/        OPC_CheckChild1Type, MVT::v4i32,
/* 39442*/        OPC_RecordChild2, // #1 = $SIMM
/* 39443*/        OPC_MoveChild2,
/* 39444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39447*/        OPC_MoveParent,
/* 39448*/        OPC_CheckType, MVT::v4f32,
/* 39450*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39452*/        OPC_EmitConvertToTarget, 1,
/* 39454*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39457*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39460*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2fq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1029:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39470*/      /*Scope*/ 30, /*->39501*/
/* 39471*/        OPC_CheckChild1Type, MVT::v8i16,
/* 39473*/        OPC_RecordChild2, // #1 = $SIMM
/* 39474*/        OPC_MoveChild2,
/* 39475*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39478*/        OPC_MoveParent,
/* 39479*/        OPC_CheckType, MVT::v8f16,
/* 39481*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39483*/        OPC_EmitConvertToTarget, 1,
/* 39485*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39488*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39491*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2hq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1029:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 39501*/      0, /*End of Scope*/
/* 39502*/    /*Scope*/ 106, /*->39609*/
/* 39503*/      OPC_CheckChild0Integer, 74|128,8/*1098*/, 
/* 39506*/      OPC_RecordChild1, // #0 = $Vn
/* 39507*/      OPC_SwitchType /*4 cases */, 23, MVT::v2f32,// ->39533
/* 39510*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39512*/        OPC_RecordChild2, // #1 = $Vm
/* 39513*/        OPC_CheckChild2Type, MVT::v2f32,
/* 39515*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39517*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39520*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39523*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPSfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1098:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 39533*/      /*SwitchType*/ 23, MVT::v4f32,// ->39558
/* 39535*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39537*/        OPC_RecordChild2, // #1 = $Vm
/* 39538*/        OPC_CheckChild2Type, MVT::v4f32,
/* 39540*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39548*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPSfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1098:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 39558*/      /*SwitchType*/ 23, MVT::v4f16,// ->39583
/* 39560*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39562*/        OPC_RecordChild2, // #1 = $Vm
/* 39563*/        OPC_CheckChild2Type, MVT::v4f16,
/* 39565*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39567*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39570*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39573*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPShd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1098:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 39583*/      /*SwitchType*/ 23, MVT::v8f16,// ->39608
/* 39585*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39587*/        OPC_RecordChild2, // #1 = $Vm
/* 39588*/        OPC_CheckChild2Type, MVT::v8f16,
/* 39590*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39592*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39598*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPShq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1098:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 39608*/      0, // EndSwitchType
/* 39609*/    /*Scope*/ 106, /*->39716*/
/* 39610*/      OPC_CheckChild0Integer, 87|128,8/*1111*/, 
/* 39613*/      OPC_RecordChild1, // #0 = $Vn
/* 39614*/      OPC_SwitchType /*4 cases */, 23, MVT::v2f32,// ->39640
/* 39617*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39619*/        OPC_RecordChild2, // #1 = $Vm
/* 39620*/        OPC_CheckChild2Type, MVT::v2f32,
/* 39622*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39624*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39630*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTSfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1111:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 39640*/      /*SwitchType*/ 23, MVT::v4f32,// ->39665
/* 39642*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39644*/        OPC_RecordChild2, // #1 = $Vm
/* 39645*/        OPC_CheckChild2Type, MVT::v4f32,
/* 39647*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 39649*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39652*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39655*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTSfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1111:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 39665*/      /*SwitchType*/ 23, MVT::v4f16,// ->39690
/* 39667*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39669*/        OPC_RecordChild2, // #1 = $Vm
/* 39670*/        OPC_CheckChild2Type, MVT::v4f16,
/* 39672*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39674*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39677*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39680*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTShd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1111:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 39690*/      /*SwitchType*/ 23, MVT::v8f16,// ->39715
/* 39692*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39694*/        OPC_RecordChild2, // #1 = $Vm
/* 39695*/        OPC_CheckChild2Type, MVT::v8f16,
/* 39697*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 39699*/        OPC_EmitInteger, MVT::i32, 14, 
/* 39702*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39705*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTShq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1111:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 39715*/      0, // EndSwitchType
/* 39716*/    /*Scope*/ 21, /*->39738*/
/* 39717*/      OPC_CheckChild0Integer, 6|128,8/*1030*/, 
/* 39720*/      OPC_RecordChild1, // #0 = $Vm
/* 39721*/      OPC_CheckPatternPredicate, 45, // (Subtarget->hasFP16()) && (Subtarget->hasNEON())
/* 39723*/      OPC_EmitInteger, MVT::i32, 14, 
/* 39726*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39729*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2f), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1030:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                // Dst: (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4i16] }:$Vm)
/* 39738*/    /*Scope*/ 58, /*->39797*/
/* 39739*/      OPC_CheckChild0Integer, 81|128,8/*1105*/, 
/* 39742*/      OPC_RecordChild1, // #0 = $Vm
/* 39743*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->39757
/* 39746*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39748*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39750*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1105:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 39757*/      /*SwitchType*/ 11, MVT::v4f32,// ->39770
/* 39759*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39761*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39763*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1105:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 39770*/      /*SwitchType*/ 11, MVT::v4f16,// ->39783
/* 39772*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39774*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39776*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1105:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 39783*/      /*SwitchType*/ 11, MVT::v8f16,// ->39796
/* 39785*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39787*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39789*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1105:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 39796*/      0, // EndSwitchType
/* 39797*/    /*Scope*/ 58, /*->39856*/
/* 39798*/      OPC_CheckChild0Integer, 77|128,8/*1101*/, 
/* 39801*/      OPC_RecordChild1, // #0 = $Vm
/* 39802*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->39816
/* 39805*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39807*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39809*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1101:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 39816*/      /*SwitchType*/ 11, MVT::v4f32,// ->39829
/* 39818*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39820*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39822*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1101:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 39829*/      /*SwitchType*/ 11, MVT::v4f16,// ->39842
/* 39831*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39833*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39835*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1101:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 39842*/      /*SwitchType*/ 11, MVT::v8f16,// ->39855
/* 39844*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39846*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39848*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1101:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 39855*/      0, // EndSwitchType
/* 39856*/    /*Scope*/ 58, /*->39915*/
/* 39857*/      OPC_CheckChild0Integer, 82|128,8/*1106*/, 
/* 39860*/      OPC_RecordChild1, // #0 = $Vm
/* 39861*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->39875
/* 39864*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39866*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39868*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1106:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 39875*/      /*SwitchType*/ 11, MVT::v4f32,// ->39888
/* 39877*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39879*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39881*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1106:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 39888*/      /*SwitchType*/ 11, MVT::v4f16,// ->39901
/* 39890*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39892*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39894*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1106:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 39901*/      /*SwitchType*/ 11, MVT::v8f16,// ->39914
/* 39903*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39905*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39907*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1106:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 39914*/      0, // EndSwitchType
/* 39915*/    /*Scope*/ 58, /*->39974*/
/* 39916*/      OPC_CheckChild0Integer, 78|128,8/*1102*/, 
/* 39919*/      OPC_RecordChild1, // #0 = $Vm
/* 39920*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->39934
/* 39923*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39925*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39927*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1102:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 39934*/      /*SwitchType*/ 11, MVT::v4f32,// ->39947
/* 39936*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39938*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39940*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1102:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 39947*/      /*SwitchType*/ 11, MVT::v4f16,// ->39960
/* 39949*/        OPC_CheckChild1Type, MVT::v4f16,
/* 39951*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39953*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1102:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 39960*/      /*SwitchType*/ 11, MVT::v8f16,// ->39973
/* 39962*/        OPC_CheckChild1Type, MVT::v8f16,
/* 39964*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39966*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1102:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 39973*/      0, // EndSwitchType
/* 39974*/    /*Scope*/ 58, /*->40033*/
/* 39975*/      OPC_CheckChild0Integer, 80|128,8/*1104*/, 
/* 39978*/      OPC_RecordChild1, // #0 = $Vm
/* 39979*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->39993
/* 39982*/        OPC_CheckChild1Type, MVT::v2f32,
/* 39984*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39986*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1104:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 39993*/      /*SwitchType*/ 11, MVT::v4f32,// ->40006
/* 39995*/        OPC_CheckChild1Type, MVT::v4f32,
/* 39997*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 39999*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1104:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 40006*/      /*SwitchType*/ 11, MVT::v4f16,// ->40019
/* 40008*/        OPC_CheckChild1Type, MVT::v4f16,
/* 40010*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 40012*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1104:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 40019*/      /*SwitchType*/ 11, MVT::v8f16,// ->40032
/* 40021*/        OPC_CheckChild1Type, MVT::v8f16,
/* 40023*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 40025*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1104:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 40032*/      0, // EndSwitchType
/* 40033*/    0, /*End of Scope*/
/* 40034*/  /*SwitchOpcode*/ 87|128,10/*1367*/, TARGET_VAL(ARMISD::CMPZ),// ->41405
/* 40038*/    OPC_Scope, 123, /*->40163*/ // 12 children in Scope
/* 40040*/      OPC_MoveChild0,
/* 40041*/      OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::AND),// ->40102
/* 40045*/        OPC_RecordChild0, // #0 = $Rn
/* 40046*/        OPC_RecordChild1, // #1 = $shift
/* 40047*/        OPC_CheckPredicate, 56, // Predicate_and_su
/* 40049*/        OPC_CheckType, MVT::i32,
/* 40051*/        OPC_MoveParent,
/* 40052*/        OPC_CheckChild1Integer, 0, 
/* 40054*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40056*/        OPC_Scope, 21, /*->40079*/ // 2 children in Scope
/* 40058*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40061*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40064*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40067*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTrsr), 0|OPFL_GlueOutput,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 24
                    // Dst: (TSTrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40079*/        /*Scope*/ 21, /*->40101*/
/* 40080*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40083*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40086*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40089*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTrsr), 0|OPFL_GlueOutput,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 24
                    // Dst: (TSTrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40101*/        0, /*End of Scope*/
/* 40102*/      /*SwitchOpcode*/ 57, TARGET_VAL(ISD::XOR),// ->40162
/* 40105*/        OPC_RecordChild0, // #0 = $Rn
/* 40106*/        OPC_RecordChild1, // #1 = $shift
/* 40107*/        OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40109*/        OPC_CheckType, MVT::i32,
/* 40111*/        OPC_MoveParent,
/* 40112*/        OPC_CheckChild1Integer, 0, 
/* 40114*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40116*/        OPC_Scope, 21, /*->40139*/ // 2 children in Scope
/* 40118*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40121*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40124*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40127*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQrsr), 0|OPFL_GlueOutput,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 24
                    // Dst: (TEQrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40139*/        /*Scope*/ 21, /*->40161*/
/* 40140*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40143*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40146*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40149*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQrsr), 0|OPFL_GlueOutput,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 24
                    // Dst: (TEQrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40161*/        0, /*End of Scope*/
/* 40162*/      0, // EndSwitchOpcode
/* 40163*/    /*Scope*/ 34, /*->40198*/
/* 40164*/      OPC_RecordChild0, // #0 = $Rn
/* 40165*/      OPC_CheckChild0Type, MVT::i32,
/* 40167*/      OPC_MoveChild1,
/* 40168*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 40171*/      OPC_CheckChild0Integer, 0, 
/* 40173*/      OPC_RecordChild1, // #1 = $shift
/* 40174*/      OPC_MoveParent,
/* 40175*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40177*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40180*/      OPC_EmitInteger, MVT::i32, 14, 
/* 40183*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40186*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrsr), 0|OPFL_GlueOutput,
                    MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, so_reg_reg:{ *:[i32] }:$shift)) - Complexity = 23
                // Dst: (CMNzrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40198*/    /*Scope*/ 120|128,1/*248*/, /*->40448*/
/* 40200*/      OPC_MoveChild0,
/* 40201*/      OPC_SwitchOpcode /*3 cases */, 30, TARGET_VAL(ISD::SUB),// ->40235
/* 40205*/        OPC_CheckChild0Integer, 0, 
/* 40207*/        OPC_RecordChild1, // #0 = $shift
/* 40208*/        OPC_CheckType, MVT::i32,
/* 40210*/        OPC_MoveParent,
/* 40211*/        OPC_RecordChild1, // #1 = $Rn
/* 40212*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40214*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 40217*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40220*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrsr), 0|OPFL_GlueOutput,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, so_reg_reg:{ *:[i32] }:$shift), GPRnopc:{ *:[i32] }:$Rn) - Complexity = 23
                  // Dst: (CMNzrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 40235*/      /*SwitchOpcode*/ 103, TARGET_VAL(ISD::AND),// ->40341
/* 40238*/        OPC_RecordChild0, // #0 = $Rn
/* 40239*/        OPC_RecordChild1, // #1 = $shift
/* 40240*/        OPC_CheckPredicate, 56, // Predicate_and_su
/* 40242*/        OPC_CheckType, MVT::i32,
/* 40244*/        OPC_MoveParent,
/* 40245*/        OPC_CheckChild1Integer, 0, 
/* 40247*/        OPC_Scope, 22, /*->40271*/ // 4 children in Scope
/* 40249*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40251*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 40254*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40257*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40260*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (TSTrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40271*/        /*Scope*/ 22, /*->40294*/
/* 40272*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40274*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40277*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40280*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40283*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TSTrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40294*/        /*Scope*/ 22, /*->40317*/
/* 40295*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40297*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 40300*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40303*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40306*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (TSTrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40317*/        /*Scope*/ 22, /*->40340*/
/* 40318*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40320*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40323*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40326*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40329*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TSTrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40340*/        0, /*End of Scope*/
/* 40341*/      /*SwitchOpcode*/ 103, TARGET_VAL(ISD::XOR),// ->40447
/* 40344*/        OPC_RecordChild0, // #0 = $Rn
/* 40345*/        OPC_RecordChild1, // #1 = $shift
/* 40346*/        OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40348*/        OPC_CheckType, MVT::i32,
/* 40350*/        OPC_MoveParent,
/* 40351*/        OPC_CheckChild1Integer, 0, 
/* 40353*/        OPC_Scope, 22, /*->40377*/ // 4 children in Scope
/* 40355*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40357*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 40360*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40363*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40366*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (TEQrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40377*/        /*Scope*/ 22, /*->40400*/
/* 40378*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40380*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40383*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40386*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40389*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TEQrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40400*/        /*Scope*/ 22, /*->40423*/
/* 40401*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40403*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 40406*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40409*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40412*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (TEQrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40423*/        /*Scope*/ 22, /*->40446*/
/* 40424*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40426*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40429*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40432*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TEQrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40446*/        0, /*End of Scope*/
/* 40447*/      0, // EndSwitchOpcode
/* 40448*/    /*Scope*/ 59, /*->40508*/
/* 40449*/      OPC_RecordChild0, // #0 = $Rn
/* 40450*/      OPC_CheckChild0Type, MVT::i32,
/* 40452*/      OPC_MoveChild1,
/* 40453*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 40456*/      OPC_CheckChild0Integer, 0, 
/* 40458*/      OPC_RecordChild1, // #1 = $shift
/* 40459*/      OPC_MoveParent,
/* 40460*/      OPC_Scope, 22, /*->40484*/ // 2 children in Scope
/* 40462*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40464*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 40467*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40470*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40473*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrsi), 0|OPFL_GlueOutput,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMcmpZ GPR:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, so_reg_imm:{ *:[i32] }:$shift)) - Complexity = 20
                  // Dst: (CMNzrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40484*/      /*Scope*/ 22, /*->40507*/
/* 40485*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40487*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40490*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40493*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40496*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNzrs), 0|OPFL_GlueOutput,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, t2_so_reg:{ *:[i32] }:$ShiftedRm)) - Complexity = 20
                  // Dst: (t2CMNzrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40507*/      0, /*End of Scope*/
/* 40508*/    /*Scope*/ 79|128,1/*207*/, /*->40717*/
/* 40510*/      OPC_MoveChild0,
/* 40511*/      OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::SUB),// ->40570
/* 40515*/        OPC_CheckChild0Integer, 0, 
/* 40517*/        OPC_RecordChild1, // #0 = $shift
/* 40518*/        OPC_CheckType, MVT::i32,
/* 40520*/        OPC_MoveParent,
/* 40521*/        OPC_RecordChild1, // #1 = $Rn
/* 40522*/        OPC_Scope, 22, /*->40546*/ // 2 children in Scope
/* 40524*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40526*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 40529*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40532*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40535*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, so_reg_imm:{ *:[i32] }:$shift), GPR:{ *:[i32] }:$Rn) - Complexity = 20
                    // Dst: (CMNzrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 40546*/        /*Scope*/ 22, /*->40569*/
/* 40547*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40549*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 40552*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40555*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40558*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNzrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, t2_so_reg:{ *:[i32] }:$ShiftedRm), GPRnopc:{ *:[i32] }:$Rn) - Complexity = 20
                    // Dst: (t2CMNzrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 40569*/        0, /*End of Scope*/
/* 40570*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::AND),// ->40643
/* 40573*/        OPC_RecordChild0, // #0 = $Rn
/* 40574*/        OPC_RecordChild1, // #1 = $imm
/* 40575*/        OPC_MoveChild1,
/* 40576*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40579*/        OPC_Scope, 30, /*->40611*/ // 2 children in Scope
/* 40581*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 40583*/          OPC_MoveParent,
/* 40584*/          OPC_CheckPredicate, 56, // Predicate_and_su
/* 40586*/          OPC_CheckType, MVT::i32,
/* 40588*/          OPC_MoveParent,
/* 40589*/          OPC_CheckChild1Integer, 0, 
/* 40591*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40593*/          OPC_EmitConvertToTarget, 1,
/* 40595*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40598*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40601*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (TSTri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 40611*/        /*Scope*/ 30, /*->40642*/
/* 40612*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 40614*/          OPC_MoveParent,
/* 40615*/          OPC_CheckPredicate, 56, // Predicate_and_su
/* 40617*/          OPC_CheckType, MVT::i32,
/* 40619*/          OPC_MoveParent,
/* 40620*/          OPC_CheckChild1Integer, 0, 
/* 40622*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40624*/          OPC_EmitConvertToTarget, 1,
/* 40626*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40629*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40632*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (t2TSTri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 40642*/        0, /*End of Scope*/
/* 40643*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::XOR),// ->40716
/* 40646*/        OPC_RecordChild0, // #0 = $Rn
/* 40647*/        OPC_RecordChild1, // #1 = $imm
/* 40648*/        OPC_MoveChild1,
/* 40649*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40652*/        OPC_Scope, 30, /*->40684*/ // 2 children in Scope
/* 40654*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 40656*/          OPC_MoveParent,
/* 40657*/          OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40659*/          OPC_CheckType, MVT::i32,
/* 40661*/          OPC_MoveParent,
/* 40662*/          OPC_CheckChild1Integer, 0, 
/* 40664*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40666*/          OPC_EmitConvertToTarget, 1,
/* 40668*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40671*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40674*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (TEQri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 40684*/        /*Scope*/ 30, /*->40715*/
/* 40685*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 40687*/          OPC_MoveParent,
/* 40688*/          OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40690*/          OPC_CheckType, MVT::i32,
/* 40692*/          OPC_MoveParent,
/* 40693*/          OPC_CheckChild1Integer, 0, 
/* 40695*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40697*/          OPC_EmitConvertToTarget, 1,
/* 40699*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40702*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40705*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (t2TEQri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 40715*/        0, /*End of Scope*/
/* 40716*/      0, // EndSwitchOpcode
/* 40717*/    /*Scope*/ 73, /*->40791*/
/* 40718*/      OPC_RecordChild0, // #0 = $src
/* 40719*/      OPC_CheckChild0Type, MVT::i32,
/* 40721*/      OPC_RecordChild1, // #1 = $rhs
/* 40722*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40724*/      OPC_Scope, 21, /*->40747*/ // 3 children in Scope
/* 40726*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$rhs #2 #3 #4
/* 40729*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40732*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40735*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsr), 0|OPFL_GlueOutput,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (ARMcmpZ GPR:{ *:[i32] }:$src, so_reg_reg:{ *:[i32] }:$rhs) - Complexity = 15
                  // Dst: (CMPrsr:{ *:[i32] } GPR:{ *:[i32] }:$src, so_reg_reg:{ *:[i32] }:$rhs)
/* 40747*/      /*Scope*/ 21, /*->40769*/
/* 40748*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$rhs #2 #3 #4
/* 40751*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40754*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40757*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsr), 0|OPFL_GlueOutput,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (ARMcmpZ so_reg_reg:{ *:[i32] }:$rhs, GPR:{ *:[i32] }:$src) - Complexity = 15
                  // Dst: (CMPrsr:{ *:[i32] } GPR:{ *:[i32] }:$src, so_reg_reg:{ *:[i32] }:$rhs)
/* 40769*/      /*Scope*/ 20, /*->40790*/
/* 40770*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$rhs #2 #3
/* 40773*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40779*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsi), 0|OPFL_GlueOutput,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMcmpZ GPR:{ *:[i32] }:$src, so_reg_imm:{ *:[i32] }:$rhs) - Complexity = 12
                  // Dst: (CMPrsi:{ *:[i32] } GPR:{ *:[i32] }:$src, so_reg_imm:{ *:[i32] }:$rhs)
/* 40790*/      0, /*End of Scope*/
/* 40791*/    /*Scope*/ 85, /*->40877*/
/* 40792*/      OPC_MoveChild0,
/* 40793*/      OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::AND),// ->40846
/* 40797*/        OPC_RecordChild0, // #0 = $Rn
/* 40798*/        OPC_RecordChild1, // #1 = $Rm
/* 40799*/        OPC_CheckPredicate, 56, // Predicate_and_su
/* 40801*/        OPC_CheckType, MVT::i32,
/* 40803*/        OPC_MoveParent,
/* 40804*/        OPC_CheckChild1Integer, 0, 
/* 40806*/        OPC_Scope, 18, /*->40826*/ // 2 children in Scope
/* 40808*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40810*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40813*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40816*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::TSTrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (TSTrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 40826*/        /*Scope*/ 18, /*->40845*/
/* 40827*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 40829*/          OPC_EmitInteger, MVT::i32, 14, 
/* 40832*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40835*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tTST), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (tTST:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 40845*/        0, /*End of Scope*/
/* 40846*/      /*SwitchOpcode*/ 27, TARGET_VAL(ISD::XOR),// ->40876
/* 40849*/        OPC_RecordChild0, // #0 = $Rn
/* 40850*/        OPC_RecordChild1, // #1 = $Rm
/* 40851*/        OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40853*/        OPC_CheckType, MVT::i32,
/* 40855*/        OPC_MoveParent,
/* 40856*/        OPC_CheckChild1Integer, 0, 
/* 40858*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 40860*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40866*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::TEQrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMcmpZ (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 12
                  // Dst: (TEQrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 40876*/      0, // EndSwitchOpcode
/* 40877*/    /*Scope*/ 26, /*->40904*/
/* 40878*/      OPC_RecordChild0, // #0 = $lhs
/* 40879*/      OPC_CheckChild0Type, MVT::i32,
/* 40881*/      OPC_RecordChild1, // #1 = $rhs
/* 40882*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40884*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$rhs #2 #3
/* 40887*/      OPC_EmitInteger, MVT::i32, 14, 
/* 40890*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40893*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrs), 0|OPFL_GlueOutput,
                    MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$lhs, t2_so_reg:{ *:[i32] }:$rhs) - Complexity = 12
                // Dst: (t2CMPrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$lhs, t2_so_reg:{ *:[i32] }:$rhs)
/* 40904*/    /*Scope*/ 91, /*->40996*/
/* 40905*/      OPC_MoveChild0,
/* 40906*/      OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::AND),// ->40951
/* 40910*/        OPC_RecordChild0, // #0 = $Rn
/* 40911*/        OPC_RecordChild1, // #1 = $Rm
/* 40912*/        OPC_CheckPredicate, 56, // Predicate_and_su
/* 40914*/        OPC_CheckType, MVT::i32,
/* 40916*/        OPC_MoveParent,
/* 40917*/        OPC_CheckChild1Integer, 0, 
/* 40919*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40921*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40924*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40927*/        OPC_Scope, 10, /*->40939*/ // 2 children in Scope
/* 40929*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (t2TSTrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 40939*/        /*Scope*/ 10, /*->40950*/
/* 40940*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (t2TSTrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 40950*/        0, /*End of Scope*/
/* 40951*/      /*SwitchOpcode*/ 41, TARGET_VAL(ISD::XOR),// ->40995
/* 40954*/        OPC_RecordChild0, // #0 = $Rn
/* 40955*/        OPC_RecordChild1, // #1 = $Rm
/* 40956*/        OPC_CheckPredicate, 56, // Predicate_xor_su
/* 40958*/        OPC_CheckType, MVT::i32,
/* 40960*/        OPC_MoveParent,
/* 40961*/        OPC_CheckChild1Integer, 0, 
/* 40963*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 40965*/        OPC_EmitInteger, MVT::i32, 14, 
/* 40968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40971*/        OPC_Scope, 10, /*->40983*/ // 2 children in Scope
/* 40973*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (t2TEQrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 40983*/        /*Scope*/ 10, /*->40994*/
/* 40984*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (t2TEQrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 40994*/        0, /*End of Scope*/
/* 40995*/      0, // EndSwitchOpcode
/* 40996*/    /*Scope*/ 123, /*->41120*/
/* 40997*/      OPC_RecordChild0, // #0 = $rhs
/* 40998*/      OPC_CheckChild0Type, MVT::i32,
/* 41000*/      OPC_Scope, 49, /*->41051*/ // 2 children in Scope
/* 41002*/        OPC_RecordChild1, // #1 = $src
/* 41003*/        OPC_Scope, 22, /*->41027*/ // 2 children in Scope
/* 41005*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41007*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$rhs #2 #3
/* 41010*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41013*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41016*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsi), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ so_reg_imm:{ *:[i32] }:$rhs, GPR:{ *:[i32] }:$src) - Complexity = 12
                    // Dst: (CMPrsi:{ *:[i32] } GPR:{ *:[i32] }:$src, so_reg_imm:{ *:[i32] }:$rhs)
/* 41027*/        /*Scope*/ 22, /*->41050*/
/* 41028*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$rhs #2 #3
/* 41033*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41036*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41039*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ t2_so_reg:{ *:[i32] }:$rhs, GPRnopc:{ *:[i32] }:$lhs) - Complexity = 12
                    // Dst: (t2CMPrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$lhs, t2_so_reg:{ *:[i32] }:$rhs)
/* 41050*/        0, /*End of Scope*/
/* 41051*/      /*Scope*/ 67, /*->41119*/
/* 41052*/        OPC_MoveChild1,
/* 41053*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 41056*/        OPC_CheckChild0Integer, 0, 
/* 41058*/        OPC_RecordChild1, // #1 = $Rm
/* 41059*/        OPC_MoveParent,
/* 41060*/        OPC_Scope, 18, /*->41080*/ // 3 children in Scope
/* 41062*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41064*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41067*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41070*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ GPR:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, GPR:{ *:[i32] }:$Rm)) - Complexity = 11
                    // Dst: (CMNzrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 41080*/        /*Scope*/ 18, /*->41099*/
/* 41081*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 41083*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41086*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41089*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMNz), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ tGPR:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, tGPR:{ *:[i32] }:$Rm)) - Complexity = 11
                    // Dst: (tCMNz:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 41099*/        /*Scope*/ 18, /*->41118*/
/* 41100*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41102*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41105*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41108*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNzrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rm)) - Complexity = 11
                    // Dst: (t2CMNzrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 41118*/        0, /*End of Scope*/
/* 41119*/      0, /*End of Scope*/
/* 41120*/    /*Scope*/ 70, /*->41191*/
/* 41121*/      OPC_MoveChild0,
/* 41122*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 41125*/      OPC_CheckChild0Integer, 0, 
/* 41127*/      OPC_RecordChild1, // #0 = $Rm
/* 41128*/      OPC_CheckType, MVT::i32,
/* 41130*/      OPC_MoveParent,
/* 41131*/      OPC_RecordChild1, // #1 = $Rn
/* 41132*/      OPC_Scope, 18, /*->41152*/ // 3 children in Scope
/* 41134*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41136*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41139*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41142*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNzrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, GPR:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (CMNzrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 41152*/      /*Scope*/ 18, /*->41171*/
/* 41153*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 41155*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41158*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41161*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMNz), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, tGPR:{ *:[i32] }:$Rm), tGPR:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (tCMNz:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 41171*/      /*Scope*/ 18, /*->41190*/
/* 41172*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41174*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41177*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41180*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNzrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (ARMcmpZ (sub:{ *:[i32] } 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (t2CMNzrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 41190*/      0, /*End of Scope*/
/* 41191*/    /*Scope*/ 83|128,1/*211*/, /*->41404*/
/* 41193*/      OPC_RecordChild0, // #0 = $src
/* 41194*/      OPC_CheckChild0Type, MVT::i32,
/* 41196*/      OPC_RecordChild1, // #1 = $imm
/* 41197*/      OPC_Scope, 4|128,1/*132*/, /*->41332*/ // 4 children in Scope
/* 41200*/        OPC_MoveChild1,
/* 41201*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41204*/        OPC_Scope, 23, /*->41229*/ // 5 children in Scope
/* 41206*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 41208*/          OPC_MoveParent,
/* 41209*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41211*/          OPC_EmitConvertToTarget, 1,
/* 41213*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41216*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41219*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                    // Dst: (CMPri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)
/* 41229*/        /*Scope*/ 26, /*->41256*/
/* 41230*/          OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 41232*/          OPC_MoveParent,
/* 41233*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41235*/          OPC_EmitConvertToTarget, 1,
/* 41237*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 41240*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41243*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41246*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (ARMcmpZ GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                    // Dst: (CMNri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>>:$imm))
/* 41256*/        /*Scope*/ 23, /*->41280*/
/* 41257*/          OPC_CheckPredicate, 49, // Predicate_imm0_255
/* 41259*/          OPC_MoveParent,
/* 41260*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 41262*/          OPC_EmitConvertToTarget, 1,
/* 41264*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41267*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41270*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMPi8), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                    // Dst: (tCMPi8:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8)
/* 41280*/        /*Scope*/ 23, /*->41304*/
/* 41281*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 41283*/          OPC_MoveParent,
/* 41284*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41286*/          OPC_EmitConvertToTarget, 1,
/* 41288*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41291*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41294*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                    // Dst: (t2CMPri:{ *:[i32] } GPRnopc:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)
/* 41304*/        /*Scope*/ 26, /*->41331*/
/* 41305*/          OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 41307*/          OPC_MoveParent,
/* 41308*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41310*/          OPC_EmitConvertToTarget, 1,
/* 41312*/          OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 41315*/          OPC_EmitInteger, MVT::i32, 14, 
/* 41318*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41321*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>><<X:t2_so_imm_neg_XFORM>>:$imm) - Complexity = 7
                    // Dst: (t2CMNri:{ *:[i32] } GPRnopc:{ *:[i32] }:$src, (t2_so_imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>>:$imm))
/* 41331*/        0, /*End of Scope*/
/* 41332*/      /*Scope*/ 18, /*->41351*/
/* 41333*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41335*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41338*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41341*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMcmpZ GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$rhs) - Complexity = 3
                  // Dst: (CMPrr:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$rhs)
/* 41351*/      /*Scope*/ 18, /*->41370*/
/* 41352*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 41354*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41357*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41360*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMPr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMcmpZ tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (tCMPr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 41370*/      /*Scope*/ 32, /*->41403*/
/* 41371*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41373*/        OPC_EmitInteger, MVT::i32, 14, 
/* 41376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41379*/        OPC_Scope, 10, /*->41391*/ // 2 children in Scope
/* 41381*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMcmpZ GPRnopc:{ *:[i32] }:$lhs, rGPR:{ *:[i32] }:$rhs) - Complexity = 3
                    // Dst: (t2CMPrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$lhs, rGPR:{ *:[i32] }:$rhs)
/* 41391*/        /*Scope*/ 10, /*->41402*/
/* 41392*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrr), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (ARMcmpZ rGPR:{ *:[i32] }:$rhs, GPRnopc:{ *:[i32] }:$lhs) - Complexity = 3
                    // Dst: (t2CMPrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$lhs, rGPR:{ *:[i32] }:$rhs)
/* 41402*/        0, /*End of Scope*/
/* 41403*/      0, /*End of Scope*/
/* 41404*/    0, /*End of Scope*/
/* 41405*/  /*SwitchOpcode*/ 25|128,5/*665*/, TARGET_VAL(ARMISD::CMOV),// ->42074
/* 41409*/    OPC_CaptureGlueInput,
/* 41410*/    OPC_RecordChild0, // #0 = $false
/* 41411*/    OPC_Scope, 45, /*->41458*/ // 3 children in Scope
/* 41413*/      OPC_RecordChild1, // #1 = $shift
/* 41414*/      OPC_RecordChild2, // #2 = $p
/* 41415*/      OPC_CheckType, MVT::i32,
/* 41417*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41419*/      OPC_Scope, 18, /*->41439*/ // 2 children in Scope
/* 41421*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 41424*/        OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #6 #7
/* 41427*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCsr), 0|OPFL_GlueInput,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, so_reg_reg:{ *:[i32] }:$shift, cmovpred:{ *:[i32] }:$p) - Complexity = 24
                  // Dst: (MOVCCsr:{ *:[i32] } GPR:{ *:[i32] }:$false, so_reg_reg:{ *:[i32] }:$shift, cmovpred:{ *:[i32] }:$p)
/* 41439*/      /*Scope*/ 17, /*->41457*/
/* 41440*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 41443*/        OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #5 #6
/* 41446*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCsi), 0|OPFL_GlueInput,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, so_reg_imm:{ *:[i32] }:$shift, cmovpred:{ *:[i32] }:$p) - Complexity = 21
                  // Dst: (MOVCCsi:{ *:[i32] } GPR:{ *:[i32] }:$false, so_reg_imm:{ *:[i32] }:$shift, cmovpred:{ *:[i32] }:$p)
/* 41457*/      0, /*End of Scope*/
/* 41458*/    /*Scope*/ 25|128,1/*153*/, /*->41613*/
/* 41460*/      OPC_MoveChild1,
/* 41461*/      OPC_SwitchOpcode /*4 cases */, 33, TARGET_VAL(ISD::SHL),// ->41498
/* 41465*/        OPC_RecordChild0, // #1 = $Rm
/* 41466*/        OPC_RecordChild1, // #2 = $imm
/* 41467*/        OPC_MoveChild1,
/* 41468*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41471*/        OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 41473*/        OPC_CheckType, MVT::i32,
/* 41475*/        OPC_MoveParent,
/* 41476*/        OPC_MoveParent,
/* 41477*/        OPC_RecordChild2, // #3 = $p
/* 41478*/        OPC_CheckType, MVT::i32,
/* 41480*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41482*/        OPC_CheckComplexPat, /*CP*/28, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 41485*/        OPC_EmitConvertToTarget, 2,
/* 41487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCClsl), 0|OPFL_GlueInput,
                      MVT::i32, 5/*#Ops*/, 0, 1, 6, 4, 5, 
                  // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm), cmovpred:{ *:[i32] }:$p) - Complexity = 19
                  // Dst: (t2MOVCClsl:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41498*/      /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRL),// ->41537
/* 41501*/        OPC_RecordChild0, // #1 = $Rm
/* 41502*/        OPC_RecordChild1, // #2 = $imm
/* 41503*/        OPC_MoveChild1,
/* 41504*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41507*/        OPC_CheckPredicate, 33, // Predicate_imm_sr
/* 41509*/        OPC_CheckType, MVT::i32,
/* 41511*/        OPC_MoveParent,
/* 41512*/        OPC_MoveParent,
/* 41513*/        OPC_RecordChild2, // #3 = $p
/* 41514*/        OPC_CheckType, MVT::i32,
/* 41516*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41518*/        OPC_CheckComplexPat, /*CP*/28, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 41521*/        OPC_EmitConvertToTarget, 2,
/* 41523*/        OPC_EmitNodeXForm, 11, 6, // imm_sr_XFORM
/* 41526*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCClsr), 0|OPFL_GlueInput,
                      MVT::i32, 5/*#Ops*/, 0, 1, 7, 4, 5, 
                  // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm), cmovpred:{ *:[i32] }:$p) - Complexity = 19
                  // Dst: (t2MOVCClsr:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm), cmovpred:{ *:[i32] }:$p)
/* 41537*/      /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRA),// ->41576
/* 41540*/        OPC_RecordChild0, // #1 = $Rm
/* 41541*/        OPC_RecordChild1, // #2 = $imm
/* 41542*/        OPC_MoveChild1,
/* 41543*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41546*/        OPC_CheckPredicate, 33, // Predicate_imm_sr
/* 41548*/        OPC_CheckType, MVT::i32,
/* 41550*/        OPC_MoveParent,
/* 41551*/        OPC_MoveParent,
/* 41552*/        OPC_RecordChild2, // #3 = $p
/* 41553*/        OPC_CheckType, MVT::i32,
/* 41555*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41557*/        OPC_CheckComplexPat, /*CP*/28, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 41560*/        OPC_EmitConvertToTarget, 2,
/* 41562*/        OPC_EmitNodeXForm, 11, 6, // imm_sr_XFORM
/* 41565*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCasr), 0|OPFL_GlueInput,
                      MVT::i32, 5/*#Ops*/, 0, 1, 7, 4, 5, 
                  // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm), cmovpred:{ *:[i32] }:$p) - Complexity = 19
                  // Dst: (t2MOVCCasr:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm), cmovpred:{ *:[i32] }:$p)
/* 41576*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::ROTR),// ->41612
/* 41579*/        OPC_RecordChild0, // #1 = $Rm
/* 41580*/        OPC_RecordChild1, // #2 = $imm
/* 41581*/        OPC_MoveChild1,
/* 41582*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41585*/        OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 41587*/        OPC_CheckType, MVT::i32,
/* 41589*/        OPC_MoveParent,
/* 41590*/        OPC_MoveParent,
/* 41591*/        OPC_RecordChild2, // #3 = $p
/* 41592*/        OPC_CheckType, MVT::i32,
/* 41594*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41596*/        OPC_CheckComplexPat, /*CP*/28, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 41599*/        OPC_EmitConvertToTarget, 2,
/* 41601*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCror), 0|OPFL_GlueInput,
                      MVT::i32, 5/*#Ops*/, 0, 1, 6, 4, 5, 
                  // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm), cmovpred:{ *:[i32] }:$p) - Complexity = 19
                  // Dst: (t2MOVCCror:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41612*/      0, // EndSwitchOpcode
/* 41613*/    /*Scope*/ 74|128,3/*458*/, /*->42073*/
/* 41615*/      OPC_RecordChild1, // #1 = $imm
/* 41616*/      OPC_Scope, 71|128,1/*199*/, /*->41818*/ // 7 children in Scope
/* 41619*/        OPC_MoveChild1,
/* 41620*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41623*/        OPC_Scope, 23, /*->41648*/ // 7 children in Scope
/* 41625*/          OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 41627*/          OPC_MoveParent,
/* 41628*/          OPC_RecordChild2, // #2 = $p
/* 41629*/          OPC_CheckType, MVT::i32,
/* 41631*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 41633*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41636*/          OPC_EmitConvertToTarget, 1,
/* 41638*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCi16), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (MOVCCi16:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41648*/        /*Scope*/ 23, /*->41672*/
/* 41649*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 41651*/          OPC_MoveParent,
/* 41652*/          OPC_RecordChild2, // #2 = $p
/* 41653*/          OPC_CheckType, MVT::i32,
/* 41655*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41657*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41660*/          OPC_EmitConvertToTarget, 1,
/* 41662*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCi), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (MOVCCi:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41672*/        /*Scope*/ 26, /*->41699*/
/* 41673*/          OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 41675*/          OPC_MoveParent,
/* 41676*/          OPC_RecordChild2, // #2 = $p
/* 41677*/          OPC_CheckType, MVT::i32,
/* 41679*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41681*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41684*/          OPC_EmitConvertToTarget, 1,
/* 41686*/          OPC_EmitNodeXForm, 9, 5, // imm_not_XFORM
/* 41689*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVNCCi), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 6, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (MVNCCi:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm), cmovpred:{ *:[i32] }:$p)
/* 41699*/        /*Scope*/ 23, /*->41723*/
/* 41700*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 41702*/          OPC_MoveParent,
/* 41703*/          OPC_RecordChild2, // #2 = $p
/* 41704*/          OPC_CheckType, MVT::i32,
/* 41706*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41708*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41711*/          OPC_EmitConvertToTarget, 1,
/* 41713*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCi), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (t2MOVCCi:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41723*/        /*Scope*/ 23, /*->41747*/
/* 41724*/          OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 41726*/          OPC_MoveParent,
/* 41727*/          OPC_RecordChild2, // #2 = $p
/* 41728*/          OPC_CheckType, MVT::i32,
/* 41730*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41732*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41735*/          OPC_EmitConvertToTarget, 1,
/* 41737*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCi16), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (t2MOVCCi16:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$imm, cmovpred:{ *:[i32] }:$p)
/* 41747*/        /*Scope*/ 26, /*->41774*/
/* 41748*/          OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 41750*/          OPC_MoveParent,
/* 41751*/          OPC_RecordChild2, // #2 = $p
/* 41752*/          OPC_CheckType, MVT::i32,
/* 41754*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41756*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41759*/          OPC_EmitConvertToTarget, 1,
/* 41761*/          OPC_EmitNodeXForm, 1, 5, // t2_so_imm_not_XFORM
/* 41764*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNCCi), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 6, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>><<X:t2_so_imm_not_XFORM>>:$imm, cmovpred:{ *:[i32] }:$p) - Complexity = 16
                    // Dst: (t2MVNCCi:{ *:[i32] } rGPR:{ *:[i32] }:$false, (t2_so_imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm), cmovpred:{ *:[i32] }:$p)
/* 41774*/        /*Scope*/ 42, /*->41817*/
/* 41775*/          OPC_MoveParent,
/* 41776*/          OPC_RecordChild2, // #2 = $p
/* 41777*/          OPC_CheckType, MVT::i32,
/* 41779*/          OPC_Scope, 17, /*->41798*/ // 2 children in Scope
/* 41781*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 41783*/            OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41786*/            OPC_EmitConvertToTarget, 1,
/* 41788*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCi32imm), 0|OPFL_GlueInput,
                          MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                      // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$src, cmovpred:{ *:[i32] }:$p) - Complexity = 15
                      // Dst: (MOVCCi32imm:{ *:[i32] } GPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$src, cmovpred:{ *:[i32] }:$p)
/* 41798*/          /*Scope*/ 17, /*->41816*/
/* 41799*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41801*/            OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41804*/            OPC_EmitConvertToTarget, 1,
/* 41806*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCi32imm), 0|OPFL_GlueInput,
                          MVT::i32, 4/*#Ops*/, 0, 5, 3, 4, 
                      // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$src, cmovpred:{ *:[i32] }:$p) - Complexity = 15
                      // Dst: (t2MOVCCi32imm:{ *:[i32] } rGPR:{ *:[i32] }:$false, (imm:{ *:[i32] }):$src, cmovpred:{ *:[i32] }:$p)
/* 41816*/          0, /*End of Scope*/
/* 41817*/        0, /*End of Scope*/
/* 41818*/      /*Scope*/ 51, /*->41870*/
/* 41819*/        OPC_RecordChild2, // #2 = $p
/* 41820*/        OPC_CheckType, MVT::i32,
/* 41822*/        OPC_Scope, 15, /*->41839*/ // 3 children in Scope
/* 41824*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 41826*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41829*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVCCr), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } GPR:{ *:[i32] }:$false, GPR:{ *:[i32] }:$Rm, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                    // Dst: (MOVCCr:{ *:[i32] } GPR:{ *:[i32] }:$false, GPR:{ *:[i32] }:$Rm, cmovpred:{ *:[i32] }:$p)
/* 41839*/        /*Scope*/ 15, /*->41855*/
/* 41840*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 41842*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41845*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVCCr), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                    // Dst: (t2MOVCCr:{ *:[i32] } rGPR:{ *:[i32] }:$false, rGPR:{ *:[i32] }:$Rm, cmovpred:{ *:[i32] }:$p)
/* 41855*/        /*Scope*/ 13, /*->41869*/
/* 41856*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 41859*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tMOVCCr_pseudo), 0|OPFL_GlueInput,
                        MVT::i32, 4/*#Ops*/, 0, 1, 3, 4, 
                    // Src: (ARMcmov:{ *:[i32] } tGPR:{ *:[i32] }:$false, tGPR:{ *:[i32] }:$true, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                    // Dst: (tMOVCCr_pseudo:{ *:[i32] } tGPR:{ *:[i32] }:$false, tGPR:{ *:[i32] }:$true, cmovpred:{ *:[i32] }:$p)
/* 41869*/        0, /*End of Scope*/
/* 41870*/      /*Scope*/ 40, /*->41911*/
/* 41871*/        OPC_CheckChild2Integer, 12, 
/* 41873*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->41886
/* 41876*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 41878*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGTH), 0|OPFL_GlueInput,
                        MVT::f16, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f16] } HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sn, 12:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGTH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 41886*/        /*SwitchType*/ 10, MVT::f32,// ->41898
/* 41888*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 41890*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGTS), 0|OPFL_GlueInput,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f32] } SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sn, 12:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGTS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 41898*/        /*SwitchType*/ 10, MVT::f64,// ->41910
/* 41900*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 41902*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGTD), 0|OPFL_GlueInput,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f64] } DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Dn, 12:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGTD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 41910*/        0, // EndSwitchType
/* 41911*/      /*Scope*/ 40, /*->41952*/
/* 41912*/        OPC_CheckChild2Integer, 10, 
/* 41914*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->41927
/* 41917*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 41919*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGEH), 0|OPFL_GlueInput,
                        MVT::f16, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f16] } HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sn, 10:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGEH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 41927*/        /*SwitchType*/ 10, MVT::f32,// ->41939
/* 41929*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 41931*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGES), 0|OPFL_GlueInput,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f32] } SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sn, 10:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGES:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 41939*/        /*SwitchType*/ 10, MVT::f64,// ->41951
/* 41941*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 41943*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELGED), 0|OPFL_GlueInput,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f64] } DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Dn, 10:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELGED:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 41951*/        0, // EndSwitchType
/* 41952*/      /*Scope*/ 40, /*->41993*/
/* 41953*/        OPC_CheckChild2Integer, 0, 
/* 41955*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->41968
/* 41958*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 41960*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELEQH), 0|OPFL_GlueInput,
                        MVT::f16, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f16] } HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sn, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELEQH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 41968*/        /*SwitchType*/ 10, MVT::f32,// ->41980
/* 41970*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 41972*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELEQS), 0|OPFL_GlueInput,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f32] } SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sn, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELEQS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 41980*/        /*SwitchType*/ 10, MVT::f64,// ->41992
/* 41982*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 41984*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELEQD), 0|OPFL_GlueInput,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f64] } DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Dn, 0:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELEQD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 41992*/        0, // EndSwitchType
/* 41993*/      /*Scope*/ 40, /*->42034*/
/* 41994*/        OPC_CheckChild2Integer, 6, 
/* 41996*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->42009
/* 41999*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 42001*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELVSH), 0|OPFL_GlueInput,
                        MVT::f16, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f16] } HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sn, 6:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELVSH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 42009*/        /*SwitchType*/ 10, MVT::f32,// ->42021
/* 42011*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 42013*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELVSS), 0|OPFL_GlueInput,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f32] } SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sn, 6:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELVSS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 42021*/        /*SwitchType*/ 10, MVT::f64,// ->42033
/* 42023*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 42025*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSELVSD), 0|OPFL_GlueInput,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (ARMcmov:{ *:[f64] } DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Dn, 6:{ *:[i32] }) - Complexity = 12
                    // Dst: (VSELVSD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 42033*/        0, // EndSwitchType
/* 42034*/      /*Scope*/ 37, /*->42072*/
/* 42035*/        OPC_RecordChild2, // #2 = $p
/* 42036*/        OPC_SwitchType /*2 cases */, 15, MVT::f64,// ->42054
/* 42039*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 42041*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 42044*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDcc), 0|OPFL_GlueInput,
                        MVT::f64, 4/*#Ops*/, 0, 1, 3, 4, 
                    // Src: (ARMcmov:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                    // Dst: (VMOVDcc:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, cmovpred:{ *:[i32] }:$p)
/* 42054*/        /*SwitchType*/ 15, MVT::f32,// ->42071
/* 42056*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 42058*/          OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 42061*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVScc), 0|OPFL_GlueInput,
                        MVT::f32, 4/*#Ops*/, 0, 1, 3, 4, 
                    // Src: (ARMcmov:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                    // Dst: (VMOVScc:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, cmovpred:{ *:[i32] }:$p)
/* 42071*/        0, // EndSwitchType
/* 42072*/      0, /*End of Scope*/
/* 42073*/    0, /*End of Scope*/
/* 42074*/  /*SwitchOpcode*/ 27|128,52/*6683*/, TARGET_VAL(ISD::LOAD),// ->48761
/* 42078*/    OPC_RecordMemRef,
/* 42079*/    OPC_RecordNode, // #0 = 'ld' chained node
/* 42080*/    OPC_Scope, 67|128,1/*195*/, /*->42278*/ // 5 children in Scope
/* 42083*/      OPC_RecordChild1, // #1 = $addr
/* 42084*/      OPC_CheckChild1Type, MVT::i32,
/* 42086*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 42088*/      OPC_CheckType, MVT::i32,
/* 42090*/      OPC_Scope, 24, /*->42116*/ // 3 children in Scope
/* 42092*/        OPC_CheckPredicate, 57, // Predicate_load
/* 42094*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42096*/        OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 42099*/        OPC_EmitMergeInputChains1_0,
/* 42100*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42106*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDR), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                  // Dst: (PICLDR:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 42116*/      /*Scope*/ 54, /*->42171*/
/* 42117*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42119*/        OPC_Scope, 24, /*->42145*/ // 2 children in Scope
/* 42121*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 42123*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42125*/          OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 42128*/          OPC_EmitMergeInputChains1_0,
/* 42129*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42132*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42135*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 23
                    // Dst: (PICLDRH:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 42145*/        /*Scope*/ 24, /*->42170*/
/* 42146*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 42148*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42150*/          OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 42153*/          OPC_EmitMergeInputChains1_0,
/* 42154*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42157*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42160*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 23
                    // Dst: (PICLDRB:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 42170*/        0, /*End of Scope*/
/* 42171*/      /*Scope*/ 105, /*->42277*/
/* 42172*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 42174*/        OPC_Scope, 24, /*->42200*/ // 3 children in Scope
/* 42176*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 42178*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42180*/          OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 42183*/          OPC_EmitMergeInputChains1_0,
/* 42184*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42187*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42190*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 23
                    // Dst: (PICLDRSH:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 42200*/        /*Scope*/ 50, /*->42251*/
/* 42201*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 42203*/          OPC_Scope, 22, /*->42227*/ // 2 children in Scope
/* 42205*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42207*/            OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 42210*/            OPC_EmitMergeInputChains1_0,
/* 42211*/            OPC_EmitInteger, MVT::i32, 14, 
/* 42214*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42217*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 23
                      // Dst: (PICLDRSB:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 42227*/          /*Scope*/ 22, /*->42250*/
/* 42228*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 42230*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 42233*/            OPC_EmitMergeInputChains1_0,
/* 42234*/            OPC_EmitInteger, MVT::i32, 14, 
/* 42237*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42240*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 23
                      // Dst: (tLDRSB:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 42250*/          0, /*End of Scope*/
/* 42251*/        /*Scope*/ 24, /*->42276*/
/* 42252*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 42254*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 42256*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 42259*/          OPC_EmitMergeInputChains1_0,
/* 42260*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42263*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42266*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 23
                    // Dst: (tLDRSH:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 42276*/        0, /*End of Scope*/
/* 42277*/      0, /*End of Scope*/
/* 42278*/    /*Scope*/ 100, /*->42379*/
/* 42279*/      OPC_MoveChild1,
/* 42280*/      OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ARMISD::WrapperPIC),// ->42344
/* 42284*/        OPC_RecordChild0, // #1 = $addr
/* 42285*/        OPC_MoveChild0,
/* 42286*/        OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::TargetGlobalAddress),// ->42322
/* 42290*/          OPC_MoveParent,
/* 42291*/          OPC_MoveParent,
/* 42292*/          OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 42294*/          OPC_CheckPredicate, 57, // Predicate_load
/* 42296*/          OPC_CheckType, MVT::i32,
/* 42298*/          OPC_Scope, 10, /*->42310*/ // 2 children in Scope
/* 42300*/            OPC_CheckPatternPredicate, 46, // (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/* 42302*/            OPC_EmitMergeInputChains1_0,
/* 42303*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRLIT_ga_pcrel_ldr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (ld:{ *:[i32] } (ARMWrapperPIC:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 20
                      // Dst: (LDRLIT_ga_pcrel_ldr:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 42310*/          /*Scope*/ 10, /*->42321*/
/* 42311*/            OPC_CheckPatternPredicate, 47, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 42313*/            OPC_EmitMergeInputChains1_0,
/* 42314*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MOV_ga_pcrel_ldr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (ld:{ *:[i32] } (ARMWrapperPIC:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 20
                      // Dst: (MOV_ga_pcrel_ldr:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 42321*/          0, /*End of Scope*/
/* 42322*/        /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->42343
/* 42325*/          OPC_MoveParent,
/* 42326*/          OPC_MoveParent,
/* 42327*/          OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 42329*/          OPC_CheckPredicate, 57, // Predicate_load
/* 42331*/          OPC_CheckType, MVT::i32,
/* 42333*/          OPC_CheckPatternPredicate, 47, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 42335*/          OPC_EmitMergeInputChains1_0,
/* 42336*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MOV_ga_pcrel_ldr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[i32] } (ARMWrapperPIC:{ *:[iPTR] } (tglobaltlsaddr:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 20
                    // Dst: (MOV_ga_pcrel_ldr:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr)
/* 42343*/        0, // EndSwitchOpcode
/* 42344*/      /*SwitchOpcode*/ 31, TARGET_VAL(ARMISD::Wrapper),// ->42378
/* 42347*/        OPC_RecordChild0, // #1 = $addr
/* 42348*/        OPC_MoveChild0,
/* 42349*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 42352*/        OPC_MoveParent,
/* 42353*/        OPC_MoveParent,
/* 42354*/        OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 42356*/        OPC_CheckPredicate, 57, // Predicate_load
/* 42358*/        OPC_CheckType, MVT::i32,
/* 42360*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 42362*/        OPC_EmitMergeInputChains1_0,
/* 42363*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42366*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42369*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRpci), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 20
                  // Dst: (tLDRpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 42378*/      0, // EndSwitchOpcode
/* 42379*/    /*Scope*/ 29|128,16/*2077*/, /*->44458*/
/* 42381*/      OPC_RecordChild1, // #1 = $shift
/* 42382*/      OPC_CheckChild1Type, MVT::i32,
/* 42384*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 42386*/      OPC_CheckType, MVT::i32,
/* 42388*/      OPC_Scope, 25, /*->42415*/ // 22 children in Scope
/* 42390*/        OPC_CheckPredicate, 57, // Predicate_load
/* 42392*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42394*/        OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 42397*/        OPC_EmitMergeInputChains1_0,
/* 42398*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42401*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42404*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRrs), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$shift)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 16
                  // Dst: (LDRrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$shift)
/* 42415*/      /*Scope*/ 56, /*->42472*/
/* 42416*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42418*/        OPC_Scope, 25, /*->42445*/ // 2 children in Scope
/* 42420*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 42422*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42424*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 42427*/          OPC_EmitMergeInputChains1_0,
/* 42428*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42431*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42434*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$shift)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 16
                    // Dst: (LDRBrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$shift)
/* 42445*/        /*Scope*/ 25, /*->42471*/
/* 42446*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 42448*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42450*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 42453*/          OPC_EmitMergeInputChains1_0,
/* 42454*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42457*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42460*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 16
                    // Dst: (LDRH:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)
/* 42471*/        0, /*End of Scope*/
/* 42472*/      /*Scope*/ 56, /*->42529*/
/* 42473*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 42475*/        OPC_Scope, 25, /*->42502*/ // 2 children in Scope
/* 42477*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 42479*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42481*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 42484*/          OPC_EmitMergeInputChains1_0,
/* 42485*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42488*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42491*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRSH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 16
                    // Dst: (LDRSH:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)
/* 42502*/        /*Scope*/ 25, /*->42528*/
/* 42503*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 42505*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42507*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 42510*/          OPC_EmitMergeInputChains1_0,
/* 42511*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42514*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42517*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRSB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 16
                    // Dst: (LDRSB:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)
/* 42528*/        0, /*End of Scope*/
/* 42529*/      /*Scope*/ 27, /*->42557*/
/* 42530*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42532*/        OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 42534*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42536*/        OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 42539*/        OPC_EmitMergeInputChains1_0,
/* 42540*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42543*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42546*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 16
                  // Dst: (LDRBrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)
/* 42557*/      /*Scope*/ 82, /*->42640*/
/* 42558*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 42560*/        OPC_Scope, 25, /*->42587*/ // 3 children in Scope
/* 42562*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 42564*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42566*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 42569*/          OPC_EmitMergeInputChains1_0,
/* 42570*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42573*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42576*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 16
                    // Dst: (LDRBrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)
/* 42587*/        /*Scope*/ 25, /*->42613*/
/* 42588*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 42590*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42592*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 42595*/          OPC_EmitMergeInputChains1_0,
/* 42596*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42599*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42602*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 16
                    // Dst: (LDRBrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$addr)
/* 42613*/        /*Scope*/ 25, /*->42639*/
/* 42614*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 42616*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42618*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 42621*/          OPC_EmitMergeInputChains1_0,
/* 42622*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42625*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42628*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 16
                    // Dst: (LDRH:{ *:[i32] } addrmode3:{ *:[i32] }:$addr)
/* 42639*/        0, /*End of Scope*/
/* 42640*/      /*Scope*/ 25, /*->42666*/
/* 42641*/        OPC_CheckPredicate, 57, // Predicate_load
/* 42643*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42645*/        OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42648*/        OPC_EmitMergeInputChains1_0,
/* 42649*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42652*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42655*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRs), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 16
                  // Dst: (t2LDRs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42666*/      /*Scope*/ 56, /*->42723*/
/* 42667*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42669*/        OPC_Scope, 25, /*->42696*/ // 2 children in Scope
/* 42671*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 42673*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42675*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42678*/          OPC_EmitMergeInputChains1_0,
/* 42679*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42682*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42685*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 16
                    // Dst: (t2LDRHs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42696*/        /*Scope*/ 25, /*->42722*/
/* 42697*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 42699*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42701*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42704*/          OPC_EmitMergeInputChains1_0,
/* 42705*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42708*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42711*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 16
                    // Dst: (t2LDRBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42722*/        0, /*End of Scope*/
/* 42723*/      /*Scope*/ 56, /*->42780*/
/* 42724*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 42726*/        OPC_Scope, 25, /*->42753*/ // 2 children in Scope
/* 42728*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 42730*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42732*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42735*/          OPC_EmitMergeInputChains1_0,
/* 42736*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42739*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42742*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSHs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 16
                    // Dst: (t2LDRSHs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42753*/        /*Scope*/ 25, /*->42779*/
/* 42754*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 42756*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42758*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42761*/          OPC_EmitMergeInputChains1_0,
/* 42762*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42765*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42768*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSBs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 16
                    // Dst: (t2LDRSBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42779*/        0, /*End of Scope*/
/* 42780*/      /*Scope*/ 27, /*->42808*/
/* 42781*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42783*/        OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 42785*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42787*/        OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42790*/        OPC_EmitMergeInputChains1_0,
/* 42791*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42794*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42797*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 16
                  // Dst: (t2LDRBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42808*/      /*Scope*/ 82, /*->42891*/
/* 42809*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 42811*/        OPC_Scope, 25, /*->42838*/ // 3 children in Scope
/* 42813*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 42815*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42817*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42820*/          OPC_EmitMergeInputChains1_0,
/* 42821*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42824*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42827*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 16
                    // Dst: (t2LDRBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42838*/        /*Scope*/ 25, /*->42864*/
/* 42839*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 42841*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42843*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42846*/          OPC_EmitMergeInputChains1_0,
/* 42847*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42850*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42853*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 16
                    // Dst: (t2LDRBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42864*/        /*Scope*/ 25, /*->42890*/
/* 42865*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 42867*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 42869*/          OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 42872*/          OPC_EmitMergeInputChains1_0,
/* 42873*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42876*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42879*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 16
                    // Dst: (t2LDRHs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 42890*/        0, /*End of Scope*/
/* 42891*/      /*Scope*/ 24, /*->42916*/
/* 42892*/        OPC_CheckPredicate, 57, // Predicate_load
/* 42894*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42896*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 42899*/        OPC_EmitMergeInputChains1_0,
/* 42900*/        OPC_EmitInteger, MVT::i32, 14, 
/* 42903*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42906*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                  // Dst: (LDRi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)
/* 42916*/      /*Scope*/ 54, /*->42971*/
/* 42917*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 42919*/        OPC_Scope, 24, /*->42945*/ // 2 children in Scope
/* 42921*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 42923*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42925*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 42928*/          OPC_EmitMergeInputChains1_0,
/* 42929*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42932*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42935*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                    // Dst: (LDRBi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)
/* 42945*/        /*Scope*/ 24, /*->42970*/
/* 42946*/          OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 42948*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42950*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 42953*/          OPC_EmitMergeInputChains1_0,
/* 42954*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42957*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42960*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                    // Dst: (LDRBi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)
/* 42970*/        0, /*End of Scope*/
/* 42971*/      /*Scope*/ 103, /*->43075*/
/* 42972*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 42974*/        OPC_Scope, 24, /*->43000*/ // 3 children in Scope
/* 42976*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 42978*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 42980*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 42983*/          OPC_EmitMergeInputChains1_0,
/* 42984*/          OPC_EmitInteger, MVT::i32, 14, 
/* 42987*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42990*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (LDRBi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)
/* 43000*/        /*Scope*/ 48, /*->43049*/
/* 43001*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 43003*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 43005*/          OPC_Scope, 20, /*->43027*/ // 2 children in Scope
/* 43007*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 43010*/            OPC_EmitMergeInputChains1_0,
/* 43011*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43014*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43017*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (LDRBi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$addr)
/* 43027*/          /*Scope*/ 20, /*->43048*/
/* 43028*/            OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 43031*/            OPC_EmitMergeInputChains1_0,
/* 43032*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43035*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43038*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (PICLDRB:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 43048*/          0, /*End of Scope*/
/* 43049*/        /*Scope*/ 24, /*->43074*/
/* 43050*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 43052*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 43054*/          OPC_CheckComplexPat, /*CP*/13, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 43057*/          OPC_EmitMergeInputChains1_0,
/* 43058*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43061*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43064*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (PICLDRH:{ *:[i32] } addrmodepc:{ *:[i32] }:$addr)
/* 43074*/        0, /*End of Scope*/
/* 43075*/      /*Scope*/ 69, /*->43145*/
/* 43076*/        OPC_CheckPredicate, 57, // Predicate_load
/* 43078*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43080*/        OPC_Scope, 20, /*->43102*/ // 3 children in Scope
/* 43082*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 43085*/          OPC_EmitMergeInputChains1_0,
/* 43086*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43089*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43092*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (tLDRspi:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)
/* 43102*/        /*Scope*/ 20, /*->43123*/
/* 43103*/          OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectThumbAddrModeImm5S4:$addr #2 #3
/* 43106*/          OPC_EmitMergeInputChains1_0,
/* 43107*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43110*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43113*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_is4:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (tLDRi:{ *:[i32] } t_addrmode_is4:{ *:[i32] }:$addr)
/* 43123*/        /*Scope*/ 20, /*->43144*/
/* 43124*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43127*/          OPC_EmitMergeInputChains1_0,
/* 43128*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43131*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43134*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (tLDRr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43144*/        0, /*End of Scope*/
/* 43145*/      /*Scope*/ 23|128,1/*151*/, /*->43298*/
/* 43147*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 43149*/        OPC_Scope, 48, /*->43199*/ // 3 children in Scope
/* 43151*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 43153*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43155*/          OPC_Scope, 20, /*->43177*/ // 2 children in Scope
/* 43157*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 43160*/            OPC_EmitMergeInputChains1_0,
/* 43161*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43164*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43167*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                      // Dst: (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)
/* 43177*/          /*Scope*/ 20, /*->43198*/
/* 43178*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43181*/            OPC_EmitMergeInputChains1_0,
/* 43182*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43185*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43188*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                      // Dst: (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43198*/          0, /*End of Scope*/
/* 43199*/        /*Scope*/ 48, /*->43248*/
/* 43200*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 43202*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43204*/          OPC_Scope, 20, /*->43226*/ // 2 children in Scope
/* 43206*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 43209*/            OPC_EmitMergeInputChains1_0,
/* 43210*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43213*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43216*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                      // Dst: (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)
/* 43226*/          /*Scope*/ 20, /*->43247*/
/* 43227*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43230*/            OPC_EmitMergeInputChains1_0,
/* 43231*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43234*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43237*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                      // Dst: (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43247*/          0, /*End of Scope*/
/* 43248*/        /*Scope*/ 48, /*->43297*/
/* 43249*/          OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 43251*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43253*/          OPC_Scope, 20, /*->43275*/ // 2 children in Scope
/* 43255*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 43258*/            OPC_EmitMergeInputChains1_0,
/* 43259*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43262*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43265*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                      // Dst: (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)
/* 43275*/          /*Scope*/ 20, /*->43296*/
/* 43276*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43279*/            OPC_EmitMergeInputChains1_0,
/* 43280*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43283*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43286*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                      // Dst: (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43296*/          0, /*End of Scope*/
/* 43297*/        0, /*End of Scope*/
/* 43298*/      /*Scope*/ 98|128,1/*226*/, /*->43526*/
/* 43300*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 43302*/        OPC_Scope, 24, /*->43328*/ // 6 children in Scope
/* 43304*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 43306*/          OPC_CheckPatternPredicate, 48, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43308*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 43311*/          OPC_EmitMergeInputChains1_0,
/* 43312*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43315*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43318*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (tLDRspi:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)
/* 43328*/        /*Scope*/ 24, /*->43353*/
/* 43329*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 43331*/          OPC_CheckPatternPredicate, 48, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43333*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 43336*/          OPC_EmitMergeInputChains1_0,
/* 43337*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43340*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43343*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                    // Dst: (tLDRspi:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)
/* 43353*/        /*Scope*/ 24, /*->43378*/
/* 43354*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 43356*/          OPC_CheckPatternPredicate, 48, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43358*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 43361*/          OPC_EmitMergeInputChains1_0,
/* 43362*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43365*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43368*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (tLDRspi:{ *:[i32] } t_addrmode_sp:{ *:[i32] }:$addr)
/* 43378*/        /*Scope*/ 48, /*->43427*/
/* 43379*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 43381*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43383*/          OPC_Scope, 20, /*->43405*/ // 2 children in Scope
/* 43385*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 43388*/            OPC_EmitMergeInputChains1_0,
/* 43389*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43392*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43395*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                      // Dst: (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)
/* 43405*/          /*Scope*/ 20, /*->43426*/
/* 43406*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43409*/            OPC_EmitMergeInputChains1_0,
/* 43410*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43413*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43416*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                      // Dst: (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43426*/          0, /*End of Scope*/
/* 43427*/        /*Scope*/ 48, /*->43476*/
/* 43428*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 43430*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43432*/          OPC_Scope, 20, /*->43454*/ // 2 children in Scope
/* 43434*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 43437*/            OPC_EmitMergeInputChains1_0,
/* 43438*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43441*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43444*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)
/* 43454*/          /*Scope*/ 20, /*->43475*/
/* 43455*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43458*/            OPC_EmitMergeInputChains1_0,
/* 43459*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43462*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43465*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43475*/          0, /*End of Scope*/
/* 43476*/        /*Scope*/ 48, /*->43525*/
/* 43477*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 43479*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43481*/          OPC_Scope, 20, /*->43503*/ // 2 children in Scope
/* 43483*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 43486*/            OPC_EmitMergeInputChains1_0,
/* 43487*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43490*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43493*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                      // Dst: (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)
/* 43503*/          /*Scope*/ 20, /*->43524*/
/* 43504*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 43507*/            OPC_EmitMergeInputChains1_0,
/* 43508*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43511*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43514*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                      // Dst: (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)
/* 43524*/          0, /*End of Scope*/
/* 43525*/        0, /*End of Scope*/
/* 43526*/      /*Scope*/ 48, /*->43575*/
/* 43527*/        OPC_CheckPredicate, 57, // Predicate_load
/* 43529*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43531*/        OPC_Scope, 20, /*->43553*/ // 2 children in Scope
/* 43533*/          OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43536*/          OPC_EmitMergeInputChains1_0,
/* 43537*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43540*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43543*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (t2LDRi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43553*/        /*Scope*/ 20, /*->43574*/
/* 43554*/          OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43557*/          OPC_EmitMergeInputChains1_0,
/* 43558*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43561*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43564*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (t2LDRi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43574*/        0, /*End of Scope*/
/* 43575*/      /*Scope*/ 102, /*->43678*/
/* 43576*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 43578*/        OPC_Scope, 48, /*->43628*/ // 2 children in Scope
/* 43580*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 43582*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43584*/          OPC_Scope, 20, /*->43606*/ // 2 children in Scope
/* 43586*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43589*/            OPC_EmitMergeInputChains1_0,
/* 43590*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43593*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43596*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                      // Dst: (t2LDRHi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43606*/          /*Scope*/ 20, /*->43627*/
/* 43607*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43610*/            OPC_EmitMergeInputChains1_0,
/* 43611*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43614*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43617*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                      // Dst: (t2LDRHi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43627*/          0, /*End of Scope*/
/* 43628*/        /*Scope*/ 48, /*->43677*/
/* 43629*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 43631*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43633*/          OPC_Scope, 20, /*->43655*/ // 2 children in Scope
/* 43635*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43638*/            OPC_EmitMergeInputChains1_0,
/* 43639*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43642*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43645*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                      // Dst: (t2LDRBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43655*/          /*Scope*/ 20, /*->43676*/
/* 43656*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43659*/            OPC_EmitMergeInputChains1_0,
/* 43660*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43663*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43666*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                      // Dst: (t2LDRBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43676*/          0, /*End of Scope*/
/* 43677*/        0, /*End of Scope*/
/* 43678*/      /*Scope*/ 102, /*->43781*/
/* 43679*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 43681*/        OPC_Scope, 48, /*->43731*/ // 2 children in Scope
/* 43683*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 43685*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43687*/          OPC_Scope, 20, /*->43709*/ // 2 children in Scope
/* 43689*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43692*/            OPC_EmitMergeInputChains1_0,
/* 43693*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43696*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43699*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSHi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                      // Dst: (t2LDRSHi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43709*/          /*Scope*/ 20, /*->43730*/
/* 43710*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43713*/            OPC_EmitMergeInputChains1_0,
/* 43714*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43717*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43720*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSHi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                      // Dst: (t2LDRSHi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43730*/          0, /*End of Scope*/
/* 43731*/        /*Scope*/ 48, /*->43780*/
/* 43732*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 43734*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43736*/          OPC_Scope, 20, /*->43758*/ // 2 children in Scope
/* 43738*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43741*/            OPC_EmitMergeInputChains1_0,
/* 43742*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43745*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43748*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                      // Dst: (t2LDRSBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43758*/          /*Scope*/ 20, /*->43779*/
/* 43759*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43762*/            OPC_EmitMergeInputChains1_0,
/* 43763*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43766*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43769*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSBi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                      // Dst: (t2LDRSBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43779*/          0, /*End of Scope*/
/* 43780*/        0, /*End of Scope*/
/* 43781*/      /*Scope*/ 50, /*->43832*/
/* 43782*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 43784*/        OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 43786*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43788*/        OPC_Scope, 20, /*->43810*/ // 2 children in Scope
/* 43790*/          OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43793*/          OPC_EmitMergeInputChains1_0,
/* 43794*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43797*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43800*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                    // Dst: (t2LDRBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43810*/        /*Scope*/ 20, /*->43831*/
/* 43811*/          OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43814*/          OPC_EmitMergeInputChains1_0,
/* 43815*/          OPC_EmitInteger, MVT::i32, 14, 
/* 43818*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43821*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                    // Dst: (t2LDRBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43831*/        0, /*End of Scope*/
/* 43832*/      /*Scope*/ 23|128,1/*151*/, /*->43985*/
/* 43834*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 43836*/        OPC_Scope, 48, /*->43886*/ // 3 children in Scope
/* 43838*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 43840*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43842*/          OPC_Scope, 20, /*->43864*/ // 2 children in Scope
/* 43844*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43847*/            OPC_EmitMergeInputChains1_0,
/* 43848*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43851*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43854*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                      // Dst: (t2LDRBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43864*/          /*Scope*/ 20, /*->43885*/
/* 43865*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43868*/            OPC_EmitMergeInputChains1_0,
/* 43869*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43872*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43875*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                      // Dst: (t2LDRBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43885*/          0, /*End of Scope*/
/* 43886*/        /*Scope*/ 48, /*->43935*/
/* 43887*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 43889*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43891*/          OPC_Scope, 20, /*->43913*/ // 2 children in Scope
/* 43893*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43896*/            OPC_EmitMergeInputChains1_0,
/* 43897*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43900*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43903*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (t2LDRBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43913*/          /*Scope*/ 20, /*->43934*/
/* 43914*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43917*/            OPC_EmitMergeInputChains1_0,
/* 43918*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43921*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43924*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                      // Dst: (t2LDRBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43934*/          0, /*End of Scope*/
/* 43935*/        /*Scope*/ 48, /*->43984*/
/* 43936*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 43938*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 43940*/          OPC_Scope, 20, /*->43962*/ // 2 children in Scope
/* 43942*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 43945*/            OPC_EmitMergeInputChains1_0,
/* 43946*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43949*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43952*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                      // Dst: (t2LDRHi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 43962*/          /*Scope*/ 20, /*->43983*/
/* 43963*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 43966*/            OPC_EmitMergeInputChains1_0,
/* 43967*/            OPC_EmitInteger, MVT::i32, 14, 
/* 43970*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43973*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                      // Dst: (t2LDRHi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 43983*/          0, /*End of Scope*/
/* 43984*/        0, /*End of Scope*/
/* 43985*/      /*Scope*/ 86|128,3/*470*/, /*->44457*/
/* 43987*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 43989*/        OPC_Scope, 84, /*->44075*/ // 4 children in Scope
/* 43991*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 43993*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 43995*/          OPC_Scope, 38, /*->44035*/ // 2 children in Scope
/* 43997*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 44000*/            OPC_EmitMergeInputChains1_0,
/* 44001*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44004*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44007*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44017*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44020*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44023*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTB), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44032*/            OPC_CompleteMatch, 1, 9, 
                       // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                       // Dst: (tSXTB:{ *:[i32] } (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr))
/* 44035*/          /*Scope*/ 38, /*->44074*/
/* 44036*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 44039*/            OPC_EmitMergeInputChains1_0,
/* 44040*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44043*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44046*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44056*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44059*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44062*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTB), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44071*/            OPC_CompleteMatch, 1, 9, 
                       // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                       // Dst: (tSXTB:{ *:[i32] } (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr))
/* 44074*/          0, /*End of Scope*/
/* 44075*/        /*Scope*/ 84, /*->44160*/
/* 44076*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 44078*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 44080*/          OPC_Scope, 38, /*->44120*/ // 2 children in Scope
/* 44082*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 44085*/            OPC_EmitMergeInputChains1_0,
/* 44086*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44089*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44092*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44102*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44105*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44108*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTH), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44117*/            OPC_CompleteMatch, 1, 9, 
                       // Src: (ld:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                       // Dst: (tSXTH:{ *:[i32] } (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr))
/* 44120*/          /*Scope*/ 38, /*->44159*/
/* 44121*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 44124*/            OPC_EmitMergeInputChains1_0,
/* 44125*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44128*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44131*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44141*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44144*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44147*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTH), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44156*/            OPC_CompleteMatch, 1, 9, 
                       // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                       // Dst: (tSXTH:{ *:[i32] } (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr))
/* 44159*/          0, /*End of Scope*/
/* 44160*/        /*Scope*/ 18|128,1/*146*/, /*->44308*/
/* 44162*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 44164*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 44166*/          OPC_Scope, 69, /*->44237*/ // 2 children in Scope
/* 44168*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 44171*/            OPC_EmitMergeInputChains1_0,
/* 44172*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44175*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44178*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44181*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44184*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 44194*/            OPC_EmitInteger, MVT::i32, 24, 
/* 44197*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44200*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44203*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 44214*/            OPC_EmitInteger, MVT::i32, 24, 
/* 44217*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44220*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44223*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 44234*/            OPC_CompleteMatch, 1, 16, 
                       // Src: (ld:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                       // Dst: (tASRri:{ *:[i32] } (tLSLri:{ *:[i32] } (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$addr), 24:{ *:[i32] }), 24:{ *:[i32] })
/* 44237*/          /*Scope*/ 69, /*->44307*/
/* 44238*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 44241*/            OPC_EmitMergeInputChains1_0,
/* 44242*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44245*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44248*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44251*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44254*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 44264*/            OPC_EmitInteger, MVT::i32, 24, 
/* 44267*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44270*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44273*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 44284*/            OPC_EmitInteger, MVT::i32, 24, 
/* 44287*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44290*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44293*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 44304*/            OPC_CompleteMatch, 1, 16, 
                       // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 13
                       // Dst: (tASRri:{ *:[i32] } (tLSLri:{ *:[i32] } (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr), 24:{ *:[i32] }), 24:{ *:[i32] })
/* 44307*/          0, /*End of Scope*/
/* 44308*/        /*Scope*/ 18|128,1/*146*/, /*->44456*/
/* 44310*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 44312*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 44314*/          OPC_Scope, 69, /*->44385*/ // 2 children in Scope
/* 44316*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 44319*/            OPC_EmitMergeInputChains1_0,
/* 44320*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44323*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44326*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44329*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44332*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 44342*/            OPC_EmitInteger, MVT::i32, 16, 
/* 44345*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44348*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44351*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 44362*/            OPC_EmitInteger, MVT::i32, 16, 
/* 44365*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44368*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44371*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 44382*/            OPC_CompleteMatch, 1, 16, 
                       // Src: (ld:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                       // Dst: (tASRri:{ *:[i32] } (tLSLri:{ *:[i32] } (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$addr), 16:{ *:[i32] }), 16:{ *:[i32] })
/* 44385*/          /*Scope*/ 69, /*->44455*/
/* 44386*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 44389*/            OPC_EmitMergeInputChains1_0,
/* 44390*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44393*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 44396*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44399*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44402*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 44412*/            OPC_EmitInteger, MVT::i32, 16, 
/* 44415*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44418*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44421*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 44432*/            OPC_EmitInteger, MVT::i32, 16, 
/* 44435*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44438*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44441*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 44452*/            OPC_CompleteMatch, 1, 16, 
                       // Src: (ld:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                       // Dst: (tASRri:{ *:[i32] } (tLSLri:{ *:[i32] } (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$addr), 16:{ *:[i32] }), 16:{ *:[i32] })
/* 44455*/          0, /*End of Scope*/
/* 44456*/        0, /*End of Scope*/
/* 44457*/      0, /*End of Scope*/
/* 44458*/    /*Scope*/ 95|128,1/*223*/, /*->44683*/
/* 44460*/      OPC_MoveChild1,
/* 44461*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 44464*/      OPC_RecordChild0, // #1 = $addr
/* 44465*/      OPC_MoveChild0,
/* 44466*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 44469*/      OPC_MoveParent,
/* 44470*/      OPC_MoveParent,
/* 44471*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 44473*/      OPC_CheckType, MVT::i32,
/* 44475*/      OPC_Scope, 20, /*->44497*/ // 5 children in Scope
/* 44477*/        OPC_CheckPredicate, 57, // Predicate_load
/* 44479*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44481*/        OPC_EmitMergeInputChains1_0,
/* 44482*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44485*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44488*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRpci), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
                  // Dst: (t2LDRpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44497*/      /*Scope*/ 46, /*->44544*/
/* 44498*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 44500*/        OPC_Scope, 20, /*->44522*/ // 2 children in Scope
/* 44502*/          OPC_CheckPredicate, 32, // Predicate_zextloadi16
/* 44504*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44506*/          OPC_EmitMergeInputChains1_0,
/* 44507*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44510*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44513*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 10
                    // Dst: (t2LDRHpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44522*/        /*Scope*/ 20, /*->44543*/
/* 44523*/          OPC_CheckPredicate, 59, // Predicate_zextloadi8
/* 44525*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44527*/          OPC_EmitMergeInputChains1_0,
/* 44528*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44531*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44534*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 10
                    // Dst: (t2LDRBpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44543*/        0, /*End of Scope*/
/* 44544*/      /*Scope*/ 46, /*->44591*/
/* 44545*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 44547*/        OPC_Scope, 20, /*->44569*/ // 2 children in Scope
/* 44549*/          OPC_CheckPredicate, 32, // Predicate_sextloadi16
/* 44551*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44553*/          OPC_EmitMergeInputChains1_0,
/* 44554*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44557*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44560*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSHpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 10
                    // Dst: (t2LDRSHpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44569*/        /*Scope*/ 20, /*->44590*/
/* 44570*/          OPC_CheckPredicate, 59, // Predicate_sextloadi8
/* 44572*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44574*/          OPC_EmitMergeInputChains1_0,
/* 44575*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44578*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44581*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRSBpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 10
                    // Dst: (t2LDRSBpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44590*/        0, /*End of Scope*/
/* 44591*/      /*Scope*/ 22, /*->44614*/
/* 44592*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 44594*/        OPC_CheckPredicate, 61, // Predicate_zextloadi1
/* 44596*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44598*/        OPC_EmitMergeInputChains1_0,
/* 44599*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44602*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44605*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 10
                  // Dst: (t2LDRBpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44614*/      /*Scope*/ 67, /*->44682*/
/* 44615*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 44617*/        OPC_Scope, 20, /*->44639*/ // 3 children in Scope
/* 44619*/          OPC_CheckPredicate, 61, // Predicate_extloadi1
/* 44621*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44623*/          OPC_EmitMergeInputChains1_0,
/* 44624*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44627*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44630*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 10
                    // Dst: (t2LDRBpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44639*/        /*Scope*/ 20, /*->44660*/
/* 44640*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 44642*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44644*/          OPC_EmitMergeInputChains1_0,
/* 44645*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44648*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44651*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 10
                    // Dst: (t2LDRBpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44660*/        /*Scope*/ 20, /*->44681*/
/* 44661*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 44663*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 44665*/          OPC_EmitMergeInputChains1_0,
/* 44666*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44669*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44672*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 10
                    // Dst: (t2LDRHpci:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr)
/* 44681*/        0, /*End of Scope*/
/* 44682*/      0, /*End of Scope*/
/* 44683*/    /*Scope*/ 107|128,31/*4075*/, /*->48760*/
/* 44685*/      OPC_RecordChild1, // #1 = $addr
/* 44686*/      OPC_CheckChild1Type, MVT::i32,
/* 44688*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 44690*/      OPC_Scope, 37|128,1/*165*/, /*->44858*/ // 47 children in Scope
/* 44693*/        OPC_CheckPredicate, 57, // Predicate_load
/* 44695*/        OPC_Scope, 52, /*->44749*/ // 5 children in Scope
/* 44697*/          OPC_CheckPredicate, 62, // Predicate_alignedload32
/* 44699*/          OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->44724
/* 44702*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 44704*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$addr #2 #3
/* 44707*/            OPC_EmitMergeInputChains1_0,
/* 44708*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44711*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44714*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VLDRD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[f64] } addrmode5:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (VLDRD:{ *:[f64] } addrmode5:{ *:[i32] }:$addr)
/* 44724*/          /*SwitchType*/ 22, MVT::f32,// ->44748
/* 44726*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 44728*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$addr #2 #3
/* 44731*/            OPC_EmitMergeInputChains1_0,
/* 44732*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44735*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44738*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[f32] } addrmode5:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (VLDRS:{ *:[f32] } addrmode5:{ *:[i32] }:$addr)
/* 44748*/          0, // EndSwitchType
/* 44749*/        /*Scope*/ 26, /*->44776*/
/* 44750*/          OPC_CheckPredicate, 63, // Predicate_alignedload16
/* 44752*/          OPC_CheckType, MVT::f16,
/* 44754*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 44756*/          OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectAddrMode5FP16:$addr #2 #3
/* 44759*/          OPC_EmitMergeInputChains1_0,
/* 44760*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44763*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44766*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLDRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f16] } addrmode5fp16:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload16>> - Complexity = 13
                    // Dst: (VLDRH:{ *:[f16] } addrmode5fp16:{ *:[i32] }:$addr)
/* 44776*/        /*Scope*/ 26, /*->44803*/
/* 44777*/          OPC_CheckPredicate, 64, // Predicate_hword_alignedload
/* 44779*/          OPC_CheckType, MVT::f64,
/* 44781*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 44783*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44786*/          OPC_EmitMergeInputChains1_0,
/* 44787*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44790*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44793*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                    // Dst: (VLD1d16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)
/* 44803*/        /*Scope*/ 26, /*->44830*/
/* 44804*/          OPC_CheckPredicate, 65, // Predicate_byte_alignedload
/* 44806*/          OPC_CheckType, MVT::f64,
/* 44808*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 44810*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44813*/          OPC_EmitMergeInputChains1_0,
/* 44814*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44817*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44820*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                    // Dst: (VLD1d8:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)
/* 44830*/        /*Scope*/ 26, /*->44857*/
/* 44831*/          OPC_CheckPredicate, 66, // Predicate_non_word_alignedload
/* 44833*/          OPC_CheckType, MVT::f64,
/* 44835*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 44837*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44840*/          OPC_EmitMergeInputChains1_0,
/* 44841*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44844*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44847*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1d64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_non_word_alignedload>> - Complexity = 13
                    // Dst: (VLD1d64:{ *:[f64] } addrmode6:{ *:[i32] }:$addr)
/* 44857*/        0, /*End of Scope*/
/* 44858*/      /*Scope*/ 44, /*->44903*/
/* 44859*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 44861*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 44863*/        OPC_CheckType, MVT::v8i16,
/* 44865*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44868*/        OPC_EmitMergeInputChains1_0,
/* 44869*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44875*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44885*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44888*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44891*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44900*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v8i16] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 23
                   // Dst: (VMOVLuv8i16:{ *:[v8i16] } (VLD1d8:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 44903*/      /*Scope*/ 44, /*->44948*/
/* 44904*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 44906*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 44908*/        OPC_CheckType, MVT::v8i16,
/* 44910*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44913*/        OPC_EmitMergeInputChains1_0,
/* 44914*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44917*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44920*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44930*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44933*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44936*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44945*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v8i16] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 23
                   // Dst: (VMOVLuv8i16:{ *:[v8i16] } (VLD1d8:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 44948*/      /*Scope*/ 44, /*->44993*/
/* 44949*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 44951*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 44953*/        OPC_CheckType, MVT::v8i16,
/* 44955*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 44958*/        OPC_EmitMergeInputChains1_0,
/* 44959*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44962*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44965*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 44975*/        OPC_EmitInteger, MVT::i32, 14, 
/* 44978*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44981*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 44990*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v8i16] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 23
                   // Dst: (VMOVLsv8i16:{ *:[v8i16] } (VLD1d8:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 44993*/      /*Scope*/ 44, /*->45038*/
/* 44994*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 44996*/        OPC_CheckPredicate, 68, // Predicate_extloadvi16
/* 44998*/        OPC_CheckType, MVT::v4i32,
/* 45000*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45003*/        OPC_EmitMergeInputChains1_0,
/* 45004*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45007*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45010*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45020*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45023*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45026*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45035*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v4i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 23
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (VLD1d16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45038*/      /*Scope*/ 44, /*->45083*/
/* 45039*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45041*/        OPC_CheckPredicate, 68, // Predicate_zextloadvi16
/* 45043*/        OPC_CheckType, MVT::v4i32,
/* 45045*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45048*/        OPC_EmitMergeInputChains1_0,
/* 45049*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45052*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45055*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45065*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45071*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45080*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v4i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 23
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (VLD1d16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45083*/      /*Scope*/ 44, /*->45128*/
/* 45084*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 45086*/        OPC_CheckPredicate, 68, // Predicate_sextloadvi16
/* 45088*/        OPC_CheckType, MVT::v4i32,
/* 45090*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45093*/        OPC_EmitMergeInputChains1_0,
/* 45094*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45097*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45100*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45110*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45113*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45116*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45125*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v4i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 23
                   // Dst: (VMOVLsv4i32:{ *:[v4i32] } (VLD1d16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45128*/      /*Scope*/ 44, /*->45173*/
/* 45129*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 45131*/        OPC_CheckPredicate, 69, // Predicate_extloadvi32
/* 45133*/        OPC_CheckType, MVT::v2i64,
/* 45135*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45138*/        OPC_EmitMergeInputChains1_0,
/* 45139*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45142*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45145*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45155*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45158*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45161*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45170*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi32>> - Complexity = 23
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (VLD1d32:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45173*/      /*Scope*/ 44, /*->45218*/
/* 45174*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45176*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi32
/* 45178*/        OPC_CheckType, MVT::v2i64,
/* 45180*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45183*/        OPC_EmitMergeInputChains1_0,
/* 45184*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45187*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45190*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45200*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45203*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45206*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45215*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 23
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (VLD1d32:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45218*/      /*Scope*/ 44, /*->45263*/
/* 45219*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 45221*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi32
/* 45223*/        OPC_CheckType, MVT::v2i64,
/* 45225*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45228*/        OPC_EmitMergeInputChains1_0,
/* 45229*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45232*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45235*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 45245*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45248*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45251*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 45260*/        OPC_CompleteMatch, 1, 9, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 23
                   // Dst: (VMOVLsv2i64:{ *:[v2i64] } (VLD1d32:{ *:[f64] } addrmode6:{ *:[i32] }:$addr))
/* 45263*/      /*Scope*/ 65, /*->45329*/
/* 45264*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 45266*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 45268*/        OPC_CheckType, MVT::v4i16,
/* 45270*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45272*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45275*/        OPC_EmitMergeInputChains1_0,
/* 45276*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45282*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45285*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45288*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45291*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45303*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45309*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45318*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45321*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45329*/      /*Scope*/ 65, /*->45395*/
/* 45330*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45332*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 45334*/        OPC_CheckType, MVT::v4i16,
/* 45336*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45338*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45341*/        OPC_EmitMergeInputChains1_0,
/* 45342*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45348*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45351*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45354*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45357*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45369*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45372*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45375*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45384*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45387*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45395*/      /*Scope*/ 65, /*->45461*/
/* 45396*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 45398*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 45400*/        OPC_CheckType, MVT::v4i16,
/* 45402*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45404*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45407*/        OPC_EmitMergeInputChains1_0,
/* 45408*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45414*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45417*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45420*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45423*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45435*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45438*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45441*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45450*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45453*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLsv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45461*/      /*Scope*/ 65, /*->45527*/
/* 45462*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 45464*/        OPC_CheckPredicate, 68, // Predicate_extloadvi16
/* 45466*/        OPC_CheckType, MVT::v2i32,
/* 45468*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45470*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45473*/        OPC_EmitMergeInputChains1_0,
/* 45474*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45480*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45483*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45486*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45489*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45501*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45507*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45516*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45519*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45527*/      /*Scope*/ 65, /*->45593*/
/* 45528*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45530*/        OPC_CheckPredicate, 68, // Predicate_zextloadvi16
/* 45532*/        OPC_CheckType, MVT::v2i32,
/* 45534*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45536*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45539*/        OPC_EmitMergeInputChains1_0,
/* 45540*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45546*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45549*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45552*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45555*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45567*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45570*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45573*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45582*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45585*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45593*/      /*Scope*/ 65, /*->45659*/
/* 45594*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 45596*/        OPC_CheckPredicate, 68, // Predicate_sextloadvi16
/* 45598*/        OPC_CheckType, MVT::v2i32,
/* 45600*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45602*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45605*/        OPC_EmitMergeInputChains1_0,
/* 45606*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45612*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45615*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45618*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45621*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45633*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45636*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45639*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45648*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45651*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 11, 12, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLsv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 45659*/      /*Scope*/ 83, /*->45743*/
/* 45660*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 45662*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 45664*/        OPC_CheckType, MVT::v4i32,
/* 45666*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45668*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45671*/        OPC_EmitMergeInputChains1_0,
/* 45672*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45678*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45681*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45684*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45687*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45699*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45702*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45705*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45714*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45717*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 45725*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45728*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45731*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 45740*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 45743*/      /*Scope*/ 83, /*->45827*/
/* 45744*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45746*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 45748*/        OPC_CheckType, MVT::v4i32,
/* 45750*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45752*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45755*/        OPC_EmitMergeInputChains1_0,
/* 45756*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45762*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45765*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45768*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45771*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45783*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45786*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45789*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45798*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45801*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 45809*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45812*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45815*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 45824*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 45827*/      /*Scope*/ 83, /*->45911*/
/* 45828*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 45830*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 45832*/        OPC_CheckType, MVT::v4i32,
/* 45834*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45836*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45839*/        OPC_EmitMergeInputChains1_0,
/* 45840*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45846*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45849*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45852*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45855*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45867*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45870*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45873*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45882*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45885*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 45893*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45896*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45899*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 45908*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLsv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 45911*/      /*Scope*/ 83, /*->45995*/
/* 45912*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 45914*/        OPC_CheckPredicate, 68, // Predicate_extloadvi16
/* 45916*/        OPC_CheckType, MVT::v2i64,
/* 45918*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 45920*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 45923*/        OPC_EmitMergeInputChains1_0,
/* 45924*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 45930*/        OPC_EmitInteger, MVT::i32, 0, 
/* 45933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45939*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 45951*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45954*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45957*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 45966*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 45969*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 45977*/        OPC_EmitInteger, MVT::i32, 14, 
/* 45980*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45983*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 45992*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 45995*/      /*Scope*/ 83, /*->46079*/
/* 45996*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 45998*/        OPC_CheckPredicate, 68, // Predicate_zextloadvi16
/* 46000*/        OPC_CheckType, MVT::v2i64,
/* 46002*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 46004*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46007*/        OPC_EmitMergeInputChains1_0,
/* 46008*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46014*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46017*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46020*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46023*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46035*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46038*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46041*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46050*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46053*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 46061*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46064*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46067*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 46076*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 46079*/      /*Scope*/ 83, /*->46163*/
/* 46080*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 46082*/        OPC_CheckPredicate, 68, // Predicate_sextloadvi16
/* 46084*/        OPC_CheckType, MVT::v2i64,
/* 46086*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 46088*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46091*/        OPC_EmitMergeInputChains1_0,
/* 46092*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46098*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46101*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46107*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46119*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46122*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46125*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46134*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46137*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 46145*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46148*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46151*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 46160*/        OPC_CompleteMatch, 1, 16, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 13
                   // Dst: (VMOVLsv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv4i32:{ *:[v16i8] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 46163*/      /*Scope*/ 80, /*->46244*/
/* 46164*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 46166*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 46168*/        OPC_CheckType, MVT::v4i16,
/* 46170*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46172*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46175*/        OPC_EmitMergeInputChains1_0,
/* 46176*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46182*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46185*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46188*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46191*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46203*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46206*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46209*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46218*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46221*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46224*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46233*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46236*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLuv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46244*/      /*Scope*/ 80, /*->46325*/
/* 46245*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 46247*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 46249*/        OPC_CheckType, MVT::v4i16,
/* 46251*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46253*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46256*/        OPC_EmitMergeInputChains1_0,
/* 46257*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46263*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46266*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46269*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46272*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46284*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46287*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46290*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46299*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46302*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46305*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46314*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46317*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLuv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46325*/      /*Scope*/ 80, /*->46406*/
/* 46326*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 46328*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 46330*/        OPC_CheckType, MVT::v4i16,
/* 46332*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46334*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46337*/        OPC_EmitMergeInputChains1_0,
/* 46338*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46344*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46347*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46350*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46353*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46365*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46368*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46371*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46380*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46383*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46386*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46395*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46398*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i16, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v4i16] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (VMOVLsv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46406*/      /*Scope*/ 80, /*->46487*/
/* 46407*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 46409*/        OPC_CheckPredicate, 68, // Predicate_extloadvi16
/* 46411*/        OPC_CheckType, MVT::v2i32,
/* 46413*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46415*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46418*/        OPC_EmitMergeInputChains1_0,
/* 46419*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46425*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46428*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46431*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46434*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46446*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46449*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46452*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46461*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46464*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46467*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46476*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46479*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46487*/      /*Scope*/ 80, /*->46568*/
/* 46488*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 46490*/        OPC_CheckPredicate, 68, // Predicate_zextloadvi16
/* 46492*/        OPC_CheckType, MVT::v2i32,
/* 46494*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46496*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46499*/        OPC_EmitMergeInputChains1_0,
/* 46500*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46506*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46509*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46512*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46515*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46527*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46530*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46533*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46548*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46557*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46560*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46568*/      /*Scope*/ 80, /*->46649*/
/* 46569*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 46571*/        OPC_CheckPredicate, 68, // Predicate_sextloadvi16
/* 46573*/        OPC_CheckType, MVT::v2i32,
/* 46575*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46577*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46580*/        OPC_EmitMergeInputChains1_0,
/* 46581*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46587*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46590*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46593*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46596*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46608*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46611*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46614*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46623*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46626*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46629*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46638*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46641*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 14, 15, 
                  // Src: (ld:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLsv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })
/* 46649*/      /*Scope*/ 91, /*->46741*/
/* 46650*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 46652*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 46654*/        OPC_CheckType, MVT::v2i32,
/* 46656*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 46658*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46661*/        OPC_EmitMergeInputChains1_0,
/* 46662*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46668*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46671*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46674*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46677*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46689*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46692*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46695*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46704*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 46715*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46718*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46721*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 46730*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46733*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 16, 17, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 46741*/      /*Scope*/ 91, /*->46833*/
/* 46742*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 46744*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 46746*/        OPC_CheckType, MVT::v2i32,
/* 46748*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 46750*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46753*/        OPC_EmitMergeInputChains1_0,
/* 46754*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46760*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46763*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46766*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46769*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46781*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46784*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46787*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46796*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46799*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 46807*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46810*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46813*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 46822*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46825*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 16, 17, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 46833*/      /*Scope*/ 91, /*->46925*/
/* 46834*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 46836*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 46838*/        OPC_CheckType, MVT::v2i32,
/* 46840*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 46842*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46845*/        OPC_EmitMergeInputChains1_0,
/* 46846*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46852*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46855*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46858*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46861*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46873*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46876*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46879*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46888*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46891*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 46899*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46902*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46905*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 46914*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46917*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 16, 17, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLsv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 46925*/      /*Scope*/ 98, /*->47024*/
/* 46926*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 46928*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 46930*/        OPC_CheckType, MVT::v4i32,
/* 46932*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 46934*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 46937*/        OPC_EmitMergeInputChains1_0,
/* 46938*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 46944*/        OPC_EmitInteger, MVT::i32, 0, 
/* 46947*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46953*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 46965*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46971*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 46980*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46983*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46986*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 46995*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 46998*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47006*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47009*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47012*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47021*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47024*/      /*Scope*/ 98, /*->47123*/
/* 47025*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 47027*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 47029*/        OPC_CheckType, MVT::v4i32,
/* 47031*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47033*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47036*/        OPC_EmitMergeInputChains1_0,
/* 47037*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47043*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47046*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47049*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47052*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47064*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47067*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47070*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47079*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47082*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47085*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47094*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47097*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47105*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47108*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47111*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47120*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47123*/      /*Scope*/ 98, /*->47222*/
/* 47124*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 47126*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 47128*/        OPC_CheckType, MVT::v4i32,
/* 47130*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47132*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47135*/        OPC_EmitMergeInputChains1_0,
/* 47136*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47142*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47145*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47148*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47151*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47163*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47166*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47169*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47184*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47193*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47196*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47204*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47207*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47210*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47219*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v4i32] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLsv4i32:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VREV32d8:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47222*/      /*Scope*/ 98, /*->47321*/
/* 47223*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 47225*/        OPC_CheckPredicate, 68, // Predicate_extloadvi16
/* 47227*/        OPC_CheckType, MVT::v2i64,
/* 47229*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47231*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47234*/        OPC_EmitMergeInputChains1_0,
/* 47235*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47241*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47244*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47247*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47250*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47262*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47265*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47268*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47277*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47280*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47283*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47292*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47295*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47303*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47309*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47318*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47321*/      /*Scope*/ 98, /*->47420*/
/* 47322*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 47324*/        OPC_CheckPredicate, 68, // Predicate_zextloadvi16
/* 47326*/        OPC_CheckType, MVT::v2i64,
/* 47328*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47330*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47333*/        OPC_EmitMergeInputChains1_0,
/* 47334*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47340*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47343*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47346*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47349*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47361*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47364*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47367*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47376*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47379*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47382*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47391*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47394*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47402*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47405*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47408*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47417*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47420*/      /*Scope*/ 98, /*->47519*/
/* 47421*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 47423*/        OPC_CheckPredicate, 68, // Predicate_sextloadvi16
/* 47425*/        OPC_CheckType, MVT::v2i64,
/* 47427*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47429*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47432*/        OPC_EmitMergeInputChains1_0,
/* 47433*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47439*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47442*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47448*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47460*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47463*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47466*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47475*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47478*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47481*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47490*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47493*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47501*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47507*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47516*/        OPC_CompleteMatch, 1, 19, 
                   // Src: (ld:{ *:[v2i64] } addrmode6oneL32:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 13
                   // Dst: (VMOVLsv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv4i32:{ *:[v16i8] } (VREV32d16:{ *:[f64] } (VLD1LNd32:{ *:[f64] } addrmode6oneL32:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] }))
/* 47519*/      /*Scope*/ 106, /*->47626*/
/* 47520*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 47522*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 47524*/        OPC_CheckType, MVT::v2i32,
/* 47526*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47528*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47531*/        OPC_EmitMergeInputChains1_0,
/* 47532*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47538*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47541*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47544*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47547*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47559*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47562*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47565*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47574*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47577*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47580*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47589*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47592*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47600*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47603*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47606*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47615*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47618*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 19, 20, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 47626*/      /*Scope*/ 106, /*->47733*/
/* 47627*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 47629*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 47631*/        OPC_CheckType, MVT::v2i32,
/* 47633*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47635*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47638*/        OPC_EmitMergeInputChains1_0,
/* 47639*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47645*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47648*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47651*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47654*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47666*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47669*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47672*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47681*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47684*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47687*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47696*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47699*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47707*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47710*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47713*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47722*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47725*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 19, 20, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 47733*/      /*Scope*/ 106, /*->47840*/
/* 47734*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 47736*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 47738*/        OPC_CheckType, MVT::v2i32,
/* 47740*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 47742*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47745*/        OPC_EmitMergeInputChains1_0,
/* 47746*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47752*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47755*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47758*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47761*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47773*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47779*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47788*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47791*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47794*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 47803*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47806*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 47814*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47817*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47820*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 47829*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47832*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i32, 2/*#Ops*/, 19, 20, 
                  // Src: (ld:{ *:[v2i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (VMOVLsv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] })
/* 47840*/      /*Scope*/ 109, /*->47950*/
/* 47841*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 47843*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 47845*/        OPC_CheckType, MVT::v2i64,
/* 47847*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 47849*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47852*/        OPC_EmitMergeInputChains1_0,
/* 47853*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47859*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47862*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47865*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47868*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47880*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47883*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47886*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 47895*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47898*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 47906*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47909*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47912*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 47921*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 47924*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 47932*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47935*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47938*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 47947*/        OPC_CompleteMatch, 1, 21, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 47950*/      /*Scope*/ 109, /*->48060*/
/* 47951*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 47953*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 47955*/        OPC_CheckType, MVT::v2i64,
/* 47957*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 47959*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 47962*/        OPC_EmitMergeInputChains1_0,
/* 47963*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 47969*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47972*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47975*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47978*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 47990*/        OPC_EmitInteger, MVT::i32, 14, 
/* 47993*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47996*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 48005*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48008*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 48016*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48019*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48022*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 48031*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48034*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 48042*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48045*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48048*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 48057*/        OPC_CompleteMatch, 1, 21, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 48060*/      /*Scope*/ 109, /*->48170*/
/* 48061*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 48063*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 48065*/        OPC_CheckType, MVT::v2i64,
/* 48067*/        OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 48069*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48072*/        OPC_EmitMergeInputChains1_0,
/* 48073*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 48079*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48082*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48085*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48088*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 48100*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48106*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 48115*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48118*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 48126*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48129*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48132*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 48141*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48144*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 48152*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48155*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48158*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 48167*/        OPC_CompleteMatch, 1, 21, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLsv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] })), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 48170*/      /*Scope*/ 124, /*->48295*/
/* 48171*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 48173*/        OPC_CheckPredicate, 67, // Predicate_extloadvi8
/* 48175*/        OPC_CheckType, MVT::v2i64,
/* 48177*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 48179*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48182*/        OPC_EmitMergeInputChains1_0,
/* 48183*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 48189*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48192*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48195*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48198*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 48210*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48213*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48216*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 48225*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48228*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48231*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 48240*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48243*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 48251*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48254*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48257*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 48266*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48269*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 48277*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48280*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48283*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 48292*/        OPC_CompleteMatch, 1, 24, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 48295*/      /*Scope*/ 124, /*->48420*/
/* 48296*/        OPC_CheckPredicate, 58, // Predicate_zextload
/* 48298*/        OPC_CheckPredicate, 67, // Predicate_zextloadvi8
/* 48300*/        OPC_CheckType, MVT::v2i64,
/* 48302*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 48304*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48307*/        OPC_EmitMergeInputChains1_0,
/* 48308*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 48314*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48317*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48320*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48323*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 48335*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48338*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48341*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 48350*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48353*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48356*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 48365*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48368*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 48376*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48379*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48382*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 48391*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48394*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 48402*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48405*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48408*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 48417*/        OPC_CompleteMatch, 1, 24, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLuv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLuv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 48420*/      /*Scope*/ 124, /*->48545*/
/* 48421*/        OPC_CheckPredicate, 60, // Predicate_sextload
/* 48423*/        OPC_CheckPredicate, 67, // Predicate_sextloadvi8
/* 48425*/        OPC_CheckType, MVT::v2i64,
/* 48427*/        OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 48429*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48432*/        OPC_EmitMergeInputChains1_0,
/* 48433*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 48439*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48442*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48448*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 48460*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48463*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48466*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 48475*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48478*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48481*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 48490*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48493*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 48501*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48507*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 48516*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 48519*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 48527*/        OPC_EmitInteger, MVT::i32, 14, 
/* 48530*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48533*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 48542*/        OPC_CompleteMatch, 1, 24, 
                   // Src: (ld:{ *:[v2i64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                   // Dst: (VMOVLsv2i64:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv4i32:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[f64] } (VMOVLsv8i16:{ *:[v16i8] } (VREV16d8:{ *:[f64] } (VLD1LNd16:{ *:[f64] } addrmode6:{ *:[i32] }:$addr, (IMPLICIT_DEF:{ *:[f64] }), 0:{ *:[i32] }))), dsub_0:{ *:[i32] })), dsub_0:{ *:[i32] }))
/* 48545*/      /*Scope*/ 84|128,1/*212*/, /*->48759*/
/* 48547*/        OPC_CheckPredicate, 57, // Predicate_load
/* 48549*/        OPC_CheckType, MVT::v2f64,
/* 48551*/        OPC_Scope, 22, /*->48575*/ // 6 children in Scope
/* 48553*/          OPC_CheckPredicate, 70, // Predicate_dword_alignedload
/* 48555*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48558*/          OPC_EmitMergeInputChains1_0,
/* 48559*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48562*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48565*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1q64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_dword_alignedload>> - Complexity = 13
                    // Dst: (VLD1q64:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)
/* 48575*/        /*Scope*/ 24, /*->48600*/
/* 48576*/          OPC_CheckPredicate, 71, // Predicate_word_alignedload
/* 48578*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 48580*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48583*/          OPC_EmitMergeInputChains1_0,
/* 48584*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48587*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48590*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1q32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_word_alignedload>> - Complexity = 13
                    // Dst: (VLD1q32:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)
/* 48600*/        /*Scope*/ 24, /*->48625*/
/* 48601*/          OPC_CheckPredicate, 64, // Predicate_hword_alignedload
/* 48603*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 48605*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48608*/          OPC_EmitMergeInputChains1_0,
/* 48609*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48612*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48615*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1q16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                    // Dst: (VLD1q16:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)
/* 48625*/        /*Scope*/ 68, /*->48694*/
/* 48626*/          OPC_CheckPredicate, 65, // Predicate_byte_alignedload
/* 48628*/          OPC_Scope, 22, /*->48652*/ // 2 children in Scope
/* 48630*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 48632*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48635*/            OPC_EmitMergeInputChains1_0,
/* 48636*/            OPC_EmitInteger, MVT::i32, 14, 
/* 48639*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48642*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1q8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (VLD1q8:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)
/* 48652*/          /*Scope*/ 40, /*->48693*/
/* 48653*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 48655*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48658*/            OPC_EmitMergeInputChains1_0,
/* 48659*/            OPC_EmitInteger, MVT::i32, 14, 
/* 48662*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48665*/            OPC_EmitNode1, TARGET_VAL(ARM::VLD1q8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 48675*/            OPC_EmitInteger, MVT::i32, 14, 
/* 48678*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48681*/            OPC_EmitNode1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v2f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 48690*/            OPC_CompleteMatch, 1, 9, 
                       // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                       // Dst: (VREV64q8:{ *:[v2f64] } (VLD1q8:{ *:[v16i8] } addrmode6:{ *:[i32] }:$addr))
/* 48693*/          0, /*End of Scope*/
/* 48694*/        /*Scope*/ 42, /*->48737*/
/* 48695*/          OPC_CheckPredicate, 64, // Predicate_hword_alignedload
/* 48697*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 48699*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 48702*/          OPC_EmitMergeInputChains1_0,
/* 48703*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48706*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48709*/          OPC_EmitNode1, TARGET_VAL(ARM::VLD1q16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 48719*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48722*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48725*/          OPC_EmitNode1, TARGET_VAL(ARM::VREV64q16), 0,
                        MVT::v2f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 48734*/          OPC_CompleteMatch, 1, 9, 
                     // Src: (ld:{ *:[v2f64] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                     // Dst: (VREV64q16:{ *:[v2f64] } (VLD1q16:{ *:[v16i8] } addrmode6:{ *:[i32] }:$addr))
/* 48737*/        /*Scope*/ 20, /*->48758*/
/* 48738*/          OPC_CheckPredicate, 71, // Predicate_word_alignedload
/* 48740*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 48742*/          OPC_EmitMergeInputChains1_0,
/* 48743*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48746*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48749*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLDMQIA), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ld:{ *:[v2f64] } GPR:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_word_alignedload>> - Complexity = 4
                    // Dst: (VLDMQIA:{ *:[v2f64] } GPR:{ *:[i32] }:$Rn)
/* 48758*/        0, /*End of Scope*/
/* 48759*/      0, /*End of Scope*/
/* 48760*/    0, /*End of Scope*/
/* 48761*/  /*SwitchOpcode*/ 120|128,13/*1784*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->50549
/* 48765*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 48766*/    OPC_Scope, 47|128,2/*303*/, /*->49072*/ // 21 children in Scope
/* 48769*/      OPC_CheckChild1Integer, 37|128,9/*1189*/, 
/* 48772*/      OPC_Scope, 9|128,1/*137*/, /*->48912*/ // 2 children in Scope
/* 48775*/        OPC_MoveChild2,
/* 48776*/        OPC_Scope, 32, /*->48810*/ // 4 children in Scope
/* 48778*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 48781*/          OPC_RecordChild0, // #1 = $Rt
/* 48782*/          OPC_MoveParent,
/* 48783*/          OPC_RecordChild3, // #2 = $addr
/* 48784*/          OPC_CheckChild3Type, MVT::i32,
/* 48786*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 48788*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 48790*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48793*/          OPC_EmitMergeInputChains1_0,
/* 48794*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48797*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48800*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 255:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_1>> - Complexity = 23
                    // Dst: (STREXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48810*/        /*Scope*/ 33, /*->48844*/
/* 48811*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 48815*/          OPC_RecordChild0, // #1 = $Rt
/* 48816*/          OPC_MoveParent,
/* 48817*/          OPC_RecordChild3, // #2 = $addr
/* 48818*/          OPC_CheckChild3Type, MVT::i32,
/* 48820*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 48822*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 48824*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48827*/          OPC_EmitMergeInputChains1_0,
/* 48828*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48834*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 65535:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_2>> - Complexity = 23
                    // Dst: (STREXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48844*/        /*Scope*/ 32, /*->48877*/
/* 48845*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 48848*/          OPC_RecordChild0, // #1 = $Rt
/* 48849*/          OPC_MoveParent,
/* 48850*/          OPC_RecordChild3, // #2 = $addr
/* 48851*/          OPC_CheckChild3Type, MVT::i32,
/* 48853*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 48855*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 48857*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48860*/          OPC_EmitMergeInputChains1_0,
/* 48861*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48864*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48867*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 255:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_1>> - Complexity = 23
                    // Dst: (t2STREXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48877*/        /*Scope*/ 33, /*->48911*/
/* 48878*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 48882*/          OPC_RecordChild0, // #1 = $Rt
/* 48883*/          OPC_MoveParent,
/* 48884*/          OPC_RecordChild3, // #2 = $addr
/* 48885*/          OPC_CheckChild3Type, MVT::i32,
/* 48887*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 48889*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 48891*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48894*/          OPC_EmitMergeInputChains1_0,
/* 48895*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48898*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48901*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 65535:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_2>> - Complexity = 23
                    // Dst: (t2STREXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48911*/        0, /*End of Scope*/
/* 48912*/      /*Scope*/ 29|128,1/*157*/, /*->49071*/
/* 48914*/        OPC_RecordChild2, // #1 = $Rt
/* 48915*/        OPC_RecordChild3, // #2 = $addr
/* 48916*/        OPC_CheckChild3Type, MVT::i32,
/* 48918*/        OPC_Scope, 25, /*->48945*/ // 6 children in Scope
/* 48920*/          OPC_CheckPredicate, 72, // Predicate_strex_4
/* 48922*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 48924*/          OPC_CheckComplexPat, /*CP*/29, /*#*/2, // SelectT2AddrModeExclusive:$addr #3 #4
/* 48927*/          OPC_EmitMergeInputChains1_0,
/* 48928*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48931*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48934*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREX), 0|OPFL_Chain,
                        MVT::i32, 5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)<<P:Predicate_strex_4>> - Complexity = 18
                    // Dst: (t2STREX:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)
/* 48945*/        /*Scope*/ 24, /*->48970*/
/* 48946*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 48948*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 48950*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48953*/          OPC_EmitMergeInputChains1_0,
/* 48954*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48957*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48960*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_1>> - Complexity = 15
                    // Dst: (STREXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48970*/        /*Scope*/ 24, /*->48995*/
/* 48971*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 48973*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 48975*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 48978*/          OPC_EmitMergeInputChains1_0,
/* 48979*/          OPC_EmitInteger, MVT::i32, 14, 
/* 48982*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48985*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_2>> - Complexity = 15
                    // Dst: (STREXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 48995*/        /*Scope*/ 24, /*->49020*/
/* 48996*/          OPC_CheckPredicate, 72, // Predicate_strex_4
/* 48998*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49000*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49003*/          OPC_EmitMergeInputChains1_0,
/* 49004*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49007*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49010*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_4>> - Complexity = 15
                    // Dst: (STREX:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49020*/        /*Scope*/ 24, /*->49045*/
/* 49021*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 49023*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 49025*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49028*/          OPC_EmitMergeInputChains1_0,
/* 49029*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49032*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49035*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_1>> - Complexity = 15
                    // Dst: (t2STREXB:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49045*/        /*Scope*/ 24, /*->49070*/
/* 49046*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 49048*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 49050*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49053*/          OPC_EmitMergeInputChains1_0,
/* 49054*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49057*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49060*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1189:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_strex_2>> - Complexity = 15
                    // Dst: (t2STREXH:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49070*/        0, /*End of Scope*/
/* 49071*/      0, /*End of Scope*/
/* 49072*/    /*Scope*/ 46|128,2/*302*/, /*->49376*/
/* 49074*/      OPC_CheckChild1Integer, 35|128,9/*1187*/, 
/* 49077*/      OPC_Scope, 9|128,1/*137*/, /*->49217*/ // 2 children in Scope
/* 49080*/        OPC_MoveChild2,
/* 49081*/        OPC_Scope, 32, /*->49115*/ // 4 children in Scope
/* 49083*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 49086*/          OPC_RecordChild0, // #1 = $Rt
/* 49087*/          OPC_MoveParent,
/* 49088*/          OPC_RecordChild3, // #2 = $addr
/* 49089*/          OPC_CheckChild3Type, MVT::i32,
/* 49091*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 49093*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49095*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49098*/          OPC_EmitMergeInputChains1_0,
/* 49099*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49102*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49105*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 255:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_1>> - Complexity = 23
                    // Dst: (STLEXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49115*/        /*Scope*/ 33, /*->49149*/
/* 49116*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 49120*/          OPC_RecordChild0, // #1 = $Rt
/* 49121*/          OPC_MoveParent,
/* 49122*/          OPC_RecordChild3, // #2 = $addr
/* 49123*/          OPC_CheckChild3Type, MVT::i32,
/* 49125*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 49127*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49129*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49132*/          OPC_EmitMergeInputChains1_0,
/* 49133*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49136*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49139*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 65535:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_2>> - Complexity = 23
                    // Dst: (STLEXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49149*/        /*Scope*/ 32, /*->49182*/
/* 49150*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 49153*/          OPC_RecordChild0, // #1 = $Rt
/* 49154*/          OPC_MoveParent,
/* 49155*/          OPC_RecordChild3, // #2 = $addr
/* 49156*/          OPC_CheckChild3Type, MVT::i32,
/* 49158*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 49160*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49162*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49165*/          OPC_EmitMergeInputChains1_0,
/* 49166*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49169*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49172*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 255:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_1>> - Complexity = 23
                    // Dst: (t2STLEXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49182*/        /*Scope*/ 33, /*->49216*/
/* 49183*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 49187*/          OPC_RecordChild0, // #1 = $Rt
/* 49188*/          OPC_MoveParent,
/* 49189*/          OPC_RecordChild3, // #2 = $addr
/* 49190*/          OPC_CheckChild3Type, MVT::i32,
/* 49192*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 49194*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49196*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49199*/          OPC_EmitMergeInputChains1_0,
/* 49200*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49203*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49206*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rt, 65535:{ *:[i32] }), addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_2>> - Complexity = 23
                    // Dst: (t2STLEXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49216*/        0, /*End of Scope*/
/* 49217*/      /*Scope*/ 28|128,1/*156*/, /*->49375*/
/* 49219*/        OPC_RecordChild2, // #1 = $Rt
/* 49220*/        OPC_RecordChild3, // #2 = $addr
/* 49221*/        OPC_CheckChild3Type, MVT::i32,
/* 49223*/        OPC_Scope, 24, /*->49249*/ // 6 children in Scope
/* 49225*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 49227*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49229*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49232*/          OPC_EmitMergeInputChains1_0,
/* 49233*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49236*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49239*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_1>> - Complexity = 15
                    // Dst: (STLEXB:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49249*/        /*Scope*/ 24, /*->49274*/
/* 49250*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 49252*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49254*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49257*/          OPC_EmitMergeInputChains1_0,
/* 49258*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49261*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49264*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_2>> - Complexity = 15
                    // Dst: (STLEXH:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49274*/        /*Scope*/ 24, /*->49299*/
/* 49275*/          OPC_CheckPredicate, 72, // Predicate_stlex_4
/* 49277*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49279*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49282*/          OPC_EmitMergeInputChains1_0,
/* 49283*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49286*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49289*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_4>> - Complexity = 15
                    // Dst: (STLEX:{ *:[i32] } GPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49299*/        /*Scope*/ 24, /*->49324*/
/* 49300*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 49302*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49304*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49307*/          OPC_EmitMergeInputChains1_0,
/* 49308*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49311*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49314*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_1>> - Complexity = 15
                    // Dst: (t2STLEXB:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49324*/        /*Scope*/ 24, /*->49349*/
/* 49325*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 49327*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49329*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49332*/          OPC_EmitMergeInputChains1_0,
/* 49333*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49336*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49339*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_2>> - Complexity = 15
                    // Dst: (t2STLEXH:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49349*/        /*Scope*/ 24, /*->49374*/
/* 49350*/          OPC_CheckPredicate, 72, // Predicate_stlex_4
/* 49352*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49354*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 49357*/          OPC_EmitMergeInputChains1_0,
/* 49358*/          OPC_EmitInteger, MVT::i32, 14, 
/* 49361*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49364*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1187:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_stlex_4>> - Complexity = 15
                    // Dst: (t2STLEX:{ *:[i32] } rGPR:{ *:[i32] }:$Rt, addr_offset_none:{ *:[i32] }:$addr)
/* 49374*/        0, /*End of Scope*/
/* 49375*/      0, /*End of Scope*/
/* 49376*/    /*Scope*/ 101, /*->49478*/
/* 49377*/      OPC_CheckChild1Integer, 100|128,7/*996*/, 
/* 49380*/      OPC_RecordChild2, // #1 = $cop
/* 49381*/      OPC_MoveChild2,
/* 49382*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49385*/      OPC_MoveParent,
/* 49386*/      OPC_RecordChild3, // #2 = $opc1
/* 49387*/      OPC_MoveChild3,
/* 49388*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49391*/      OPC_MoveParent,
/* 49392*/      OPC_RecordChild4, // #3 = $CRn
/* 49393*/      OPC_MoveChild4,
/* 49394*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49397*/      OPC_MoveParent,
/* 49398*/      OPC_RecordChild5, // #4 = $CRm
/* 49399*/      OPC_MoveChild5,
/* 49400*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49403*/      OPC_MoveParent,
/* 49404*/      OPC_RecordChild6, // #5 = $opc2
/* 49405*/      OPC_MoveChild6,
/* 49406*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49409*/      OPC_MoveParent,
/* 49410*/      OPC_Scope, 32, /*->49444*/ // 2 children in Scope
/* 49412*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49414*/        OPC_EmitMergeInputChains1_0,
/* 49415*/        OPC_EmitConvertToTarget, 1,
/* 49417*/        OPC_EmitConvertToTarget, 2,
/* 49419*/        OPC_EmitConvertToTarget, 3,
/* 49421*/        OPC_EmitConvertToTarget, 4,
/* 49423*/        OPC_EmitConvertToTarget, 5,
/* 49425*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49428*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49431*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MRC), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 6, 7, 8, 9, 10, 11, 12, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 996:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MRC:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 49444*/      /*Scope*/ 32, /*->49477*/
/* 49445*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/* 49447*/        OPC_EmitMergeInputChains1_0,
/* 49448*/        OPC_EmitConvertToTarget, 1,
/* 49450*/        OPC_EmitConvertToTarget, 2,
/* 49452*/        OPC_EmitConvertToTarget, 3,
/* 49454*/        OPC_EmitConvertToTarget, 4,
/* 49456*/        OPC_EmitConvertToTarget, 5,
/* 49458*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49461*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49464*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MRC), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 6, 7, 8, 9, 10, 11, 12, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 996:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MRC:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 49477*/      0, /*End of Scope*/
/* 49478*/    /*Scope*/ 93, /*->49572*/
/* 49479*/      OPC_CheckChild1Integer, 101|128,7/*997*/, 
/* 49482*/      OPC_RecordChild2, // #1 = $cop
/* 49483*/      OPC_MoveChild2,
/* 49484*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49487*/      OPC_MoveParent,
/* 49488*/      OPC_RecordChild3, // #2 = $opc1
/* 49489*/      OPC_MoveChild3,
/* 49490*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49493*/      OPC_MoveParent,
/* 49494*/      OPC_RecordChild4, // #3 = $CRn
/* 49495*/      OPC_MoveChild4,
/* 49496*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49499*/      OPC_MoveParent,
/* 49500*/      OPC_RecordChild5, // #4 = $CRm
/* 49501*/      OPC_MoveChild5,
/* 49502*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49505*/      OPC_MoveParent,
/* 49506*/      OPC_RecordChild6, // #5 = $opc2
/* 49507*/      OPC_MoveChild6,
/* 49508*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49511*/      OPC_MoveParent,
/* 49512*/      OPC_Scope, 24, /*->49538*/ // 2 children in Scope
/* 49514*/        OPC_CheckPatternPredicate, 51, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 49516*/        OPC_EmitMergeInputChains1_0,
/* 49517*/        OPC_EmitConvertToTarget, 1,
/* 49519*/        OPC_EmitConvertToTarget, 2,
/* 49521*/        OPC_EmitConvertToTarget, 3,
/* 49523*/        OPC_EmitConvertToTarget, 4,
/* 49525*/        OPC_EmitConvertToTarget, 5,
/* 49527*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MRC2), 0|OPFL_Chain,
                      MVT::i32, 5/*#Ops*/, 6, 7, 8, 9, 10, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 997:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MRC2:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 49538*/      /*Scope*/ 32, /*->49571*/
/* 49539*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/* 49541*/        OPC_EmitMergeInputChains1_0,
/* 49542*/        OPC_EmitConvertToTarget, 1,
/* 49544*/        OPC_EmitConvertToTarget, 2,
/* 49546*/        OPC_EmitConvertToTarget, 3,
/* 49548*/        OPC_EmitConvertToTarget, 4,
/* 49550*/        OPC_EmitConvertToTarget, 5,
/* 49552*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49555*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49558*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MRC2), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 6, 7, 8, 9, 10, 11, 12, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 997:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MRC2:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
/* 49571*/      0, /*End of Scope*/
/* 49572*/    /*Scope*/ 25|128,1/*153*/, /*->49727*/
/* 49574*/      OPC_CheckChild1Integer, 94|128,7/*990*/, 
/* 49577*/      OPC_RecordChild2, // #1 = $addr
/* 49578*/      OPC_CheckChild2Type, MVT::i32,
/* 49580*/      OPC_Scope, 24, /*->49606*/ // 6 children in Scope
/* 49582*/        OPC_CheckPredicate, 72, // Predicate_ldrex_4
/* 49584*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 49586*/        OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectT2AddrModeExclusive:$addr #2 #3
/* 49589*/        OPC_EmitMergeInputChains1_0,
/* 49590*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49593*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49596*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)<<P:Predicate_ldrex_4>> - Complexity = 18
                  // Dst: (t2LDREX:{ *:[i32] } t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)
/* 49606*/      /*Scope*/ 23, /*->49630*/
/* 49607*/        OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 49609*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49611*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49614*/        OPC_EmitMergeInputChains1_0,
/* 49615*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49618*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49621*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>> - Complexity = 15
                  // Dst: (LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49630*/      /*Scope*/ 23, /*->49654*/
/* 49631*/        OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 49633*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49635*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49638*/        OPC_EmitMergeInputChains1_0,
/* 49639*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49642*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49645*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>> - Complexity = 15
                  // Dst: (LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49654*/      /*Scope*/ 23, /*->49678*/
/* 49655*/        OPC_CheckPredicate, 72, // Predicate_ldrex_4
/* 49657*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49659*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49662*/        OPC_EmitMergeInputChains1_0,
/* 49663*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49666*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49669*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_4>> - Complexity = 15
                  // Dst: (LDREX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49678*/      /*Scope*/ 23, /*->49702*/
/* 49679*/        OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 49681*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 49683*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49686*/        OPC_EmitMergeInputChains1_0,
/* 49687*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49690*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49693*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>> - Complexity = 15
                  // Dst: (t2LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49702*/      /*Scope*/ 23, /*->49726*/
/* 49703*/        OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 49705*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 49707*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49710*/        OPC_EmitMergeInputChains1_0,
/* 49711*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49714*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49717*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 990:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>> - Complexity = 15
                  // Dst: (t2LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49726*/      0, /*End of Scope*/
/* 49727*/    /*Scope*/ 24|128,1/*152*/, /*->49881*/
/* 49729*/      OPC_CheckChild1Integer, 88|128,7/*984*/, 
/* 49732*/      OPC_RecordChild2, // #1 = $addr
/* 49733*/      OPC_CheckChild2Type, MVT::i32,
/* 49735*/      OPC_Scope, 23, /*->49760*/ // 6 children in Scope
/* 49737*/        OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 49739*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49741*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49744*/        OPC_EmitMergeInputChains1_0,
/* 49745*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49748*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49751*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>> - Complexity = 15
                  // Dst: (LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49760*/      /*Scope*/ 23, /*->49784*/
/* 49761*/        OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 49763*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49765*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49768*/        OPC_EmitMergeInputChains1_0,
/* 49769*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49772*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49775*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>> - Complexity = 15
                  // Dst: (LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49784*/      /*Scope*/ 23, /*->49808*/
/* 49785*/        OPC_CheckPredicate, 72, // Predicate_ldaex_4
/* 49787*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 49789*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49792*/        OPC_EmitMergeInputChains1_0,
/* 49793*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49796*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49799*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_4>> - Complexity = 15
                  // Dst: (LDAEX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49808*/      /*Scope*/ 23, /*->49832*/
/* 49809*/        OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 49811*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49813*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49816*/        OPC_EmitMergeInputChains1_0,
/* 49817*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49820*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49823*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>> - Complexity = 15
                  // Dst: (t2LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49832*/      /*Scope*/ 23, /*->49856*/
/* 49833*/        OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 49835*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49837*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49840*/        OPC_EmitMergeInputChains1_0,
/* 49841*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49844*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49847*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>> - Complexity = 15
                  // Dst: (t2LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49856*/      /*Scope*/ 23, /*->49880*/
/* 49857*/        OPC_CheckPredicate, 72, // Predicate_ldaex_4
/* 49859*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 49861*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 49864*/        OPC_EmitMergeInputChains1_0,
/* 49865*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49868*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49871*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 984:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_4>> - Complexity = 15
                  // Dst: (t2LDAEX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 49880*/      0, /*End of Scope*/
/* 49881*/    /*Scope*/ 21, /*->49903*/
/* 49882*/      OPC_CheckChild1Integer, 25|128,9/*1177*/, 
/* 49885*/      OPC_RecordChild2, // #1 = $size
/* 49886*/      OPC_MoveChild2,
/* 49887*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49890*/      OPC_MoveParent,
/* 49891*/      OPC_RecordChild3, // #2 = $Rn
/* 49892*/      OPC_EmitMergeInputChains1_0,
/* 49893*/      OPC_EmitConvertToTarget, 1,
/* 49895*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SPACE), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 3, 2, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 1177:{ *:[iPTR] }, (imm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn) - Complexity = 11
                // Dst: (SPACE:{ *:[i32] } (imm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn)
/* 49903*/    /*Scope*/ 47, /*->49951*/
/* 49904*/      OPC_CheckChild1Integer, 121|128,8/*1145*/, 
/* 49907*/      OPC_RecordChild2, // #1 = $Rn
/* 49908*/      OPC_RecordChild3, // #2 = $Rm
/* 49909*/      OPC_Scope, 19, /*->49930*/ // 2 children in Scope
/* 49911*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 49913*/        OPC_EmitMergeInputChains1_0,
/* 49914*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49917*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49920*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SEL), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1145:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 49930*/      /*Scope*/ 19, /*->49950*/
/* 49931*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 49933*/        OPC_EmitMergeInputChains1_0,
/* 49934*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49937*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49940*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SEL), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1145:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 49950*/      0, /*End of Scope*/
/* 49951*/    /*Scope*/ 47, /*->49999*/
/* 49952*/      OPC_CheckChild1Integer, 120|128,8/*1144*/, 
/* 49955*/      OPC_RecordChild2, // #1 = $Rn
/* 49956*/      OPC_RecordChild3, // #2 = $Rm
/* 49957*/      OPC_Scope, 19, /*->49978*/ // 2 children in Scope
/* 49959*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 49961*/        OPC_EmitMergeInputChains1_0,
/* 49962*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49965*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49968*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1144:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 49978*/      /*Scope*/ 19, /*->49998*/
/* 49979*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 49981*/        OPC_EmitMergeInputChains1_0,
/* 49982*/        OPC_EmitInteger, MVT::i32, 14, 
/* 49985*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49988*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1144:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 49998*/      0, /*End of Scope*/
/* 49999*/    /*Scope*/ 47, /*->50047*/
/* 50000*/      OPC_CheckChild1Integer, 118|128,8/*1142*/, 
/* 50003*/      OPC_RecordChild2, // #1 = $Rn
/* 50004*/      OPC_RecordChild3, // #2 = $Rm
/* 50005*/      OPC_Scope, 19, /*->50026*/ // 2 children in Scope
/* 50007*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50009*/        OPC_EmitMergeInputChains1_0,
/* 50010*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50013*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50016*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1142:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50026*/      /*Scope*/ 19, /*->50046*/
/* 50027*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50029*/        OPC_EmitMergeInputChains1_0,
/* 50030*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50033*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50036*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1142:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50046*/      0, /*End of Scope*/
/* 50047*/    /*Scope*/ 47, /*->50095*/
/* 50048*/      OPC_CheckChild1Integer, 119|128,8/*1143*/, 
/* 50051*/      OPC_RecordChild2, // #1 = $Rn
/* 50052*/      OPC_RecordChild3, // #2 = $Rm
/* 50053*/      OPC_Scope, 19, /*->50074*/ // 2 children in Scope
/* 50055*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50057*/        OPC_EmitMergeInputChains1_0,
/* 50058*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50064*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1143:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50074*/      /*Scope*/ 19, /*->50094*/
/* 50075*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50077*/        OPC_EmitMergeInputChains1_0,
/* 50078*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50081*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50084*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1143:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50094*/      0, /*End of Scope*/
/* 50095*/    /*Scope*/ 47, /*->50143*/
/* 50096*/      OPC_CheckChild1Integer, 28|128,9/*1180*/, 
/* 50099*/      OPC_RecordChild2, // #1 = $Rn
/* 50100*/      OPC_RecordChild3, // #2 = $Rm
/* 50101*/      OPC_Scope, 19, /*->50122*/ // 2 children in Scope
/* 50103*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50105*/        OPC_EmitMergeInputChains1_0,
/* 50106*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50109*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50112*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1180:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50122*/      /*Scope*/ 19, /*->50142*/
/* 50123*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50125*/        OPC_EmitMergeInputChains1_0,
/* 50126*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50129*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50132*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1180:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50142*/      0, /*End of Scope*/
/* 50143*/    /*Scope*/ 47, /*->50191*/
/* 50144*/      OPC_CheckChild1Integer, 29|128,9/*1181*/, 
/* 50147*/      OPC_RecordChild2, // #1 = $Rn
/* 50148*/      OPC_RecordChild3, // #2 = $Rm
/* 50149*/      OPC_Scope, 19, /*->50170*/ // 2 children in Scope
/* 50151*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50153*/        OPC_EmitMergeInputChains1_0,
/* 50154*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50157*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50160*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1181:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50170*/      /*Scope*/ 19, /*->50190*/
/* 50171*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50173*/        OPC_EmitMergeInputChains1_0,
/* 50174*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50177*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50180*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1181:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50190*/      0, /*End of Scope*/
/* 50191*/    /*Scope*/ 47, /*->50239*/
/* 50192*/      OPC_CheckChild1Integer, 30|128,9/*1182*/, 
/* 50195*/      OPC_RecordChild2, // #1 = $Rn
/* 50196*/      OPC_RecordChild3, // #2 = $Rm
/* 50197*/      OPC_Scope, 19, /*->50218*/ // 2 children in Scope
/* 50199*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50201*/        OPC_EmitMergeInputChains1_0,
/* 50202*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50205*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50208*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1182:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50218*/      /*Scope*/ 19, /*->50238*/
/* 50219*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50221*/        OPC_EmitMergeInputChains1_0,
/* 50222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1182:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50238*/      0, /*End of Scope*/
/* 50239*/    /*Scope*/ 47, /*->50287*/
/* 50240*/      OPC_CheckChild1Integer, 43|128,9/*1195*/, 
/* 50243*/      OPC_RecordChild2, // #1 = $Rn
/* 50244*/      OPC_RecordChild3, // #2 = $Rm
/* 50245*/      OPC_Scope, 19, /*->50266*/ // 2 children in Scope
/* 50247*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50249*/        OPC_EmitMergeInputChains1_0,
/* 50250*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50253*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50256*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1195:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50266*/      /*Scope*/ 19, /*->50286*/
/* 50267*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50269*/        OPC_EmitMergeInputChains1_0,
/* 50270*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50273*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50276*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1195:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50286*/      0, /*End of Scope*/
/* 50287*/    /*Scope*/ 47, /*->50335*/
/* 50288*/      OPC_CheckChild1Integer, 41|128,9/*1193*/, 
/* 50291*/      OPC_RecordChild2, // #1 = $Rn
/* 50292*/      OPC_RecordChild3, // #2 = $Rm
/* 50293*/      OPC_Scope, 19, /*->50314*/ // 2 children in Scope
/* 50295*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50297*/        OPC_EmitMergeInputChains1_0,
/* 50298*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50301*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50304*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1193:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50314*/      /*Scope*/ 19, /*->50334*/
/* 50315*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50317*/        OPC_EmitMergeInputChains1_0,
/* 50318*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50321*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50324*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1193:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50334*/      0, /*End of Scope*/
/* 50335*/    /*Scope*/ 47, /*->50383*/
/* 50336*/      OPC_CheckChild1Integer, 42|128,9/*1194*/, 
/* 50339*/      OPC_RecordChild2, // #1 = $Rn
/* 50340*/      OPC_RecordChild3, // #2 = $Rm
/* 50341*/      OPC_Scope, 19, /*->50362*/ // 2 children in Scope
/* 50343*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50345*/        OPC_EmitMergeInputChains1_0,
/* 50346*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50349*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50352*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1194:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50362*/      /*Scope*/ 19, /*->50382*/
/* 50363*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50365*/        OPC_EmitMergeInputChains1_0,
/* 50366*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50369*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50372*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1194:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50382*/      0, /*End of Scope*/
/* 50383*/    /*Scope*/ 47, /*->50431*/
/* 50384*/      OPC_CheckChild1Integer, 61|128,9/*1213*/, 
/* 50387*/      OPC_RecordChild2, // #1 = $Rn
/* 50388*/      OPC_RecordChild3, // #2 = $Rm
/* 50389*/      OPC_Scope, 19, /*->50410*/ // 2 children in Scope
/* 50391*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50393*/        OPC_EmitMergeInputChains1_0,
/* 50394*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50397*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50400*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1213:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50410*/      /*Scope*/ 19, /*->50430*/
/* 50411*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50413*/        OPC_EmitMergeInputChains1_0,
/* 50414*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50417*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50420*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1213:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50430*/      0, /*End of Scope*/
/* 50431*/    /*Scope*/ 47, /*->50479*/
/* 50432*/      OPC_CheckChild1Integer, 62|128,9/*1214*/, 
/* 50435*/      OPC_RecordChild2, // #1 = $Rn
/* 50436*/      OPC_RecordChild3, // #2 = $Rm
/* 50437*/      OPC_Scope, 19, /*->50458*/ // 2 children in Scope
/* 50439*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50441*/        OPC_EmitMergeInputChains1_0,
/* 50442*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50448*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1214:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50458*/      /*Scope*/ 19, /*->50478*/
/* 50459*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50461*/        OPC_EmitMergeInputChains1_0,
/* 50462*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50465*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50468*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1214:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50478*/      0, /*End of Scope*/
/* 50479*/    /*Scope*/ 47, /*->50527*/
/* 50480*/      OPC_CheckChild1Integer, 63|128,9/*1215*/, 
/* 50483*/      OPC_RecordChild2, // #1 = $Rn
/* 50484*/      OPC_RecordChild3, // #2 = $Rm
/* 50485*/      OPC_Scope, 19, /*->50506*/ // 2 children in Scope
/* 50487*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50489*/        OPC_EmitMergeInputChains1_0,
/* 50490*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50493*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50496*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1215:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 50506*/      /*Scope*/ 19, /*->50526*/
/* 50507*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 50509*/        OPC_EmitMergeInputChains1_0,
/* 50510*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50513*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50516*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1215:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 50526*/      0, /*End of Scope*/
/* 50527*/    /*Scope*/ 20, /*->50548*/
/* 50528*/      OPC_CheckChild1Integer, 85|128,7/*981*/, 
/* 50531*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 50533*/      OPC_EmitMergeInputChains1_0,
/* 50534*/      OPC_EmitInteger, MVT::i32, 14, 
/* 50537*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50540*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMRS), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 981:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VMRS:{ *:[i32] })
/* 50548*/    0, /*End of Scope*/
/* 50549*/  /*SwitchOpcode*/ 125, TARGET_VAL(ARMISD::BR_JT),// ->50677
/* 50552*/    OPC_RecordNode, // #0 = 'ARMbrjt' chained node
/* 50553*/    OPC_Scope, 87, /*->50642*/ // 2 children in Scope
/* 50555*/      OPC_MoveChild1,
/* 50556*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->50616
/* 50560*/        OPC_RecordMemRef,
/* 50561*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 50562*/        OPC_CheckFoldableChainNode,
/* 50563*/        OPC_RecordChild1, // #2 = $target
/* 50564*/        OPC_CheckChild1Type, MVT::i32,
/* 50566*/        OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 50568*/        OPC_CheckPredicate, 57, // Predicate_load
/* 50570*/        OPC_CheckType, MVT::i32,
/* 50572*/        OPC_MoveParent,
/* 50573*/        OPC_RecordChild2, // #3 = $jt
/* 50574*/        OPC_MoveChild2,
/* 50575*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 50578*/        OPC_MoveParent,
/* 50579*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50581*/        OPC_Scope, 16, /*->50599*/ // 2 children in Scope
/* 50583*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectLdStSOReg:$target #4 #5 #6
/* 50586*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 50590*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::BR_JTm_rs), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 4, 5, 6, 3, 
                    // Src: (ARMbrjt (ld:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$target)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (tjumptable:{ *:[i32] }):$jt) - Complexity = 22
                    // Dst: (BR_JTm_rs ldst_so_reg:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt)
/* 50599*/        /*Scope*/ 15, /*->50615*/
/* 50600*/          OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeImm12:$target #4 #5
/* 50603*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 50607*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::BR_JTm_i12), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 4, 5, 3, 
                    // Src: (ARMbrjt (ld:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$target)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (tjumptable:{ *:[i32] }):$jt) - Complexity = 19
                    // Dst: (BR_JTm_i12 addrmode_imm12:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt)
/* 50615*/        0, /*End of Scope*/
/* 50616*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::ADD),// ->50641
/* 50619*/        OPC_RecordChild0, // #1 = $target
/* 50620*/        OPC_RecordChild1, // #2 = $idx
/* 50621*/        OPC_CheckType, MVT::i32,
/* 50623*/        OPC_MoveParent,
/* 50624*/        OPC_RecordChild2, // #3 = $jt
/* 50625*/        OPC_MoveChild2,
/* 50626*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 50629*/        OPC_MoveParent,
/* 50630*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50632*/        OPC_EmitMergeInputChains1_0,
/* 50633*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::BR_JTadd), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 3, 
                  // Src: (ARMbrjt (add:{ *:[i32] } GPR:{ *:[i32] }:$target, GPR:{ *:[i32] }:$idx), (tjumptable:{ *:[i32] }):$jt) - Complexity = 9
                  // Dst: (BR_JTadd GPR:{ *:[i32] }:$target, GPR:{ *:[i32] }:$idx, (tjumptable:{ *:[i32] }):$jt)
/* 50641*/      0, // EndSwitchOpcode
/* 50642*/    /*Scope*/ 33, /*->50676*/
/* 50643*/      OPC_RecordChild1, // #1 = $target
/* 50644*/      OPC_CheckChild1Type, MVT::i32,
/* 50646*/      OPC_RecordChild2, // #2 = $jt
/* 50647*/      OPC_MoveChild2,
/* 50648*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 50651*/      OPC_MoveParent,
/* 50652*/      OPC_Scope, 10, /*->50664*/ // 2 children in Scope
/* 50654*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50656*/        OPC_EmitMergeInputChains1_0,
/* 50657*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::BR_JTr), 0|OPFL_Chain,
                      2/*#Ops*/, 1, 2, 
                  // Src: (ARMbrjt GPR:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt) - Complexity = 6
                  // Dst: (BR_JTr GPR:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt)
/* 50664*/      /*Scope*/ 10, /*->50675*/
/* 50665*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 50667*/        OPC_EmitMergeInputChains1_0,
/* 50668*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tBR_JTr), 0|OPFL_Chain,
                      2/*#Ops*/, 1, 2, 
                  // Src: (ARMbrjt tGPR:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt) - Complexity = 6
                  // Dst: (tBR_JTr tGPR:{ *:[i32] }:$target, (tjumptable:{ *:[i32] }):$jt)
/* 50675*/      0, /*End of Scope*/
/* 50676*/    0, /*End of Scope*/
/* 50677*/  /*SwitchOpcode*/ 78|128,9/*1230*/, TARGET_VAL(ISD::XOR),// ->51911
/* 50681*/    OPC_Scope, 74|128,1/*202*/, /*->50886*/ // 7 children in Scope
/* 50684*/      OPC_RecordChild0, // #0 = $shift
/* 50685*/      OPC_Scope, 94, /*->50781*/ // 3 children in Scope
/* 50687*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50698*/        OPC_CheckType, MVT::i32,
/* 50700*/        OPC_Scope, 26, /*->50728*/ // 3 children in Scope
/* 50702*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50704*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #1 #2 #3
/* 50707*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50710*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50713*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50716*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVNsr), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (xor:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, -1:{ *:[i32] }) - Complexity = 20
                    // Dst: (MVNsr:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift)
/* 50728*/        /*Scope*/ 25, /*->50754*/
/* 50729*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 50731*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #1 #2
/* 50734*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50737*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50740*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50743*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNs), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, -1:{ *:[i32] }) - Complexity = 18
                    // Dst: (t2MVNs:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 50754*/        /*Scope*/ 25, /*->50780*/
/* 50755*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50757*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #1 #2
/* 50760*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50763*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50766*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50769*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVNsi), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (xor:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, -1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVNsi:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift)
/* 50780*/        0, /*End of Scope*/
/* 50781*/      /*Scope*/ 59, /*->50841*/
/* 50782*/        OPC_RecordChild1, // #1 = $shift
/* 50783*/        OPC_CheckType, MVT::i32,
/* 50785*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50787*/        OPC_Scope, 25, /*->50814*/ // 2 children in Scope
/* 50789*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 50792*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50795*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50798*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50801*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::EORrsr), 0,
                        MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                    // Dst: (EORrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 50814*/        /*Scope*/ 25, /*->50840*/
/* 50815*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 50818*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50821*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50824*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50827*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::EORrsr), 0,
                        MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                    // Dst: (EORrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 50840*/        0, /*End of Scope*/
/* 50841*/      /*Scope*/ 43, /*->50885*/
/* 50842*/        OPC_MoveChild0,
/* 50843*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50846*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 50848*/        OPC_MoveParent,
/* 50849*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50860*/        OPC_CheckType, MVT::i32,
/* 50862*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 50864*/        OPC_EmitConvertToTarget, 0,
/* 50866*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50869*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50875*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNi), 0,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }) - Complexity = 13
                  // Dst: (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 50885*/      0, /*End of Scope*/
/* 50886*/    /*Scope*/ 44, /*->50931*/
/* 50887*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50898*/      OPC_RecordChild1, // #0 = $imm
/* 50899*/      OPC_MoveChild1,
/* 50900*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50903*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 50905*/      OPC_MoveParent,
/* 50906*/      OPC_CheckType, MVT::i32,
/* 50908*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 50910*/      OPC_EmitConvertToTarget, 0,
/* 50912*/      OPC_EmitInteger, MVT::i32, 14, 
/* 50915*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50918*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50921*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 13
                // Dst: (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 50931*/    /*Scope*/ 89|128,2/*345*/, /*->51278*/
/* 50933*/      OPC_RecordChild0, // #0 = $Rn
/* 50934*/      OPC_Scope, 113, /*->51049*/ // 3 children in Scope
/* 50936*/        OPC_RecordChild1, // #1 = $shift
/* 50937*/        OPC_CheckType, MVT::i32,
/* 50939*/        OPC_Scope, 26, /*->50967*/ // 4 children in Scope
/* 50941*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50943*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 50946*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50949*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50952*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50955*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::EORrsi), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                    // Dst: (EORrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 50967*/        /*Scope*/ 26, /*->50994*/
/* 50968*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 50970*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 50973*/          OPC_EmitInteger, MVT::i32, 14, 
/* 50976*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50979*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50982*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2EORrs), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                    // Dst: (t2EORrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 50994*/        /*Scope*/ 26, /*->51021*/
/* 50995*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 50997*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 51000*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51003*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51006*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51009*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::EORrsi), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (xor:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (EORrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 51021*/        /*Scope*/ 26, /*->51048*/
/* 51022*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 51024*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 51027*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51030*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51033*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51036*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2EORrs), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (xor:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, rGPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (t2EORrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 51048*/        0, /*End of Scope*/
/* 51049*/      /*Scope*/ 81, /*->51131*/
/* 51050*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51061*/        OPC_CheckType, MVT::i32,
/* 51063*/        OPC_Scope, 21, /*->51086*/ // 3 children in Scope
/* 51065*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 51067*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51070*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51073*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51076*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNr), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) - Complexity = 9
                    // Dst: (t2MVNr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 51086*/        /*Scope*/ 21, /*->51108*/
/* 51087*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 51089*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51092*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51095*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51098*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVNr), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVNr:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 51108*/        /*Scope*/ 21, /*->51130*/
/* 51109*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 51111*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 51114*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51117*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51120*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tMVN), 0,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (xor:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (tMVN:{ *:[i32] } tGPR:{ *:[i32] }:$Rn)
/* 51130*/        0, /*End of Scope*/
/* 51131*/      /*Scope*/ 16|128,1/*144*/, /*->51277*/
/* 51133*/        OPC_RecordChild1, // #1 = $imm
/* 51134*/        OPC_Scope, 66, /*->51202*/ // 2 children in Scope
/* 51136*/          OPC_MoveChild1,
/* 51137*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51140*/          OPC_Scope, 29, /*->51171*/ // 2 children in Scope
/* 51142*/            OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 51144*/            OPC_MoveParent,
/* 51145*/            OPC_CheckType, MVT::i32,
/* 51147*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 51149*/            OPC_EmitConvertToTarget, 1,
/* 51151*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51154*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51157*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51160*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::EORri), 0,
                          MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                      // Dst: (EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 51171*/          /*Scope*/ 29, /*->51201*/
/* 51172*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 51174*/            OPC_MoveParent,
/* 51175*/            OPC_CheckType, MVT::i32,
/* 51177*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 51179*/            OPC_EmitConvertToTarget, 1,
/* 51181*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51184*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51187*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51190*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2EORri), 0,
                          MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                      // Dst: (t2EORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 51201*/          0, /*End of Scope*/
/* 51202*/        /*Scope*/ 73, /*->51276*/
/* 51203*/          OPC_CheckType, MVT::i32,
/* 51205*/          OPC_Scope, 22, /*->51229*/ // 3 children in Scope
/* 51207*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 51209*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51212*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51215*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51218*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::EORrr), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (EORrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 51229*/          /*Scope*/ 22, /*->51252*/
/* 51230*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 51232*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 51235*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51238*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51241*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::tEOR), 0,
                          MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (xor:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (tEOR:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 51252*/          /*Scope*/ 22, /*->51275*/
/* 51253*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 51255*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51258*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51261*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51264*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2EORrr), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                      // Dst: (t2EORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 51275*/          0, /*End of Scope*/
/* 51276*/        0, /*End of Scope*/
/* 51277*/      0, /*End of Scope*/
/* 51278*/    /*Scope*/ 122|128,2/*378*/, /*->51658*/
/* 51280*/      OPC_MoveChild0,
/* 51281*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51284*/      OPC_MoveChild0,
/* 51285*/      OPC_SwitchOpcode /*2 cases */, 38|128,1/*166*/, TARGET_VAL(ARMISD::VSHRs),// ->51456
/* 51290*/        OPC_MoveChild0,
/* 51291*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51294*/        OPC_MoveChild0,
/* 51295*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51298*/        OPC_RecordChild0, // #0 = $opA
/* 51299*/        OPC_MoveParent,
/* 51300*/        OPC_MoveChild1,
/* 51301*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51304*/        OPC_RecordChild0, // #1 = $opB
/* 51305*/        OPC_MoveParent,
/* 51306*/        OPC_MoveParent,
/* 51307*/        OPC_CheckChild1Integer, 63, 
/* 51309*/        OPC_CheckType, MVT::v2i64,
/* 51311*/        OPC_MoveParent,
/* 51312*/        OPC_MoveParent,
/* 51313*/        OPC_MoveChild1,
/* 51314*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51317*/        OPC_MoveChild0,
/* 51318*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 51321*/        OPC_MoveChild0,
/* 51322*/        OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::SUB),// ->51389
/* 51326*/          OPC_MoveChild0,
/* 51327*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51330*/          OPC_CheckChild0Same, 0,
/* 51332*/          OPC_MoveParent,
/* 51333*/          OPC_MoveChild1,
/* 51334*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51337*/          OPC_CheckChild0Same, 1,
/* 51339*/          OPC_MoveParent,
/* 51340*/          OPC_MoveParent,
/* 51341*/          OPC_MoveChild1,
/* 51342*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRs),
/* 51345*/          OPC_MoveChild0,
/* 51346*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51349*/          OPC_MoveChild0,
/* 51350*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51353*/          OPC_CheckChild0Same, 0,
/* 51355*/          OPC_MoveParent,
/* 51356*/          OPC_MoveChild1,
/* 51357*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51360*/          OPC_CheckChild0Same, 1,
/* 51362*/          OPC_MoveParent,
/* 51363*/          OPC_MoveParent,
/* 51364*/          OPC_CheckChild1Integer, 63, 
/* 51366*/          OPC_MoveParent,
/* 51367*/          OPC_CheckType, MVT::v2i64,
/* 51369*/          OPC_MoveParent,
/* 51370*/          OPC_MoveParent,
/* 51371*/          OPC_CheckType, MVT::v4i32,
/* 51373*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51376*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51379*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] })), (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] })))) - Complexity = 55
                    // Dst: (VABDLuv2i64:{ *:[v4i32] } DPR:{ *:[v2i32] }:$opA, DPR:{ *:[v2i32] }:$opB)
/* 51389*/        /*SwitchOpcode*/ 63, TARGET_VAL(ARMISD::VSHRs),// ->51455
/* 51392*/          OPC_MoveChild0,
/* 51393*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51396*/          OPC_MoveChild0,
/* 51397*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51400*/          OPC_CheckChild0Same, 0,
/* 51402*/          OPC_MoveParent,
/* 51403*/          OPC_MoveChild1,
/* 51404*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51407*/          OPC_CheckChild0Same, 1,
/* 51409*/          OPC_MoveParent,
/* 51410*/          OPC_MoveParent,
/* 51411*/          OPC_CheckChild1Integer, 63, 
/* 51413*/          OPC_MoveParent,
/* 51414*/          OPC_MoveChild1,
/* 51415*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51418*/          OPC_MoveChild0,
/* 51419*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51422*/          OPC_CheckChild0Same, 0,
/* 51424*/          OPC_MoveParent,
/* 51425*/          OPC_MoveChild1,
/* 51426*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51429*/          OPC_CheckChild0Same, 1,
/* 51431*/          OPC_MoveParent,
/* 51432*/          OPC_MoveParent,
/* 51433*/          OPC_CheckType, MVT::v2i64,
/* 51435*/          OPC_MoveParent,
/* 51436*/          OPC_MoveParent,
/* 51437*/          OPC_CheckType, MVT::v4i32,
/* 51439*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51442*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51445*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] })), (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }), (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB))))) - Complexity = 55
                    // Dst: (VABDLuv2i64:{ *:[v4i32] } DPR:{ *:[v2i32] }:$opA, DPR:{ *:[v2i32] }:$opB)
/* 51455*/        0, // EndSwitchOpcode
/* 51456*/      /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(ISD::ADD),// ->51657
/* 51460*/        OPC_MoveChild0,
/* 51461*/        OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(ISD::SUB),// ->51559
/* 51465*/          OPC_MoveChild0,
/* 51466*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51469*/          OPC_RecordChild0, // #0 = $opA
/* 51470*/          OPC_MoveParent,
/* 51471*/          OPC_MoveChild1,
/* 51472*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51475*/          OPC_RecordChild0, // #1 = $opB
/* 51476*/          OPC_MoveParent,
/* 51477*/          OPC_MoveParent,
/* 51478*/          OPC_MoveChild1,
/* 51479*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRs),
/* 51482*/          OPC_MoveChild0,
/* 51483*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51486*/          OPC_MoveChild0,
/* 51487*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51490*/          OPC_CheckChild0Same, 0,
/* 51492*/          OPC_MoveParent,
/* 51493*/          OPC_MoveChild1,
/* 51494*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51497*/          OPC_CheckChild0Same, 1,
/* 51499*/          OPC_MoveParent,
/* 51500*/          OPC_MoveParent,
/* 51501*/          OPC_CheckChild1Integer, 63, 
/* 51503*/          OPC_MoveParent,
/* 51504*/          OPC_CheckType, MVT::v2i64,
/* 51506*/          OPC_MoveParent,
/* 51507*/          OPC_MoveParent,
/* 51508*/          OPC_MoveChild1,
/* 51509*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51512*/          OPC_MoveChild0,
/* 51513*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRs),
/* 51516*/          OPC_MoveChild0,
/* 51517*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51520*/          OPC_MoveChild0,
/* 51521*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51524*/          OPC_CheckChild0Same, 0,
/* 51526*/          OPC_MoveParent,
/* 51527*/          OPC_MoveChild1,
/* 51528*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51531*/          OPC_CheckChild0Same, 1,
/* 51533*/          OPC_MoveParent,
/* 51534*/          OPC_MoveParent,
/* 51535*/          OPC_CheckChild1Integer, 63, 
/* 51537*/          OPC_CheckType, MVT::v2i64,
/* 51539*/          OPC_MoveParent,
/* 51540*/          OPC_MoveParent,
/* 51541*/          OPC_CheckType, MVT::v4i32,
/* 51543*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51546*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51549*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }))), (bitconvert:{ *:[v4i32] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }))) - Complexity = 55
                    // Dst: (VABDLuv2i64:{ *:[v4i32] } DPR:{ *:[v2i32] }:$opA, DPR:{ *:[v2i32] }:$opB)
/* 51559*/        /*SwitchOpcode*/ 94, TARGET_VAL(ARMISD::VSHRs),// ->51656
/* 51562*/          OPC_MoveChild0,
/* 51563*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51566*/          OPC_MoveChild0,
/* 51567*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51570*/          OPC_RecordChild0, // #0 = $opA
/* 51571*/          OPC_MoveParent,
/* 51572*/          OPC_MoveChild1,
/* 51573*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51576*/          OPC_RecordChild0, // #1 = $opB
/* 51577*/          OPC_MoveParent,
/* 51578*/          OPC_MoveParent,
/* 51579*/          OPC_CheckChild1Integer, 63, 
/* 51581*/          OPC_MoveParent,
/* 51582*/          OPC_MoveChild1,
/* 51583*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51586*/          OPC_MoveChild0,
/* 51587*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51590*/          OPC_CheckChild0Same, 0,
/* 51592*/          OPC_MoveParent,
/* 51593*/          OPC_MoveChild1,
/* 51594*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51597*/          OPC_CheckChild0Same, 1,
/* 51599*/          OPC_MoveParent,
/* 51600*/          OPC_MoveParent,
/* 51601*/          OPC_CheckType, MVT::v2i64,
/* 51603*/          OPC_MoveParent,
/* 51604*/          OPC_MoveParent,
/* 51605*/          OPC_MoveChild1,
/* 51606*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51609*/          OPC_MoveChild0,
/* 51610*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRs),
/* 51613*/          OPC_MoveChild0,
/* 51614*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51617*/          OPC_MoveChild0,
/* 51618*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51621*/          OPC_CheckChild0Same, 0,
/* 51623*/          OPC_MoveParent,
/* 51624*/          OPC_MoveChild1,
/* 51625*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51628*/          OPC_CheckChild0Same, 1,
/* 51630*/          OPC_MoveParent,
/* 51631*/          OPC_MoveParent,
/* 51632*/          OPC_CheckChild1Integer, 63, 
/* 51634*/          OPC_CheckType, MVT::v2i64,
/* 51636*/          OPC_MoveParent,
/* 51637*/          OPC_MoveParent,
/* 51638*/          OPC_CheckType, MVT::v4i32,
/* 51640*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51643*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51646*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }), (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)))), (bitconvert:{ *:[v4i32] } (NEONvshrs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }))) - Complexity = 55
                    // Dst: (VABDLuv2i64:{ *:[v4i32] } DPR:{ *:[v2i32] }:$opA, DPR:{ *:[v2i32] }:$opB)
/* 51656*/        0, // EndSwitchOpcode
/* 51657*/      0, // EndSwitchOpcode
/* 51658*/    /*Scope*/ 102, /*->51761*/
/* 51659*/      OPC_RecordChild0, // #0 = $Vm
/* 51660*/      OPC_MoveChild1,
/* 51661*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51664*/      OPC_MoveChild0,
/* 51665*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 51668*/      OPC_MoveChild0,
/* 51669*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51672*/      OPC_MoveParent,
/* 51673*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 51675*/      OPC_SwitchType /*2 cases */, 40, MVT::v8i8,// ->51718
/* 51678*/        OPC_MoveParent,
/* 51679*/        OPC_MoveParent,
/* 51680*/        OPC_CheckType, MVT::v2i32,
/* 51682*/        OPC_Scope, 17, /*->51701*/ // 2 children in Scope
/* 51684*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51686*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51689*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51692*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 51701*/        /*Scope*/ 15, /*->51717*/
/* 51702*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51705*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51708*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src, (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src)
/* 51717*/        0, /*End of Scope*/
/* 51718*/      /*SwitchType*/ 40, MVT::v16i8,// ->51760
/* 51720*/        OPC_MoveParent,
/* 51721*/        OPC_MoveParent,
/* 51722*/        OPC_CheckType, MVT::v4i32,
/* 51724*/        OPC_Scope, 17, /*->51743*/ // 2 children in Scope
/* 51726*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51728*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51731*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51734*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 51743*/        /*Scope*/ 15, /*->51759*/
/* 51744*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51747*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51750*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src)
/* 51759*/        0, /*End of Scope*/
/* 51760*/      0, // EndSwitchType
/* 51761*/    /*Scope*/ 103, /*->51865*/
/* 51762*/      OPC_MoveChild0,
/* 51763*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51766*/      OPC_MoveChild0,
/* 51767*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 51770*/      OPC_MoveChild0,
/* 51771*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51774*/      OPC_MoveParent,
/* 51775*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 51777*/      OPC_SwitchType /*2 cases */, 41, MVT::v8i8,// ->51821
/* 51780*/        OPC_MoveParent,
/* 51781*/        OPC_MoveParent,
/* 51782*/        OPC_RecordChild1, // #0 = $Vm
/* 51783*/        OPC_CheckType, MVT::v2i32,
/* 51785*/        OPC_Scope, 17, /*->51804*/ // 2 children in Scope
/* 51787*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51789*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51792*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51795*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm) - Complexity = 13
                    // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 51804*/        /*Scope*/ 15, /*->51820*/
/* 51805*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51808*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51811*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$src) - Complexity = 13
                    // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src)
/* 51820*/        0, /*End of Scope*/
/* 51821*/      /*SwitchType*/ 41, MVT::v16i8,// ->51864
/* 51823*/        OPC_MoveParent,
/* 51824*/        OPC_MoveParent,
/* 51825*/        OPC_RecordChild1, // #0 = $Vm
/* 51826*/        OPC_CheckType, MVT::v4i32,
/* 51828*/        OPC_Scope, 17, /*->51847*/ // 2 children in Scope
/* 51830*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51832*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51835*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51838*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm) - Complexity = 13
                    // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 51847*/        /*Scope*/ 15, /*->51863*/
/* 51848*/          OPC_EmitInteger, MVT::i32, 14, 
/* 51851*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51854*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$src) - Complexity = 13
                    // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src)
/* 51863*/        0, /*End of Scope*/
/* 51864*/      0, // EndSwitchType
/* 51865*/    /*Scope*/ 44, /*->51910*/
/* 51866*/      OPC_RecordChild0, // #0 = $Vn
/* 51867*/      OPC_RecordChild1, // #1 = $Vm
/* 51868*/      OPC_SwitchType /*2 cases */, 18, MVT::v2i32,// ->51889
/* 51871*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51873*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51876*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51879*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VEORd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VEORd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 51889*/      /*SwitchType*/ 18, MVT::v4i32,// ->51909
/* 51891*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51893*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51896*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51899*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VEORq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VEORq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51909*/      0, // EndSwitchType
/* 51910*/    0, /*End of Scope*/
/* 51911*/  /*SwitchOpcode*/ 92|128,8/*1116*/, TARGET_VAL(ISD::MUL),// ->53031
/* 51915*/    OPC_Scope, 46|128,1/*174*/, /*->52092*/ // 10 children in Scope
/* 51918*/      OPC_MoveChild0,
/* 51919*/      OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::SRA),// ->52032
/* 51923*/        OPC_RecordChild0, // #0 = $Rn
/* 51924*/        OPC_CheckChild1Integer, 16, 
/* 51926*/        OPC_CheckChild1Type, MVT::i32,
/* 51928*/        OPC_MoveParent,
/* 51929*/        OPC_MoveChild1,
/* 51930*/        OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::SRA),// ->51982
/* 51934*/          OPC_RecordChild0, // #1 = $Rm
/* 51935*/          OPC_CheckChild1Integer, 16, 
/* 51937*/          OPC_CheckChild1Type, MVT::i32,
/* 51939*/          OPC_MoveParent,
/* 51940*/          OPC_CheckType, MVT::i32,
/* 51942*/          OPC_Scope, 18, /*->51962*/ // 2 children in Scope
/* 51944*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 51946*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51949*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51952*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTT), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) - Complexity = 19
                      // Dst: (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 51962*/          /*Scope*/ 18, /*->51981*/
/* 51963*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 51965*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51968*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51971*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTT), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) - Complexity = 19
                      // Dst: (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 51981*/          0, /*End of Scope*/
/* 51982*/        /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->52031
/* 51985*/          OPC_RecordChild0, // #1 = $Rm
/* 51986*/          OPC_MoveChild1,
/* 51987*/          OPC_CheckValueType, MVT::i16,
/* 51989*/          OPC_MoveParent,
/* 51990*/          OPC_MoveParent,
/* 51991*/          OPC_Scope, 18, /*->52011*/ // 2 children in Scope
/* 51993*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 51995*/            OPC_EmitInteger, MVT::i32, 14, 
/* 51998*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52001*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTB), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 14
                      // Dst: (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 52011*/          /*Scope*/ 18, /*->52030*/
/* 52012*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52014*/            OPC_EmitInteger, MVT::i32, 14, 
/* 52017*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52020*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTB), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 14
                      // Dst: (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52030*/          0, /*End of Scope*/
/* 52031*/        0, // EndSwitchOpcode
/* 52032*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->52091
/* 52035*/        OPC_RecordChild0, // #0 = $Rn
/* 52036*/        OPC_MoveChild1,
/* 52037*/        OPC_CheckValueType, MVT::i16,
/* 52039*/        OPC_MoveParent,
/* 52040*/        OPC_MoveParent,
/* 52041*/        OPC_MoveChild1,
/* 52042*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 52045*/        OPC_RecordChild0, // #1 = $Rm
/* 52046*/        OPC_CheckChild1Integer, 16, 
/* 52048*/        OPC_CheckChild1Type, MVT::i32,
/* 52050*/        OPC_MoveParent,
/* 52051*/        OPC_Scope, 18, /*->52071*/ // 2 children in Scope
/* 52053*/          OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 52055*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52058*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52061*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBT), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) - Complexity = 14
                    // Dst: (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 52071*/        /*Scope*/ 18, /*->52090*/
/* 52072*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52074*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52077*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52080*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBT), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) - Complexity = 14
                    // Dst: (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52090*/        0, /*End of Scope*/
/* 52091*/      0, // EndSwitchOpcode
/* 52092*/    /*Scope*/ 35, /*->52128*/
/* 52093*/      OPC_RecordChild0, // #0 = $a
/* 52094*/      OPC_MoveChild0,
/* 52095*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52097*/      OPC_MoveParent,
/* 52098*/      OPC_MoveChild1,
/* 52099*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 52102*/      OPC_RecordChild0, // #1 = $b
/* 52103*/      OPC_CheckChild1Integer, 16, 
/* 52105*/      OPC_CheckChild1Type, MVT::i32,
/* 52107*/      OPC_MoveParent,
/* 52108*/      OPC_CheckType, MVT::i32,
/* 52110*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 52112*/      OPC_EmitInteger, MVT::i32, 14, 
/* 52115*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52118*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBT), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, (sra:{ *:[i32] } GPR:{ *:[i32] }:$b, 16:{ *:[i32] })) - Complexity = 12
                // Dst: (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 52128*/    /*Scope*/ 35, /*->52164*/
/* 52129*/      OPC_MoveChild0,
/* 52130*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 52133*/      OPC_RecordChild0, // #0 = $a
/* 52134*/      OPC_CheckChild1Integer, 16, 
/* 52136*/      OPC_CheckChild1Type, MVT::i32,
/* 52138*/      OPC_MoveParent,
/* 52139*/      OPC_RecordChild1, // #1 = $b
/* 52140*/      OPC_MoveChild1,
/* 52141*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52143*/      OPC_MoveParent,
/* 52144*/      OPC_CheckType, MVT::i32,
/* 52146*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 52148*/      OPC_EmitInteger, MVT::i32, 14, 
/* 52151*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52154*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$a, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$b) - Complexity = 12
                // Dst: (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 52164*/    /*Scope*/ 35, /*->52200*/
/* 52165*/      OPC_RecordChild0, // #0 = $Rn
/* 52166*/      OPC_MoveChild0,
/* 52167*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52169*/      OPC_MoveParent,
/* 52170*/      OPC_MoveChild1,
/* 52171*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 52174*/      OPC_RecordChild0, // #1 = $Rm
/* 52175*/      OPC_CheckChild1Integer, 16, 
/* 52177*/      OPC_CheckChild1Type, MVT::i32,
/* 52179*/      OPC_MoveParent,
/* 52180*/      OPC_CheckType, MVT::i32,
/* 52182*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52184*/      OPC_EmitInteger, MVT::i32, 14, 
/* 52187*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52190*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBT), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn, (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) - Complexity = 12
                // Dst: (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52200*/    /*Scope*/ 96, /*->52297*/
/* 52201*/      OPC_MoveChild0,
/* 52202*/      OPC_SwitchOpcode /*2 cases */, 31, TARGET_VAL(ISD::SRA),// ->52237
/* 52206*/        OPC_RecordChild0, // #0 = $Rn
/* 52207*/        OPC_CheckChild1Integer, 16, 
/* 52209*/        OPC_CheckChild1Type, MVT::i32,
/* 52211*/        OPC_MoveParent,
/* 52212*/        OPC_RecordChild1, // #1 = $Rm
/* 52213*/        OPC_MoveChild1,
/* 52214*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52216*/        OPC_MoveParent,
/* 52217*/        OPC_CheckType, MVT::i32,
/* 52219*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52221*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52227*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rm) - Complexity = 12
                  // Dst: (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52237*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->52296
/* 52240*/        OPC_RecordChild0, // #0 = $Rn
/* 52241*/        OPC_MoveChild1,
/* 52242*/        OPC_CheckValueType, MVT::i16,
/* 52244*/        OPC_MoveParent,
/* 52245*/        OPC_MoveParent,
/* 52246*/        OPC_MoveChild1,
/* 52247*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 52250*/        OPC_RecordChild0, // #1 = $Rm
/* 52251*/        OPC_MoveChild1,
/* 52252*/        OPC_CheckValueType, MVT::i16,
/* 52254*/        OPC_MoveParent,
/* 52255*/        OPC_MoveParent,
/* 52256*/        OPC_Scope, 18, /*->52276*/ // 2 children in Scope
/* 52258*/          OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 52260*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52263*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52266*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 9
                    // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 52276*/        /*Scope*/ 18, /*->52295*/
/* 52277*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52279*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52282*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52285*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 9
                    // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52295*/        0, /*End of Scope*/
/* 52296*/      0, // EndSwitchOpcode
/* 52297*/    /*Scope*/ 17|128,2/*273*/, /*->52572*/
/* 52299*/      OPC_RecordChild0, // #0 = $a
/* 52300*/      OPC_Scope, 51, /*->52353*/ // 3 children in Scope
/* 52302*/        OPC_MoveChild0,
/* 52303*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52305*/        OPC_MoveParent,
/* 52306*/        OPC_RecordChild1, // #1 = $b
/* 52307*/        OPC_MoveChild1,
/* 52308*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 52310*/        OPC_MoveParent,
/* 52311*/        OPC_CheckType, MVT::i32,
/* 52313*/        OPC_Scope, 18, /*->52333*/ // 2 children in Scope
/* 52315*/          OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 52317*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52320*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52323*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$b) - Complexity = 5
                    // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 52333*/        /*Scope*/ 18, /*->52352*/
/* 52334*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 52336*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52339*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52342*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rm, GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn) - Complexity = 5
                    // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 52352*/        0, /*End of Scope*/
/* 52353*/      /*Scope*/ 93, /*->52447*/
/* 52354*/        OPC_RecordChild1, // #1 = $Rm
/* 52355*/        OPC_CheckType, MVT::i32,
/* 52357*/        OPC_Scope, 22, /*->52381*/ // 4 children in Scope
/* 52359*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 52361*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52364*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52367*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52370*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MUL), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (MUL:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 52381*/        /*Scope*/ 22, /*->52404*/
/* 52382*/          OPC_CheckPatternPredicate, 52, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps())
/* 52384*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52387*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52390*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52393*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MULv5), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (MULv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 52404*/        /*Scope*/ 22, /*->52427*/
/* 52405*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 52407*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 52410*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52413*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52416*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tMUL), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (mul:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tMUL:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 52427*/        /*Scope*/ 18, /*->52446*/
/* 52428*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 52430*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52433*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52436*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MUL), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2MUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 52446*/        0, /*End of Scope*/
/* 52447*/      /*Scope*/ 123, /*->52571*/
/* 52448*/        OPC_MoveChild1,
/* 52449*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 52452*/        OPC_RecordChild0, // #1 = $Vm
/* 52453*/        OPC_Scope, 57, /*->52512*/ // 2 children in Scope
/* 52455*/          OPC_CheckChild0Type, MVT::v4i16,
/* 52457*/          OPC_RecordChild1, // #2 = $lane
/* 52458*/          OPC_MoveChild1,
/* 52459*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52462*/          OPC_MoveParent,
/* 52463*/          OPC_MoveParent,
/* 52464*/          OPC_SwitchType /*2 cases */, 21, MVT::v4i16,// ->52488
/* 52467*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52469*/            OPC_EmitConvertToTarget, 2,
/* 52471*/            OPC_EmitInteger, MVT::i32, 14, 
/* 52474*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52477*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52488*/          /*SwitchType*/ 21, MVT::v8i16,// ->52511
/* 52490*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52492*/            OPC_EmitConvertToTarget, 2,
/* 52494*/            OPC_EmitInteger, MVT::i32, 14, 
/* 52497*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52500*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52511*/          0, // EndSwitchType
/* 52512*/        /*Scope*/ 57, /*->52570*/
/* 52513*/          OPC_CheckChild0Type, MVT::v2i32,
/* 52515*/          OPC_RecordChild1, // #2 = $lane
/* 52516*/          OPC_MoveChild1,
/* 52517*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52520*/          OPC_MoveParent,
/* 52521*/          OPC_MoveParent,
/* 52522*/          OPC_SwitchType /*2 cases */, 21, MVT::v2i32,// ->52546
/* 52525*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52527*/            OPC_EmitConvertToTarget, 2,
/* 52529*/            OPC_EmitInteger, MVT::i32, 14, 
/* 52532*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52535*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52546*/          /*SwitchType*/ 21, MVT::v4i32,// ->52569
/* 52548*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52550*/            OPC_EmitConvertToTarget, 2,
/* 52552*/            OPC_EmitInteger, MVT::i32, 14, 
/* 52555*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52558*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52569*/          0, // EndSwitchType
/* 52570*/        0, /*End of Scope*/
/* 52571*/      0, /*End of Scope*/
/* 52572*/    /*Scope*/ 125, /*->52698*/
/* 52573*/      OPC_MoveChild0,
/* 52574*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 52577*/      OPC_RecordChild0, // #0 = $Vm
/* 52578*/      OPC_Scope, 58, /*->52638*/ // 2 children in Scope
/* 52580*/        OPC_CheckChild0Type, MVT::v4i16,
/* 52582*/        OPC_RecordChild1, // #1 = $lane
/* 52583*/        OPC_MoveChild1,
/* 52584*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52587*/        OPC_MoveParent,
/* 52588*/        OPC_MoveParent,
/* 52589*/        OPC_RecordChild1, // #2 = $Vn
/* 52590*/        OPC_SwitchType /*2 cases */, 21, MVT::v4i16,// ->52614
/* 52593*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52595*/          OPC_EmitConvertToTarget, 1,
/* 52597*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52600*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52603*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v4i16] } (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn) - Complexity = 9
                    // Dst: (VMULslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52614*/        /*SwitchType*/ 21, MVT::v8i16,// ->52637
/* 52616*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52618*/          OPC_EmitConvertToTarget, 1,
/* 52620*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52623*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52626*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn) - Complexity = 9
                    // Dst: (VMULslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52637*/        0, // EndSwitchType
/* 52638*/      /*Scope*/ 58, /*->52697*/
/* 52639*/        OPC_CheckChild0Type, MVT::v2i32,
/* 52641*/        OPC_RecordChild1, // #1 = $lane
/* 52642*/        OPC_MoveChild1,
/* 52643*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52646*/        OPC_MoveParent,
/* 52647*/        OPC_MoveParent,
/* 52648*/        OPC_RecordChild1, // #2 = $Vn
/* 52649*/        OPC_SwitchType /*2 cases */, 21, MVT::v2i32,// ->52673
/* 52652*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52654*/          OPC_EmitConvertToTarget, 1,
/* 52656*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52659*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52662*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v2i32] } (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn) - Complexity = 9
                    // Dst: (VMULslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52673*/        /*SwitchType*/ 21, MVT::v4i32,// ->52696
/* 52675*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52677*/          OPC_EmitConvertToTarget, 1,
/* 52679*/          OPC_EmitInteger, MVT::i32, 14, 
/* 52682*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52685*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn) - Complexity = 9
                    // Dst: (VMULslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 52696*/        0, // EndSwitchType
/* 52697*/      0, /*End of Scope*/
/* 52698*/    /*Scope*/ 102, /*->52801*/
/* 52699*/      OPC_RecordChild0, // #0 = $src1
/* 52700*/      OPC_MoveChild1,
/* 52701*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 52704*/      OPC_RecordChild0, // #1 = $src2
/* 52705*/      OPC_Scope, 46, /*->52753*/ // 2 children in Scope
/* 52707*/        OPC_CheckChild0Type, MVT::v8i16,
/* 52709*/        OPC_RecordChild1, // #2 = $lane
/* 52710*/        OPC_MoveChild1,
/* 52711*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52714*/        OPC_MoveParent,
/* 52715*/        OPC_MoveParent,
/* 52716*/        OPC_CheckType, MVT::v8i16,
/* 52718*/        OPC_EmitConvertToTarget, 2,
/* 52720*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 52723*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 52731*/        OPC_EmitConvertToTarget, 2,
/* 52733*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 52736*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52739*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52742*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 52753*/      /*Scope*/ 46, /*->52800*/
/* 52754*/        OPC_CheckChild0Type, MVT::v4i32,
/* 52756*/        OPC_RecordChild1, // #2 = $lane
/* 52757*/        OPC_MoveChild1,
/* 52758*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52761*/        OPC_MoveParent,
/* 52762*/        OPC_MoveParent,
/* 52763*/        OPC_CheckType, MVT::v4i32,
/* 52765*/        OPC_EmitConvertToTarget, 2,
/* 52767*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 52770*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 52778*/        OPC_EmitConvertToTarget, 2,
/* 52780*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 52783*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52786*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52789*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 52800*/      0, /*End of Scope*/
/* 52801*/    /*Scope*/ 103, /*->52905*/
/* 52802*/      OPC_MoveChild0,
/* 52803*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 52806*/      OPC_RecordChild0, // #0 = $src2
/* 52807*/      OPC_Scope, 47, /*->52856*/ // 2 children in Scope
/* 52809*/        OPC_CheckChild0Type, MVT::v8i16,
/* 52811*/        OPC_RecordChild1, // #1 = $lane
/* 52812*/        OPC_MoveChild1,
/* 52813*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52816*/        OPC_MoveParent,
/* 52817*/        OPC_MoveParent,
/* 52818*/        OPC_RecordChild1, // #2 = $src1
/* 52819*/        OPC_CheckType, MVT::v8i16,
/* 52821*/        OPC_EmitConvertToTarget, 1,
/* 52823*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 52826*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 52834*/        OPC_EmitConvertToTarget, 1,
/* 52836*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 52839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                  // Dst: (VMULslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 52856*/      /*Scope*/ 47, /*->52904*/
/* 52857*/        OPC_CheckChild0Type, MVT::v4i32,
/* 52859*/        OPC_RecordChild1, // #1 = $lane
/* 52860*/        OPC_MoveChild1,
/* 52861*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52864*/        OPC_MoveParent,
/* 52865*/        OPC_MoveParent,
/* 52866*/        OPC_RecordChild1, // #2 = $src1
/* 52867*/        OPC_CheckType, MVT::v4i32,
/* 52869*/        OPC_EmitConvertToTarget, 1,
/* 52871*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 52874*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 52882*/        OPC_EmitConvertToTarget, 1,
/* 52884*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 52887*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52890*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52893*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                  // Dst: (VMULslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 52904*/      0, /*End of Scope*/
/* 52905*/    /*Scope*/ 124, /*->53030*/
/* 52906*/      OPC_RecordChild0, // #0 = $Vn
/* 52907*/      OPC_RecordChild1, // #1 = $Vm
/* 52908*/      OPC_SwitchType /*6 cases */, 18, MVT::v8i8,// ->52929
/* 52911*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52913*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52916*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52919*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VMULv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 52929*/      /*SwitchType*/ 18, MVT::v4i16,// ->52949
/* 52931*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52939*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VMULv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 52949*/      /*SwitchType*/ 18, MVT::v2i32,// ->52969
/* 52951*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52953*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52956*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52959*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VMULv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 52969*/      /*SwitchType*/ 18, MVT::v16i8,// ->52989
/* 52971*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52973*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52976*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52979*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VMULv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 52989*/      /*SwitchType*/ 18, MVT::v8i16,// ->53009
/* 52991*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52993*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52996*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52999*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VMULv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 53009*/      /*SwitchType*/ 18, MVT::v4i32,// ->53029
/* 53011*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53013*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53016*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53019*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VMULv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 53029*/      0, // EndSwitchType
/* 53030*/    0, /*End of Scope*/
/* 53031*/  /*SwitchOpcode*/ 25|128,5/*665*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->53700
/* 53035*/    OPC_RecordMemRef,
/* 53036*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/* 53037*/    OPC_RecordChild1, // #1 = $addr
/* 53038*/    OPC_CheckChild1Type, MVT::i32,
/* 53040*/    OPC_CheckType, MVT::i32,
/* 53042*/    OPC_Scope, 25, /*->53069*/ // 20 children in Scope
/* 53044*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53046*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_8
/* 53048*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53050*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53053*/      OPC_EmitMergeInputChains1_0,
/* 53054*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53057*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53060*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAB), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_8>><<P:Predicate_atomic_load_acquire_8>> - Complexity = 18
                // Dst: (LDAB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53069*/    /*Scope*/ 25, /*->53095*/
/* 53070*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53072*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_16
/* 53074*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53076*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53079*/      OPC_EmitMergeInputChains1_0,
/* 53080*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53083*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53086*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAH), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_16>><<P:Predicate_atomic_load_acquire_16>> - Complexity = 18
                // Dst: (LDAH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53095*/    /*Scope*/ 25, /*->53121*/
/* 53096*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53098*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_32
/* 53100*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53102*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53105*/      OPC_EmitMergeInputChains1_0,
/* 53106*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53109*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53112*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDA), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_32>><<P:Predicate_atomic_load_acquire_32>> - Complexity = 18
                // Dst: (LDA:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53121*/    /*Scope*/ 25, /*->53147*/
/* 53122*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53124*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_8
/* 53126*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53128*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53131*/      OPC_EmitMergeInputChains1_0,
/* 53132*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53135*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53138*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAB), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_8>><<P:Predicate_atomic_load_acquire_8>> - Complexity = 18
                // Dst: (t2LDAB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53147*/    /*Scope*/ 25, /*->53173*/
/* 53148*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53150*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_16
/* 53152*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53154*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53157*/      OPC_EmitMergeInputChains1_0,
/* 53158*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53161*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53164*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAH), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_16>><<P:Predicate_atomic_load_acquire_16>> - Complexity = 18
                // Dst: (t2LDAH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53173*/    /*Scope*/ 25, /*->53199*/
/* 53174*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53176*/      OPC_CheckPredicate, 74, // Predicate_atomic_load_acquire_32
/* 53178*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53180*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 53183*/      OPC_EmitMergeInputChains1_0,
/* 53184*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53187*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53190*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDA), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (atomic_load:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_32>><<P:Predicate_atomic_load_acquire_32>> - Complexity = 18
                // Dst: (t2LDA:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 53199*/    /*Scope*/ 25, /*->53225*/
/* 53200*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53202*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53204*/      OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$src #2 #3 #4
/* 53207*/      OPC_EmitMergeInputChains1_0,
/* 53208*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53211*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53214*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 16
                // Dst: (LDRBrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$src)
/* 53225*/    /*Scope*/ 25, /*->53251*/
/* 53226*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53228*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53230*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$src #2 #3 #4
/* 53233*/      OPC_EmitMergeInputChains1_0,
/* 53234*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53237*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53240*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } addrmode3:{ *:[i32] }:$src)<<P:Predicate_atomic_load_16>> - Complexity = 16
                // Dst: (LDRH:{ *:[i32] } addrmode3:{ *:[i32] }:$src)
/* 53251*/    /*Scope*/ 25, /*->53277*/
/* 53252*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53254*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53256*/      OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$src #2 #3 #4
/* 53259*/      OPC_EmitMergeInputChains1_0,
/* 53260*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53263*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53266*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRrs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 16
                // Dst: (LDRrs:{ *:[i32] } ldst_so_reg:{ *:[i32] }:$src)
/* 53277*/    /*Scope*/ 25, /*->53303*/
/* 53278*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53280*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53282*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 53285*/      OPC_EmitMergeInputChains1_0,
/* 53286*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53289*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53292*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_8>> - Complexity = 16
                // Dst: (t2LDRBs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 53303*/    /*Scope*/ 25, /*->53329*/
/* 53304*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53306*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53308*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 53311*/      OPC_EmitMergeInputChains1_0,
/* 53312*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53315*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53318*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_16>> - Complexity = 16
                // Dst: (t2LDRHs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 53329*/    /*Scope*/ 25, /*->53355*/
/* 53330*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53332*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53334*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 53337*/      OPC_EmitMergeInputChains1_0,
/* 53338*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53341*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53344*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_load:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_32>> - Complexity = 16
                // Dst: (t2LDRs:{ *:[i32] } t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 53355*/    /*Scope*/ 24, /*->53380*/
/* 53356*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53358*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53360*/      OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$src #2 #3
/* 53363*/      OPC_EmitMergeInputChains1_0,
/* 53364*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53367*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53370*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_load:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 13
                // Dst: (LDRBi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$src)
/* 53380*/    /*Scope*/ 24, /*->53405*/
/* 53381*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53383*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53385*/      OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$src #2 #3
/* 53388*/      OPC_EmitMergeInputChains1_0,
/* 53389*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53392*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53395*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_load:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 13
                // Dst: (LDRi12:{ *:[i32] } addrmode_imm12:{ *:[i32] }:$src)
/* 53405*/    /*Scope*/ 48, /*->53454*/
/* 53406*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53408*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 53410*/      OPC_Scope, 20, /*->53432*/ // 2 children in Scope
/* 53412*/        OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$src #2 #3
/* 53415*/        OPC_EmitMergeInputChains1_0,
/* 53416*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53419*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53422*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (tLDRBi:{ *:[i32] } t_addrmode_is1:{ *:[i32] }:$src)
/* 53432*/      /*Scope*/ 20, /*->53453*/
/* 53433*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 53436*/        OPC_EmitMergeInputChains1_0,
/* 53437*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53440*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53443*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (tLDRBr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)
/* 53453*/      0, /*End of Scope*/
/* 53454*/    /*Scope*/ 48, /*->53503*/
/* 53455*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53457*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 53459*/      OPC_Scope, 20, /*->53481*/ // 2 children in Scope
/* 53461*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$src #2 #3
/* 53464*/        OPC_EmitMergeInputChains1_0,
/* 53465*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53468*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53471*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$src)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (tLDRHi:{ *:[i32] } t_addrmode_is2:{ *:[i32] }:$src)
/* 53481*/      /*Scope*/ 20, /*->53502*/
/* 53482*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 53485*/        OPC_EmitMergeInputChains1_0,
/* 53486*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53489*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53492*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (tLDRHr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)
/* 53502*/      0, /*End of Scope*/
/* 53503*/    /*Scope*/ 48, /*->53552*/
/* 53504*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53506*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 53508*/      OPC_Scope, 20, /*->53530*/ // 2 children in Scope
/* 53510*/        OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectThumbAddrModeImm5S4:$src #2 #3
/* 53513*/        OPC_EmitMergeInputChains1_0,
/* 53514*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53517*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53520*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_is4:{ *:[i32] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (tLDRi:{ *:[i32] } t_addrmode_is4:{ *:[i32] }:$src)
/* 53530*/      /*Scope*/ 20, /*->53551*/
/* 53531*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 53534*/        OPC_EmitMergeInputChains1_0,
/* 53535*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53538*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53541*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (tLDRr:{ *:[i32] } t_addrmode_rr:{ *:[i32] }:$src)
/* 53551*/      0, /*End of Scope*/
/* 53552*/    /*Scope*/ 48, /*->53601*/
/* 53553*/      OPC_CheckPredicate, 73, // Predicate_atomic_load_8
/* 53555*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53557*/      OPC_Scope, 20, /*->53579*/ // 2 children in Scope
/* 53559*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 53562*/        OPC_EmitMergeInputChains1_0,
/* 53563*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53566*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53569*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (t2LDRBi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 53579*/      /*Scope*/ 20, /*->53600*/
/* 53580*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 53583*/        OPC_EmitMergeInputChains1_0,
/* 53584*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53587*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53590*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (t2LDRBi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 53600*/      0, /*End of Scope*/
/* 53601*/    /*Scope*/ 48, /*->53650*/
/* 53602*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_16
/* 53604*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53606*/      OPC_Scope, 20, /*->53628*/ // 2 children in Scope
/* 53608*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 53611*/        OPC_EmitMergeInputChains1_0,
/* 53612*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53615*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53618*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (t2LDRHi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 53628*/      /*Scope*/ 20, /*->53649*/
/* 53629*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 53632*/        OPC_EmitMergeInputChains1_0,
/* 53633*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53636*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53639*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (t2LDRHi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 53649*/      0, /*End of Scope*/
/* 53650*/    /*Scope*/ 48, /*->53699*/
/* 53651*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 53653*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53655*/      OPC_Scope, 20, /*->53677*/ // 2 children in Scope
/* 53657*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 53660*/        OPC_EmitMergeInputChains1_0,
/* 53661*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53664*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53667*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (t2LDRi12:{ *:[i32] } t2addrmode_imm12:{ *:[i32] }:$addr)
/* 53677*/      /*Scope*/ 20, /*->53698*/
/* 53678*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 53681*/        OPC_EmitMergeInputChains1_0,
/* 53682*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53685*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53688*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (t2LDRi8:{ *:[i32] } t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 53698*/      0, /*End of Scope*/
/* 53699*/    0, /*End of Scope*/
/* 53700*/  /*SwitchOpcode*/ 26|128,5/*666*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->54370
/* 53704*/    OPC_RecordMemRef,
/* 53705*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 53706*/    OPC_RecordChild1, // #1 = $addr
/* 53707*/    OPC_CheckChild1Type, MVT::i32,
/* 53709*/    OPC_RecordChild2, // #2 = $val
/* 53710*/    OPC_CheckChild2Type, MVT::i32,
/* 53712*/    OPC_Scope, 25, /*->53739*/ // 20 children in Scope
/* 53714*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 53716*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_8
/* 53718*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53720*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53723*/      OPC_EmitMergeInputChains1_0,
/* 53724*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53727*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53730*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STLB), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_atomic_store_release_8>> - Complexity = 18
                // Dst: (STLB GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53739*/    /*Scope*/ 25, /*->53765*/
/* 53740*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 53742*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_16
/* 53744*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53746*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53749*/      OPC_EmitMergeInputChains1_0,
/* 53750*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53753*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53756*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STLH), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_atomic_store_release_16>> - Complexity = 18
                // Dst: (STLH GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53765*/    /*Scope*/ 25, /*->53791*/
/* 53766*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 53768*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_32
/* 53770*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53772*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53775*/      OPC_EmitMergeInputChains1_0,
/* 53776*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53779*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53782*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STL), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_atomic_store_release_32>> - Complexity = 18
                // Dst: (STL GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53791*/    /*Scope*/ 25, /*->53817*/
/* 53792*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 53794*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_8
/* 53796*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53798*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53801*/      OPC_EmitMergeInputChains1_0,
/* 53802*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53805*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53808*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STLB), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_atomic_store_release_8>> - Complexity = 18
                // Dst: (t2STLB GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53817*/    /*Scope*/ 25, /*->53843*/
/* 53818*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 53820*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_16
/* 53822*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53824*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53827*/      OPC_EmitMergeInputChains1_0,
/* 53828*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53831*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53834*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STLH), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_atomic_store_release_16>> - Complexity = 18
                // Dst: (t2STLH GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53843*/    /*Scope*/ 25, /*->53869*/
/* 53844*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 53846*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_32
/* 53848*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53850*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 53853*/      OPC_EmitMergeInputChains1_0,
/* 53854*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53857*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53860*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STL), 0|OPFL_Chain|OPFL_MemRefs,
                    4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (atomic_store addr_offset_none:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_atomic_store_release_32>> - Complexity = 18
                // Dst: (t2STL GPR:{ *:[i32] }:$val, addr_offset_none:{ *:[i32] }:$addr)
/* 53869*/    /*Scope*/ 25, /*->53895*/
/* 53870*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 53872*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53874*/      OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$ptr #3 #4 #5
/* 53877*/      OPC_EmitMergeInputChains1_0,
/* 53878*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53881*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53884*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STRBrs), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store ldst_so_reg:{ *:[i32] }:$ptr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 16
                // Dst: (STRBrs GPR:{ *:[i32] }:$val, ldst_so_reg:{ *:[i32] }:$ptr)
/* 53895*/    /*Scope*/ 25, /*->53921*/
/* 53896*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 53898*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53900*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrMode3:$ptr #3 #4 #5
/* 53903*/      OPC_EmitMergeInputChains1_0,
/* 53904*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53907*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53910*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STRH), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store addrmode3:{ *:[i32] }:$ptr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 16
                // Dst: (STRH GPR:{ *:[i32] }:$val, addrmode3:{ *:[i32] }:$ptr)
/* 53921*/    /*Scope*/ 25, /*->53947*/
/* 53922*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 53924*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 53926*/      OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectLdStSOReg:$ptr #3 #4 #5
/* 53929*/      OPC_EmitMergeInputChains1_0,
/* 53930*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53933*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53936*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STRrs), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store ldst_so_reg:{ *:[i32] }:$ptr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 16
                // Dst: (STRrs GPR:{ *:[i32] }:$val, ldst_so_reg:{ *:[i32] }:$ptr)
/* 53947*/    /*Scope*/ 25, /*->53973*/
/* 53948*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 53950*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53952*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 53955*/      OPC_EmitMergeInputChains1_0,
/* 53956*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53959*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53962*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBs), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store t2addrmode_so_reg:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 16
                // Dst: (t2STRBs GPR:{ *:[i32] }:$val, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 53973*/    /*Scope*/ 25, /*->53999*/
/* 53974*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 53976*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 53978*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 53981*/      OPC_EmitMergeInputChains1_0,
/* 53982*/      OPC_EmitInteger, MVT::i32, 14, 
/* 53985*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53988*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHs), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store t2addrmode_so_reg:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 16
                // Dst: (t2STRHs GPR:{ *:[i32] }:$val, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 53999*/    /*Scope*/ 25, /*->54025*/
/* 54000*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 54002*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54004*/      OPC_CheckComplexPat, /*CP*/18, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 54007*/      OPC_EmitMergeInputChains1_0,
/* 54008*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54011*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54014*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRs), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (atomic_store t2addrmode_so_reg:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 16
                // Dst: (t2STRs GPR:{ *:[i32] }:$val, t2addrmode_so_reg:{ *:[i32] }:$addr)
/* 54025*/    /*Scope*/ 24, /*->54050*/
/* 54026*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 54028*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54030*/      OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$ptr #3 #4
/* 54033*/      OPC_EmitMergeInputChains1_0,
/* 54034*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54037*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54040*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_store addrmode_imm12:{ *:[i32] }:$ptr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                // Dst: (STRBi12 GPR:{ *:[i32] }:$val, addrmode_imm12:{ *:[i32] }:$ptr)
/* 54050*/    /*Scope*/ 24, /*->54075*/
/* 54051*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 54053*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54055*/      OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeImm12:$ptr #3 #4
/* 54058*/      OPC_EmitMergeInputChains1_0,
/* 54059*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54062*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54065*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::STRi12), 0|OPFL_Chain|OPFL_MemRefs,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (atomic_store addrmode_imm12:{ *:[i32] }:$ptr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                // Dst: (STRi12 GPR:{ *:[i32] }:$val, addrmode_imm12:{ *:[i32] }:$ptr)
/* 54075*/    /*Scope*/ 48, /*->54124*/
/* 54076*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 54078*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54080*/      OPC_Scope, 20, /*->54102*/ // 2 children in Scope
/* 54082*/        OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeImm5S1:$ptr #3 #4
/* 54085*/        OPC_EmitMergeInputChains1_0,
/* 54086*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54089*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54092*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRBi), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_is1:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (tSTRBi tGPR:{ *:[i32] }:$val, t_addrmode_is1:{ *:[i32] }:$ptr)
/* 54102*/      /*Scope*/ 20, /*->54123*/
/* 54103*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 54106*/        OPC_EmitMergeInputChains1_0,
/* 54107*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54110*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54113*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRBr), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_rr:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (tSTRBr tGPR:{ *:[i32] }:$val, t_addrmode_rr:{ *:[i32] }:$ptr)
/* 54123*/      0, /*End of Scope*/
/* 54124*/    /*Scope*/ 48, /*->54173*/
/* 54125*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 54127*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54129*/      OPC_Scope, 20, /*->54151*/ // 2 children in Scope
/* 54131*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectThumbAddrModeImm5S2:$ptr #3 #4
/* 54134*/        OPC_EmitMergeInputChains1_0,
/* 54135*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54138*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54141*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHi), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_is2:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (tSTRHi tGPR:{ *:[i32] }:$val, t_addrmode_is2:{ *:[i32] }:$ptr)
/* 54151*/      /*Scope*/ 20, /*->54172*/
/* 54152*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 54155*/        OPC_EmitMergeInputChains1_0,
/* 54156*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54159*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54162*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRHr), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_rr:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (tSTRHr tGPR:{ *:[i32] }:$val, t_addrmode_rr:{ *:[i32] }:$ptr)
/* 54172*/      0, /*End of Scope*/
/* 54173*/    /*Scope*/ 48, /*->54222*/
/* 54174*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 54176*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54178*/      OPC_Scope, 20, /*->54200*/ // 2 children in Scope
/* 54180*/        OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectThumbAddrModeImm5S4:$ptr #3 #4
/* 54183*/        OPC_EmitMergeInputChains1_0,
/* 54184*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54187*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54190*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRi), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_is4:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (tSTRi tGPR:{ *:[i32] }:$val, t_addrmode_is4:{ *:[i32] }:$ptr)
/* 54200*/      /*Scope*/ 20, /*->54221*/
/* 54201*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 54204*/        OPC_EmitMergeInputChains1_0,
/* 54205*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54208*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54211*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tSTRr), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t_addrmode_rr:{ *:[i32] }:$ptr, tGPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (tSTRr tGPR:{ *:[i32] }:$val, t_addrmode_rr:{ *:[i32] }:$ptr)
/* 54221*/      0, /*End of Scope*/
/* 54222*/    /*Scope*/ 48, /*->54271*/
/* 54223*/      OPC_CheckPredicate, 73, // Predicate_atomic_store_8
/* 54225*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54227*/      OPC_Scope, 20, /*->54249*/ // 2 children in Scope
/* 54229*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 54232*/        OPC_EmitMergeInputChains1_0,
/* 54233*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54236*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54239*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_imm12:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (t2STRBi12 GPR:{ *:[i32] }:$val, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 54249*/      /*Scope*/ 20, /*->54270*/
/* 54250*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 54253*/        OPC_EmitMergeInputChains1_0,
/* 54254*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54257*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54260*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRBi8), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_negimm8:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (t2STRBi8 GPR:{ *:[i32] }:$val, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 54270*/      0, /*End of Scope*/
/* 54271*/    /*Scope*/ 48, /*->54320*/
/* 54272*/      OPC_CheckPredicate, 75, // Predicate_atomic_store_16
/* 54274*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54276*/      OPC_Scope, 20, /*->54298*/ // 2 children in Scope
/* 54278*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 54281*/        OPC_EmitMergeInputChains1_0,
/* 54282*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54285*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54288*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHi12), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_imm12:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (t2STRHi12 GPR:{ *:[i32] }:$val, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 54298*/      /*Scope*/ 20, /*->54319*/
/* 54299*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 54302*/        OPC_EmitMergeInputChains1_0,
/* 54303*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54309*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRHi8), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_negimm8:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (t2STRHi8 GPR:{ *:[i32] }:$val, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 54319*/      0, /*End of Scope*/
/* 54320*/    /*Scope*/ 48, /*->54369*/
/* 54321*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 54323*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54325*/      OPC_Scope, 20, /*->54347*/ // 2 children in Scope
/* 54327*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 54330*/        OPC_EmitMergeInputChains1_0,
/* 54331*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54334*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54337*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRi12), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_imm12:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (t2STRi12 GPR:{ *:[i32] }:$val, t2addrmode_imm12:{ *:[i32] }:$addr)
/* 54347*/      /*Scope*/ 20, /*->54368*/
/* 54348*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 54351*/        OPC_EmitMergeInputChains1_0,
/* 54352*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54355*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54358*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STRi8), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (atomic_store t2addrmode_negimm8:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (t2STRi8 GPR:{ *:[i32] }:$val, t2addrmode_negimm8:{ *:[i32] }:$addr)
/* 54368*/      0, /*End of Scope*/
/* 54369*/    0, /*End of Scope*/
/* 54370*/  /*SwitchOpcode*/ 21|128,2/*277*/, TARGET_VAL(ISD::ROTR),// ->54651
/* 54374*/    OPC_Scope, 29, /*->54405*/ // 6 children in Scope
/* 54376*/      OPC_MoveChild0,
/* 54377*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 54380*/      OPC_RecordChild0, // #0 = $Rm
/* 54381*/      OPC_MoveParent,
/* 54382*/      OPC_CheckChild1Integer, 16, 
/* 54384*/      OPC_CheckChild1Type, MVT::i32,
/* 54386*/      OPC_CheckType, MVT::i32,
/* 54388*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 54390*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54393*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54396*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::REV16), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (rotr:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 16
                // Dst: (REV16:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 54405*/    /*Scope*/ 29, /*->54435*/
/* 54406*/      OPC_RecordNode, // #0 = $src
/* 54407*/      OPC_CheckType, MVT::i32,
/* 54409*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54411*/      OPC_CheckComplexPat, /*CP*/8, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 54414*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54417*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54420*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54423*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsr), 0,
                    MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                // Src: shift_so_reg_reg:{ *:[i32] }:$src - Complexity = 12
                // Dst: (MOVsr:{ *:[i32] } shift_so_reg_reg:{ *:[i32] }:$src)
/* 54435*/    /*Scope*/ 50, /*->54486*/
/* 54436*/      OPC_MoveChild0,
/* 54437*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 54440*/      OPC_RecordChild0, // #0 = $Rm
/* 54441*/      OPC_MoveParent,
/* 54442*/      OPC_CheckChild1Integer, 16, 
/* 54444*/      OPC_CheckChild1Type, MVT::i32,
/* 54446*/      OPC_CheckType, MVT::i32,
/* 54448*/      OPC_Scope, 17, /*->54467*/ // 2 children in Scope
/* 54450*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54452*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54455*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54458*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tREV16), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (rotr:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 11
                  // Dst: (tREV16:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 54467*/      /*Scope*/ 17, /*->54485*/
/* 54468*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54470*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54473*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54476*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2REV16), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (rotr:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 11
                  // Dst: (t2REV16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 54485*/      0, /*End of Scope*/
/* 54486*/    /*Scope*/ 40, /*->54527*/
/* 54487*/      OPC_RecordChild0, // #0 = $lhs
/* 54488*/      OPC_MoveChild1,
/* 54489*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 54492*/      OPC_RecordChild0, // #1 = $rhs
/* 54493*/      OPC_MoveChild1,
/* 54494*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54497*/      OPC_CheckPredicate, 78, // Predicate_lo5AllOne
/* 54499*/      OPC_MoveParent,
/* 54500*/      OPC_CheckType, MVT::i32,
/* 54502*/      OPC_MoveParent,
/* 54503*/      OPC_CheckType, MVT::i32,
/* 54505*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54507*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54510*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54513*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54516*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RORrr), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$lhs, (and:{ *:[i32] } rGPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] })<<P:Predicate_lo5AllOne>>)) - Complexity = 10
                // Dst: (t2RORrr:{ *:[i32] } rGPR:{ *:[i32] }:$lhs, rGPR:{ *:[i32] }:$rhs)
/* 54527*/    /*Scope*/ 28, /*->54556*/
/* 54528*/      OPC_RecordNode, // #0 = $src
/* 54529*/      OPC_CheckType, MVT::i32,
/* 54531*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54533*/      OPC_CheckComplexPat, /*CP*/9, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 54536*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54539*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54542*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54545*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsi), 0,
                    MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: shift_so_reg_imm:{ *:[i32] }:$src - Complexity = 9
                // Dst: (MOVsi:{ *:[i32] } shift_so_reg_imm:{ *:[i32] }:$src)
/* 54556*/    /*Scope*/ 93, /*->54650*/
/* 54557*/      OPC_RecordChild0, // #0 = $Rm
/* 54558*/      OPC_RecordChild1, // #1 = $imm
/* 54559*/      OPC_Scope, 35, /*->54596*/ // 2 children in Scope
/* 54561*/        OPC_MoveChild1,
/* 54562*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54565*/        OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 54567*/        OPC_CheckType, MVT::i32,
/* 54569*/        OPC_MoveParent,
/* 54570*/        OPC_CheckType, MVT::i32,
/* 54572*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54574*/        OPC_EmitConvertToTarget, 1,
/* 54576*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54579*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54582*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54585*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RORri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                  // Dst: (t2RORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 54596*/      /*Scope*/ 52, /*->54649*/
/* 54597*/        OPC_CheckChild1Type, MVT::i32,
/* 54599*/        OPC_CheckType, MVT::i32,
/* 54601*/        OPC_Scope, 22, /*->54625*/ // 2 children in Scope
/* 54603*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54605*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 54608*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54611*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54614*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tROR), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (rotr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tROR:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 54625*/        /*Scope*/ 22, /*->54648*/
/* 54626*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54628*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54631*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54634*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54637*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RORrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2RORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 54648*/        0, /*End of Scope*/
/* 54649*/      0, /*End of Scope*/
/* 54650*/    0, /*End of Scope*/
/* 54651*/  /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::SRA),// ->54925
/* 54655*/    OPC_Scope, 29, /*->54686*/ // 5 children in Scope
/* 54657*/      OPC_MoveChild0,
/* 54658*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 54661*/      OPC_RecordChild0, // #0 = $Rm
/* 54662*/      OPC_MoveParent,
/* 54663*/      OPC_CheckChild1Integer, 16, 
/* 54665*/      OPC_CheckChild1Type, MVT::i32,
/* 54667*/      OPC_CheckType, MVT::i32,
/* 54669*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 54671*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54674*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54677*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::REVSH), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (sra:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 16
                // Dst: (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 54686*/    /*Scope*/ 29, /*->54716*/
/* 54687*/      OPC_RecordNode, // #0 = $src
/* 54688*/      OPC_CheckType, MVT::i32,
/* 54690*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54692*/      OPC_CheckComplexPat, /*CP*/8, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 54695*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54698*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54701*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54704*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsr), 0,
                    MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                // Src: shift_so_reg_reg:{ *:[i32] }:$src - Complexity = 12
                // Dst: (MOVsr:{ *:[i32] } shift_so_reg_reg:{ *:[i32] }:$src)
/* 54716*/    /*Scope*/ 50, /*->54767*/
/* 54717*/      OPC_MoveChild0,
/* 54718*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 54721*/      OPC_RecordChild0, // #0 = $Rm
/* 54722*/      OPC_MoveParent,
/* 54723*/      OPC_CheckChild1Integer, 16, 
/* 54725*/      OPC_CheckChild1Type, MVT::i32,
/* 54727*/      OPC_CheckType, MVT::i32,
/* 54729*/      OPC_Scope, 17, /*->54748*/ // 2 children in Scope
/* 54731*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54733*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54736*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54739*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tREVSH), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sra:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 11
                  // Dst: (tREVSH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 54748*/      /*Scope*/ 17, /*->54766*/
/* 54749*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54751*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54754*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54757*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2REVSH), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sra:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) - Complexity = 11
                  // Dst: (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 54766*/      0, /*End of Scope*/
/* 54767*/    /*Scope*/ 28, /*->54796*/
/* 54768*/      OPC_RecordNode, // #0 = $src
/* 54769*/      OPC_CheckType, MVT::i32,
/* 54771*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 54773*/      OPC_CheckComplexPat, /*CP*/9, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 54776*/      OPC_EmitInteger, MVT::i32, 14, 
/* 54779*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54782*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54785*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsi), 0,
                    MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: shift_so_reg_imm:{ *:[i32] }:$src - Complexity = 9
                // Dst: (MOVsi:{ *:[i32] } shift_so_reg_imm:{ *:[i32] }:$src)
/* 54796*/    /*Scope*/ 127, /*->54924*/
/* 54797*/      OPC_RecordChild0, // #0 = $Rm
/* 54798*/      OPC_RecordChild1, // #1 = $imm5
/* 54799*/      OPC_Scope, 69, /*->54870*/ // 2 children in Scope
/* 54801*/        OPC_MoveChild1,
/* 54802*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54805*/        OPC_CheckPredicate, 33, // Predicate_imm_sr
/* 54807*/        OPC_CheckType, MVT::i32,
/* 54809*/        OPC_MoveParent,
/* 54810*/        OPC_CheckType, MVT::i32,
/* 54812*/        OPC_Scope, 27, /*->54841*/ // 2 children in Scope
/* 54814*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54816*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 54819*/          OPC_EmitConvertToTarget, 1,
/* 54821*/          OPC_EmitNodeXForm, 11, 3, // imm_sr_XFORM
/* 54824*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54827*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54830*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tASRri), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 4, 5, 6, 
                    // Src: (sra:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm5) - Complexity = 7
                    // Dst: (tASRri:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm5))
/* 54841*/        /*Scope*/ 27, /*->54869*/
/* 54842*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54844*/          OPC_EmitConvertToTarget, 1,
/* 54846*/          OPC_EmitNodeXForm, 11, 2, // imm_sr_XFORM
/* 54849*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54852*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54855*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54858*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ASRri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm_sr>><<X:imm_sr_XFORM>>:$imm) - Complexity = 7
                    // Dst: (t2ASRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm_sr_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 54869*/        0, /*End of Scope*/
/* 54870*/      /*Scope*/ 52, /*->54923*/
/* 54871*/        OPC_CheckChild1Type, MVT::i32,
/* 54873*/        OPC_CheckType, MVT::i32,
/* 54875*/        OPC_Scope, 22, /*->54899*/ // 2 children in Scope
/* 54877*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54879*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 54882*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54885*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54888*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tASRrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (sra:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tASRrr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 54899*/        /*Scope*/ 22, /*->54922*/
/* 54900*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54902*/          OPC_EmitInteger, MVT::i32, 14, 
/* 54905*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54908*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54911*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2ASRrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2ASRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 54922*/        0, /*End of Scope*/
/* 54923*/      0, /*End of Scope*/
/* 54924*/    0, /*End of Scope*/
/* 54925*/  /*SwitchOpcode*/ 110, TARGET_VAL(ARMISD::PIC_ADD),// ->55038
/* 54928*/    OPC_Scope, 61, /*->54991*/ // 2 children in Scope
/* 54930*/      OPC_MoveChild0,
/* 54931*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 54934*/      OPC_RecordMemRef,
/* 54935*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 54936*/      OPC_CheckFoldableChainNode,
/* 54937*/      OPC_MoveChild1,
/* 54938*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 54941*/      OPC_RecordChild0, // #1 = $addr
/* 54942*/      OPC_MoveChild0,
/* 54943*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 54946*/      OPC_MoveParent,
/* 54947*/      OPC_MoveParent,
/* 54948*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 54950*/      OPC_CheckPredicate, 57, // Predicate_load
/* 54952*/      OPC_MoveParent,
/* 54953*/      OPC_RecordChild1, // #2 = $cp
/* 54954*/      OPC_MoveChild1,
/* 54955*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54958*/      OPC_MoveParent,
/* 54959*/      OPC_CheckType, MVT::i32,
/* 54961*/      OPC_Scope, 13, /*->54976*/ // 2 children in Scope
/* 54963*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 54965*/        OPC_EmitMergeInputChains1_0,
/* 54966*/        OPC_EmitConvertToTarget, 2,
/* 54968*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 1, 3, 
                  // Src: (ARMpic_add:{ *:[i32] } (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i32] }):$cp) - Complexity = 16
                  // Dst: (tLDRpci_pic:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr, (imm:{ *:[i32] }):$cp)
/* 54976*/      /*Scope*/ 13, /*->54990*/
/* 54977*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 54979*/        OPC_EmitMergeInputChains1_0,
/* 54980*/        OPC_EmitConvertToTarget, 2,
/* 54982*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 1, 3, 
                  // Src: (ARMpic_add:{ *:[i32] } (ld:{ *:[i32] } (ARMWrapper:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i32] }):$cp) - Complexity = 16
                  // Dst: (t2LDRpci_pic:{ *:[i32] } (tconstpool:{ *:[i32] }):$addr, (imm:{ *:[i32] }):$cp)
/* 54990*/      0, /*End of Scope*/
/* 54991*/    /*Scope*/ 45, /*->55037*/
/* 54992*/      OPC_RecordChild0, // #0 = $a
/* 54993*/      OPC_RecordChild1, // #1 = $cp
/* 54994*/      OPC_MoveChild1,
/* 54995*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54998*/      OPC_MoveParent,
/* 54999*/      OPC_CheckType, MVT::i32,
/* 55001*/      OPC_Scope, 20, /*->55023*/ // 2 children in Scope
/* 55003*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 55005*/        OPC_EmitConvertToTarget, 1,
/* 55007*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55010*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55013*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::PICADD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMpic_add:{ *:[i32] } GPR:{ *:[i32] }:$a, (imm:{ *:[i32] }):$cp) - Complexity = 6
                  // Dst: (PICADD:{ *:[i32] } GPR:{ *:[i32] }:$a, (imm:{ *:[i32] }):$cp)
/* 55023*/      /*Scope*/ 12, /*->55036*/
/* 55024*/        OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 55026*/        OPC_EmitConvertToTarget, 1,
/* 55028*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tPICADD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMpic_add:{ *:[i32] } GPR:{ *:[i32] }:$lhs, (imm:{ *:[i32] }):$cp) - Complexity = 6
                  // Dst: (tPICADD:{ *:[i32] } GPR:{ *:[i32] }:$lhs, (imm:{ *:[i32] }):$cp)
/* 55036*/      0, /*End of Scope*/
/* 55037*/    0, /*End of Scope*/
/* 55038*/  /*SwitchOpcode*/ 61, TARGET_VAL(ARMISD::BCC_i64),// ->55102
/* 55041*/    OPC_RecordNode, // #0 = 'ARMBcci64' chained node
/* 55042*/    OPC_RecordChild1, // #1 = $cc
/* 55043*/    OPC_MoveChild1,
/* 55044*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55047*/    OPC_MoveParent,
/* 55048*/    OPC_RecordChild2, // #2 = $lhs1
/* 55049*/    OPC_RecordChild3, // #3 = $lhs2
/* 55050*/    OPC_Scope, 25, /*->55077*/ // 2 children in Scope
/* 55052*/      OPC_CheckChild4Integer, 0, 
/* 55054*/      OPC_MoveChild5,
/* 55055*/      OPC_CheckInteger, 0, 
/* 55057*/      OPC_MoveParent,
/* 55058*/      OPC_RecordChild6, // #4 = $dst
/* 55059*/      OPC_MoveChild6,
/* 55060*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 55063*/      OPC_MoveParent,
/* 55064*/      OPC_EmitMergeInputChains1_0,
/* 55065*/      OPC_EmitConvertToTarget, 1,
/* 55067*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BCCZi64), 0|OPFL_Chain,
                    MVT::i32, 4/*#Ops*/, 5, 2, 3, 4, 
                // Src: (ARMBcci64 (imm:{ *:[i32] }):$cc, GPR:{ *:[i32] }:$lhs1, GPR:{ *:[i32] }:$lhs2, 0:{ *:[i32] }, 0:{ *:[i32] }, (bb:{ *:[Other] }):$dst) - Complexity = 16
                // Dst: (BCCZi64:{ *:[i32] } (imm:{ *:[i32] }):$cc, GPR:{ *:[i32] }:$lhs1, GPR:{ *:[i32] }:$lhs2, (bb:{ *:[Other] }):$dst)
/* 55077*/    /*Scope*/ 23, /*->55101*/
/* 55078*/      OPC_RecordChild4, // #4 = $rhs1
/* 55079*/      OPC_RecordChild5, // #5 = $rhs2
/* 55080*/      OPC_RecordChild6, // #6 = $dst
/* 55081*/      OPC_MoveChild6,
/* 55082*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 55085*/      OPC_MoveParent,
/* 55086*/      OPC_EmitMergeInputChains1_0,
/* 55087*/      OPC_EmitConvertToTarget, 1,
/* 55089*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BCCi64), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                // Src: (ARMBcci64 (imm:{ *:[i32] }):$cc, GPR:{ *:[i32] }:$lhs1, GPR:{ *:[i32] }:$lhs2, GPR:{ *:[i32] }:$rhs1, GPR:{ *:[i32] }:$rhs2, (bb:{ *:[Other] }):$dst) - Complexity = 6
                // Dst: (BCCi64:{ *:[i32] } (imm:{ *:[i32] }):$cc, GPR:{ *:[i32] }:$lhs1, GPR:{ *:[i32] }:$lhs2, GPR:{ *:[i32] }:$rhs1, GPR:{ *:[i32] }:$rhs2, (bb:{ *:[Other] }):$dst)
/* 55101*/    0, /*End of Scope*/
/* 55102*/  /*SwitchOpcode*/ 34|128,17/*2210*/, TARGET_VAL(ISD::SUB),// ->57316
/* 55106*/    OPC_Scope, 40|128,1/*168*/, /*->55277*/ // 7 children in Scope
/* 55109*/      OPC_RecordChild0, // #0 = $Rn
/* 55110*/      OPC_RecordChild1, // #1 = $shift
/* 55111*/      OPC_CheckType, MVT::i32,
/* 55113*/      OPC_Scope, 106, /*->55221*/ // 2 children in Scope
/* 55115*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 55117*/        OPC_Scope, 25, /*->55144*/ // 4 children in Scope
/* 55119*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 55122*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55125*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55128*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55131*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBrsr), 0,
                        MVT::i32, 7/*#Ops*/, 0, 2, 3, 4, 5, 6, 7, 
                    // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                    // Dst: (SUBrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 55144*/        /*Scope*/ 25, /*->55170*/
/* 55145*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 55148*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55151*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55154*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55157*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::RSBrsr), 0,
                        MVT::i32, 7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                    // Src: (sub:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                    // Dst: (RSBrsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 55170*/        /*Scope*/ 24, /*->55195*/
/* 55171*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 55174*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55177*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55180*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55183*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBrsi), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                    // Dst: (SUBrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 55195*/        /*Scope*/ 24, /*->55220*/
/* 55196*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 55199*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55202*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55205*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55208*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::RSBrsi), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (sub:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (RSBrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 55220*/        0, /*End of Scope*/
/* 55221*/      /*Scope*/ 54, /*->55276*/
/* 55222*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 55224*/        OPC_Scope, 24, /*->55250*/ // 2 children in Scope
/* 55226*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 55229*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55232*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55235*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55238*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBrs), 0,
                        MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                    // Dst: (t2SUBrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 55250*/        /*Scope*/ 24, /*->55275*/
/* 55251*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 55254*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55257*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55260*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55263*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RSBrs), 0,
                        MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (sub:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, rGPR:{ *:[i32] }:$Rn) - Complexity = 12
                    // Dst: (t2RSBrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 55275*/        0, /*End of Scope*/
/* 55276*/      0, /*End of Scope*/
/* 55277*/    /*Scope*/ 26, /*->55304*/
/* 55278*/      OPC_CheckChild0Integer, 0, 
/* 55280*/      OPC_RecordChild1, // #0 = $Rn
/* 55281*/      OPC_CheckType, MVT::i32,
/* 55283*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 55285*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 55288*/      OPC_EmitInteger, MVT::i32, 14, 
/* 55291*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55294*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tRSB), 0,
                    MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (sub:{ *:[i32] } 0:{ *:[i32] }, tGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (tRSB:{ *:[i32] } tGPR:{ *:[i32] }:$Rn)
/* 55304*/    /*Scope*/ 43|128,2/*299*/, /*->55605*/
/* 55306*/      OPC_RecordChild0, // #0 = $Rn
/* 55307*/      OPC_Scope, 34, /*->55343*/ // 6 children in Scope
/* 55309*/        OPC_RecordChild1, // #1 = $imm
/* 55310*/        OPC_MoveChild1,
/* 55311*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55314*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 55316*/        OPC_MoveParent,
/* 55317*/        OPC_CheckType, MVT::i32,
/* 55319*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 55321*/        OPC_EmitConvertToTarget, 1,
/* 55323*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55329*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55332*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (SUBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 55343*/      /*Scope*/ 34, /*->55378*/
/* 55344*/        OPC_MoveChild0,
/* 55345*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55348*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 55350*/        OPC_MoveParent,
/* 55351*/        OPC_RecordChild1, // #1 = $Rn
/* 55352*/        OPC_CheckType, MVT::i32,
/* 55354*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 55356*/        OPC_EmitConvertToTarget, 0,
/* 55358*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55361*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55364*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55367*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::RSBri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn) - Complexity = 7
                  // Dst: (RSBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 55378*/      /*Scope*/ 63, /*->55442*/
/* 55379*/        OPC_RecordChild1, // #1 = $imm
/* 55380*/        OPC_MoveChild1,
/* 55381*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55384*/        OPC_Scope, 29, /*->55415*/ // 2 children in Scope
/* 55386*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 55388*/          OPC_MoveParent,
/* 55389*/          OPC_CheckType, MVT::i32,
/* 55391*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 55393*/          OPC_EmitConvertToTarget, 1,
/* 55395*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55398*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55401*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55404*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                    // Dst: (t2SUBri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 55415*/        /*Scope*/ 25, /*->55441*/
/* 55416*/          OPC_CheckPredicate, 9, // Predicate_imm0_4095
/* 55418*/          OPC_MoveParent,
/* 55419*/          OPC_CheckType, MVT::i32,
/* 55421*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 55423*/          OPC_EmitConvertToTarget, 1,
/* 55425*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55428*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55431*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri12), 0,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) - Complexity = 7
                    // Dst: (t2SUBri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 55441*/        0, /*End of Scope*/
/* 55442*/      /*Scope*/ 34, /*->55477*/
/* 55443*/        OPC_MoveChild0,
/* 55444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55447*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 55449*/        OPC_MoveParent,
/* 55450*/        OPC_RecordChild1, // #1 = $Rn
/* 55451*/        OPC_CheckType, MVT::i32,
/* 55453*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 55455*/        OPC_EmitConvertToTarget, 0,
/* 55457*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55460*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55463*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55466*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RSBri), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, rGPR:{ *:[i32] }:$Rn) - Complexity = 7
                  // Dst: (t2RSBri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 55477*/      /*Scope*/ 51, /*->55529*/
/* 55478*/        OPC_MoveChild1,
/* 55479*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 55482*/        OPC_RecordChild0, // #1 = $Rn
/* 55483*/        OPC_RecordChild1, // #2 = $Rm
/* 55484*/        OPC_MoveParent,
/* 55485*/        OPC_CheckType, MVT::i32,
/* 55487*/        OPC_Scope, 19, /*->55508*/ // 2 children in Scope
/* 55489*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 55491*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55494*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55497*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MLS), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (MLS:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 55508*/        /*Scope*/ 19, /*->55528*/
/* 55509*/          OPC_CheckPatternPredicate, 12, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 55511*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55514*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55517*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MLS), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 0, 3, 4, 
                    // Src: (sub:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (t2MLS:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 55528*/        0, /*End of Scope*/
/* 55529*/      /*Scope*/ 74, /*->55604*/
/* 55530*/        OPC_RecordChild1, // #1 = $Rm
/* 55531*/        OPC_CheckType, MVT::i32,
/* 55533*/        OPC_Scope, 22, /*->55557*/ // 3 children in Scope
/* 55535*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 55537*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55540*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55543*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55546*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 55557*/        /*Scope*/ 22, /*->55580*/
/* 55558*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 55560*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 55563*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55566*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55569*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (sub:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tSUBrr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 55580*/        /*Scope*/ 22, /*->55603*/
/* 55581*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 55583*/          OPC_EmitInteger, MVT::i32, 14, 
/* 55586*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55589*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55592*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2SUBrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 55603*/        0, /*End of Scope*/
/* 55604*/      0, /*End of Scope*/
/* 55605*/    /*Scope*/ 55|128,1/*183*/, /*->55790*/
/* 55607*/      OPC_MoveChild0,
/* 55608*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55611*/      OPC_MoveChild0,
/* 55612*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 55615*/      OPC_MoveChild0,
/* 55616*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 55619*/      OPC_MoveParent,
/* 55620*/      OPC_CheckPredicate, 79, // Predicate_NEONimmAllZerosV
/* 55622*/      OPC_SwitchType /*2 cases */, 81, MVT::v2i32,// ->55706
/* 55625*/        OPC_MoveParent,
/* 55626*/        OPC_MoveParent,
/* 55627*/        OPC_RecordChild1, // #0 = $Vm
/* 55628*/        OPC_SwitchType /*2 cases */, 36, MVT::v8i8,// ->55667
/* 55631*/          OPC_Scope, 17, /*->55650*/ // 2 children in Scope
/* 55633*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55635*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55638*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55641*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8d), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i8] } (bitconvert:{ *:[v8i8] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v8i8] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs8d:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 55650*/          /*Scope*/ 15, /*->55666*/
/* 55651*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55654*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55657*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8d), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i8] } (bitconvert:{ *:[v8i8] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v8i8] }:$src) - Complexity = 13
                      // Dst: (VNEGs8d:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src)
/* 55666*/          0, /*End of Scope*/
/* 55667*/        /*SwitchType*/ 36, MVT::v4i16,// ->55705
/* 55669*/          OPC_Scope, 17, /*->55688*/ // 2 children in Scope
/* 55671*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55673*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55676*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55679*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16d), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i16] } (bitconvert:{ *:[v4i16] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v4i16] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs16d:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 55688*/          /*Scope*/ 15, /*->55704*/
/* 55689*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55692*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55695*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16d), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i16] } (bitconvert:{ *:[v4i16] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v4i16] }:$src) - Complexity = 13
                      // Dst: (VNEGs16d:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src)
/* 55704*/          0, /*End of Scope*/
/* 55705*/        0, // EndSwitchType
/* 55706*/      /*SwitchType*/ 81, MVT::v4i32,// ->55789
/* 55708*/        OPC_MoveParent,
/* 55709*/        OPC_MoveParent,
/* 55710*/        OPC_RecordChild1, // #0 = $Vm
/* 55711*/        OPC_SwitchType /*2 cases */, 36, MVT::v16i8,// ->55750
/* 55714*/          OPC_Scope, 17, /*->55733*/ // 2 children in Scope
/* 55716*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55718*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55721*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55724*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8q), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v16i8] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs8q:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 55733*/          /*Scope*/ 15, /*->55749*/
/* 55734*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55737*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8q), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v16i8] }:$src) - Complexity = 13
                      // Dst: (VNEGs8q:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src)
/* 55749*/          0, /*End of Scope*/
/* 55750*/        /*SwitchType*/ 36, MVT::v8i16,// ->55788
/* 55752*/          OPC_Scope, 17, /*->55771*/ // 2 children in Scope
/* 55754*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55756*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55759*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55762*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16q), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v8i16] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs16q:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 55771*/          /*Scope*/ 15, /*->55787*/
/* 55772*/            OPC_EmitInteger, MVT::i32, 14, 
/* 55775*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55778*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16q), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v8i16] }:$src) - Complexity = 13
                      // Dst: (VNEGs16q:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src)
/* 55787*/          0, /*End of Scope*/
/* 55788*/        0, // EndSwitchType
/* 55789*/      0, // EndSwitchType
/* 55790*/    /*Scope*/ 30|128,5/*670*/, /*->56462*/
/* 55792*/      OPC_RecordChild0, // #0 = $src1
/* 55793*/      OPC_MoveChild1,
/* 55794*/      OPC_SwitchOpcode /*3 cases */, 98|128,3/*482*/, TARGET_VAL(ISD::MUL),// ->56281
/* 55799*/        OPC_Scope, 2|128,1/*130*/, /*->55932*/ // 4 children in Scope
/* 55802*/          OPC_RecordChild0, // #1 = $Vn
/* 55803*/          OPC_MoveChild1,
/* 55804*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 55807*/          OPC_RecordChild0, // #2 = $Vm
/* 55808*/          OPC_Scope, 60, /*->55870*/ // 2 children in Scope
/* 55810*/            OPC_CheckChild0Type, MVT::v4i16,
/* 55812*/            OPC_RecordChild1, // #3 = $lane
/* 55813*/            OPC_MoveChild1,
/* 55814*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55817*/            OPC_MoveParent,
/* 55818*/            OPC_MoveParent,
/* 55819*/            OPC_MoveParent,
/* 55820*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->55845
/* 55823*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55825*/              OPC_EmitConvertToTarget, 3,
/* 55827*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55830*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55833*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i16), 0,
                            MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLSslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 55845*/            /*SwitchType*/ 22, MVT::v8i16,// ->55869
/* 55847*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55849*/              OPC_EmitConvertToTarget, 3,
/* 55851*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55854*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55857*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv8i16), 0,
                            MVT::v8i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLSslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 55869*/            0, // EndSwitchType
/* 55870*/          /*Scope*/ 60, /*->55931*/
/* 55871*/            OPC_CheckChild0Type, MVT::v2i32,
/* 55873*/            OPC_RecordChild1, // #3 = $lane
/* 55874*/            OPC_MoveChild1,
/* 55875*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55878*/            OPC_MoveParent,
/* 55879*/            OPC_MoveParent,
/* 55880*/            OPC_MoveParent,
/* 55881*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->55906
/* 55884*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55886*/              OPC_EmitConvertToTarget, 3,
/* 55888*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55891*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55894*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv2i32), 0,
                            MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLSslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 55906*/            /*SwitchType*/ 22, MVT::v4i32,// ->55930
/* 55908*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55910*/              OPC_EmitConvertToTarget, 3,
/* 55912*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55915*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55918*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i32), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                        // Dst: (VMLSslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 55930*/            0, // EndSwitchType
/* 55931*/          0, /*End of Scope*/
/* 55932*/        /*Scope*/ 3|128,1/*131*/, /*->56065*/
/* 55934*/          OPC_MoveChild0,
/* 55935*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 55938*/          OPC_RecordChild0, // #1 = $Vm
/* 55939*/          OPC_Scope, 61, /*->56002*/ // 2 children in Scope
/* 55941*/            OPC_CheckChild0Type, MVT::v4i16,
/* 55943*/            OPC_RecordChild1, // #2 = $lane
/* 55944*/            OPC_MoveChild1,
/* 55945*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55948*/            OPC_MoveParent,
/* 55949*/            OPC_MoveParent,
/* 55950*/            OPC_RecordChild1, // #3 = $Vn
/* 55951*/            OPC_MoveParent,
/* 55952*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->55977
/* 55955*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55957*/              OPC_EmitConvertToTarget, 2,
/* 55959*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55962*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55965*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i16), 0,
                            MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                        // Src: (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 12
                        // Dst: (VMLSslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 55977*/            /*SwitchType*/ 22, MVT::v8i16,// ->56001
/* 55979*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55981*/              OPC_EmitConvertToTarget, 2,
/* 55983*/              OPC_EmitInteger, MVT::i32, 14, 
/* 55986*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55989*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv8i16), 0,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                        // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$Vn)) - Complexity = 12
                        // Dst: (VMLSslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56001*/            0, // EndSwitchType
/* 56002*/          /*Scope*/ 61, /*->56064*/
/* 56003*/            OPC_CheckChild0Type, MVT::v2i32,
/* 56005*/            OPC_RecordChild1, // #2 = $lane
/* 56006*/            OPC_MoveChild1,
/* 56007*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56010*/            OPC_MoveParent,
/* 56011*/            OPC_MoveParent,
/* 56012*/            OPC_RecordChild1, // #3 = $Vn
/* 56013*/            OPC_MoveParent,
/* 56014*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->56039
/* 56017*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56019*/              OPC_EmitConvertToTarget, 2,
/* 56021*/              OPC_EmitInteger, MVT::i32, 14, 
/* 56024*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56027*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv2i32), 0,
                            MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                        // Src: (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 12
                        // Dst: (VMLSslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56039*/            /*SwitchType*/ 22, MVT::v4i32,// ->56063
/* 56041*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56043*/              OPC_EmitConvertToTarget, 2,
/* 56045*/              OPC_EmitInteger, MVT::i32, 14, 
/* 56048*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56051*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i32), 0,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                        // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$Vn)) - Complexity = 12
                        // Dst: (VMLSslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56063*/            0, // EndSwitchType
/* 56064*/          0, /*End of Scope*/
/* 56065*/        /*Scope*/ 106, /*->56172*/
/* 56066*/          OPC_RecordChild0, // #1 = $src2
/* 56067*/          OPC_MoveChild1,
/* 56068*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56071*/          OPC_RecordChild0, // #2 = $src3
/* 56072*/          OPC_Scope, 48, /*->56122*/ // 2 children in Scope
/* 56074*/            OPC_CheckChild0Type, MVT::v8i16,
/* 56076*/            OPC_RecordChild1, // #3 = $lane
/* 56077*/            OPC_MoveChild1,
/* 56078*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56081*/            OPC_MoveParent,
/* 56082*/            OPC_MoveParent,
/* 56083*/            OPC_MoveParent,
/* 56084*/            OPC_CheckType, MVT::v8i16,
/* 56086*/            OPC_EmitConvertToTarget, 3,
/* 56088*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 56091*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 56099*/            OPC_EmitConvertToTarget, 3,
/* 56101*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 56104*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56107*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56110*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src2, (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                      // Dst: (VMLSslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 56122*/          /*Scope*/ 48, /*->56171*/
/* 56123*/            OPC_CheckChild0Type, MVT::v4i32,
/* 56125*/            OPC_RecordChild1, // #3 = $lane
/* 56126*/            OPC_MoveChild1,
/* 56127*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56130*/            OPC_MoveParent,
/* 56131*/            OPC_MoveParent,
/* 56132*/            OPC_MoveParent,
/* 56133*/            OPC_CheckType, MVT::v4i32,
/* 56135*/            OPC_EmitConvertToTarget, 3,
/* 56137*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 56140*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 56148*/            OPC_EmitConvertToTarget, 3,
/* 56150*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 56153*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56156*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56159*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i32), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src2, (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                      // Dst: (VMLSslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 56171*/          0, /*End of Scope*/
/* 56172*/        /*Scope*/ 107, /*->56280*/
/* 56173*/          OPC_MoveChild0,
/* 56174*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56177*/          OPC_RecordChild0, // #1 = $src3
/* 56178*/          OPC_Scope, 49, /*->56229*/ // 2 children in Scope
/* 56180*/            OPC_CheckChild0Type, MVT::v8i16,
/* 56182*/            OPC_RecordChild1, // #2 = $lane
/* 56183*/            OPC_MoveChild1,
/* 56184*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56187*/            OPC_MoveParent,
/* 56188*/            OPC_MoveParent,
/* 56189*/            OPC_RecordChild1, // #3 = $src2
/* 56190*/            OPC_MoveParent,
/* 56191*/            OPC_CheckType, MVT::v8i16,
/* 56193*/            OPC_EmitConvertToTarget, 2,
/* 56195*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 56198*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 56206*/            OPC_EmitConvertToTarget, 2,
/* 56208*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 56211*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56214*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56217*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 12
                      // Dst: (VMLSslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$src2, (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src3, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 56229*/          /*Scope*/ 49, /*->56279*/
/* 56230*/            OPC_CheckChild0Type, MVT::v4i32,
/* 56232*/            OPC_RecordChild1, // #2 = $lane
/* 56233*/            OPC_MoveChild1,
/* 56234*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56237*/            OPC_MoveParent,
/* 56238*/            OPC_MoveParent,
/* 56239*/            OPC_RecordChild1, // #3 = $src2
/* 56240*/            OPC_MoveParent,
/* 56241*/            OPC_CheckType, MVT::v4i32,
/* 56243*/            OPC_EmitConvertToTarget, 2,
/* 56245*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 56248*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 56256*/            OPC_EmitConvertToTarget, 2,
/* 56258*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 56261*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56264*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56267*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslv4i32), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 12
                      // Dst: (VMLSslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$src2, (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 56279*/          0, /*End of Scope*/
/* 56280*/        0, /*End of Scope*/
/* 56281*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLs),// ->56371
/* 56284*/        OPC_RecordChild0, // #1 = $Vn
/* 56285*/        OPC_Scope, 41, /*->56328*/ // 2 children in Scope
/* 56287*/          OPC_CheckChild0Type, MVT::v4i16,
/* 56289*/          OPC_MoveChild1,
/* 56290*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56293*/          OPC_RecordChild0, // #2 = $Vm
/* 56294*/          OPC_CheckChild0Type, MVT::v4i16,
/* 56296*/          OPC_RecordChild1, // #3 = $lane
/* 56297*/          OPC_MoveChild1,
/* 56298*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56301*/          OPC_MoveParent,
/* 56302*/          OPC_MoveParent,
/* 56303*/          OPC_MoveParent,
/* 56304*/          OPC_CheckType, MVT::v4i32,
/* 56306*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56308*/          OPC_EmitConvertToTarget, 3,
/* 56310*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56313*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56316*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLslsv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLSLslsv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56328*/        /*Scope*/ 41, /*->56370*/
/* 56329*/          OPC_CheckChild0Type, MVT::v2i32,
/* 56331*/          OPC_MoveChild1,
/* 56332*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56335*/          OPC_RecordChild0, // #2 = $Vm
/* 56336*/          OPC_CheckChild0Type, MVT::v2i32,
/* 56338*/          OPC_RecordChild1, // #3 = $lane
/* 56339*/          OPC_MoveChild1,
/* 56340*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56343*/          OPC_MoveParent,
/* 56344*/          OPC_MoveParent,
/* 56345*/          OPC_MoveParent,
/* 56346*/          OPC_CheckType, MVT::v2i64,
/* 56348*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56350*/          OPC_EmitConvertToTarget, 3,
/* 56352*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56355*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56358*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLslsv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLSLslsv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56370*/        0, /*End of Scope*/
/* 56371*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLu),// ->56461
/* 56374*/        OPC_RecordChild0, // #1 = $Vn
/* 56375*/        OPC_Scope, 41, /*->56418*/ // 2 children in Scope
/* 56377*/          OPC_CheckChild0Type, MVT::v4i16,
/* 56379*/          OPC_MoveChild1,
/* 56380*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56383*/          OPC_RecordChild0, // #2 = $Vm
/* 56384*/          OPC_CheckChild0Type, MVT::v4i16,
/* 56386*/          OPC_RecordChild1, // #3 = $lane
/* 56387*/          OPC_MoveChild1,
/* 56388*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56391*/          OPC_MoveParent,
/* 56392*/          OPC_MoveParent,
/* 56393*/          OPC_MoveParent,
/* 56394*/          OPC_CheckType, MVT::v4i32,
/* 56396*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56398*/          OPC_EmitConvertToTarget, 3,
/* 56400*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56403*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56406*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLsluv4i16), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLSLsluv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56418*/        /*Scope*/ 41, /*->56460*/
/* 56419*/          OPC_CheckChild0Type, MVT::v2i32,
/* 56421*/          OPC_MoveChild1,
/* 56422*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 56425*/          OPC_RecordChild0, // #2 = $Vm
/* 56426*/          OPC_CheckChild0Type, MVT::v2i32,
/* 56428*/          OPC_RecordChild1, // #3 = $lane
/* 56429*/          OPC_MoveChild1,
/* 56430*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56433*/          OPC_MoveParent,
/* 56434*/          OPC_MoveParent,
/* 56435*/          OPC_MoveParent,
/* 56436*/          OPC_CheckType, MVT::v2i64,
/* 56438*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56440*/          OPC_EmitConvertToTarget, 3,
/* 56442*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56445*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56448*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLsluv2i32), 0,
                        MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLSLsluv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 56460*/        0, /*End of Scope*/
/* 56461*/      0, // EndSwitchOpcode
/* 56462*/    /*Scope*/ 111|128,1/*239*/, /*->56703*/
/* 56464*/      OPC_MoveChild0,
/* 56465*/      OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(ARMISD::VMOVIMM),// ->56556
/* 56469*/        OPC_MoveChild0,
/* 56470*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56473*/        OPC_MoveParent,
/* 56474*/        OPC_CheckPredicate, 79, // Predicate_NEONimmAllZerosV
/* 56476*/        OPC_MoveParent,
/* 56477*/        OPC_RecordChild1, // #0 = $Vm
/* 56478*/        OPC_SwitchType /*2 cases */, 36, MVT::v2i32,// ->56517
/* 56481*/          OPC_Scope, 17, /*->56500*/ // 2 children in Scope
/* 56483*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56485*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56488*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56491*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32d), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v2i32] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, DPR:{ *:[v2i32] }:$Vm) - Complexity = 10
                      // Dst: (VNEGs32d:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 56500*/          /*Scope*/ 15, /*->56516*/
/* 56501*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56504*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56507*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32d), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v2i32] } (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, DPR:{ *:[v2i32] }:$src) - Complexity = 10
                      // Dst: (VNEGs32d:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src)
/* 56516*/          0, /*End of Scope*/
/* 56517*/        /*SwitchType*/ 36, MVT::v4i32,// ->56555
/* 56519*/          OPC_Scope, 17, /*->56538*/ // 2 children in Scope
/* 56521*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56523*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56526*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56529*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32q), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, QPR:{ *:[v4i32] }:$Vm) - Complexity = 10
                      // Dst: (VNEGs32q:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 56538*/          /*Scope*/ 15, /*->56554*/
/* 56539*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56542*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56545*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32q), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, QPR:{ *:[v4i32] }:$src) - Complexity = 10
                      // Dst: (VNEGs32q:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src)
/* 56554*/          0, /*End of Scope*/
/* 56555*/        0, // EndSwitchType
/* 56556*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::SIGN_EXTEND),// ->56629
/* 56559*/        OPC_RecordChild0, // #0 = $Vn
/* 56560*/        OPC_MoveParent,
/* 56561*/        OPC_MoveChild1,
/* 56562*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 56565*/        OPC_RecordChild0, // #1 = $Vm
/* 56566*/        OPC_MoveParent,
/* 56567*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->56588
/* 56570*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56572*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56575*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56578*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 56588*/        /*SwitchType*/ 18, MVT::v4i32,// ->56608
/* 56590*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56592*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56595*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56598*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 56608*/        /*SwitchType*/ 18, MVT::v2i64,// ->56628
/* 56610*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56612*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56615*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56618*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 56628*/        0, // EndSwitchType
/* 56629*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::ZERO_EXTEND),// ->56702
/* 56632*/        OPC_RecordChild0, // #0 = $Vn
/* 56633*/        OPC_MoveParent,
/* 56634*/        OPC_MoveChild1,
/* 56635*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 56638*/        OPC_RecordChild0, // #1 = $Vm
/* 56639*/        OPC_MoveParent,
/* 56640*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->56661
/* 56643*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56645*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56648*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56651*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 56661*/        /*SwitchType*/ 18, MVT::v4i32,// ->56681
/* 56663*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56665*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56668*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56671*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 56681*/        /*SwitchType*/ 18, MVT::v2i64,// ->56701
/* 56683*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56685*/          OPC_EmitInteger, MVT::i32, 14, 
/* 56688*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56691*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBLuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 9
                    // Dst: (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 56701*/        0, // EndSwitchType
/* 56702*/      0, // EndSwitchOpcode
/* 56703*/    /*Scope*/ 98|128,4/*610*/, /*->57315*/
/* 56705*/      OPC_RecordChild0, // #0 = $src1
/* 56706*/      OPC_Scope, 56|128,3/*440*/, /*->57149*/ // 2 children in Scope
/* 56709*/        OPC_MoveChild1,
/* 56710*/        OPC_SwitchOpcode /*5 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::MUL),// ->56846
/* 56715*/          OPC_RecordChild0, // #1 = $Vn
/* 56716*/          OPC_RecordChild1, // #2 = $Vm
/* 56717*/          OPC_MoveParent,
/* 56718*/          OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->56740
/* 56721*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56723*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56726*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56729*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv8i8), 0,
                          MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 56740*/          /*SwitchType*/ 19, MVT::v4i16,// ->56761
/* 56742*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56744*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56747*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56750*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 56761*/          /*SwitchType*/ 19, MVT::v2i32,// ->56782
/* 56763*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56765*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56768*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56771*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 56782*/          /*SwitchType*/ 19, MVT::v16i8,// ->56803
/* 56784*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56786*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56789*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56792*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv16i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 56803*/          /*SwitchType*/ 19, MVT::v8i16,// ->56824
/* 56805*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56807*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56810*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56813*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 56824*/          /*SwitchType*/ 19, MVT::v4i32,// ->56845
/* 56826*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56828*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56831*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56834*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 56845*/          0, // EndSwitchType
/* 56846*/        /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLs),// ->56930
/* 56849*/          OPC_RecordChild0, // #1 = $Vn
/* 56850*/          OPC_Scope, 25, /*->56877*/ // 3 children in Scope
/* 56852*/            OPC_CheckChild0Type, MVT::v8i8,
/* 56854*/            OPC_RecordChild1, // #2 = $Vm
/* 56855*/            OPC_MoveParent,
/* 56856*/            OPC_CheckType, MVT::v8i16,
/* 56858*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56860*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56863*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56866*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLsv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvmulls:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 56877*/          /*Scope*/ 25, /*->56903*/
/* 56878*/            OPC_CheckChild0Type, MVT::v4i16,
/* 56880*/            OPC_RecordChild1, // #2 = $Vm
/* 56881*/            OPC_MoveParent,
/* 56882*/            OPC_CheckType, MVT::v4i32,
/* 56884*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56886*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56889*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56892*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLsv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 56903*/          /*Scope*/ 25, /*->56929*/
/* 56904*/            OPC_CheckChild0Type, MVT::v2i32,
/* 56906*/            OPC_RecordChild1, // #2 = $Vm
/* 56907*/            OPC_MoveParent,
/* 56908*/            OPC_CheckType, MVT::v2i64,
/* 56910*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56912*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56915*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56918*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLsv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 56929*/          0, /*End of Scope*/
/* 56930*/        /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLu),// ->57014
/* 56933*/          OPC_RecordChild0, // #1 = $Vn
/* 56934*/          OPC_Scope, 25, /*->56961*/ // 3 children in Scope
/* 56936*/            OPC_CheckChild0Type, MVT::v8i8,
/* 56938*/            OPC_RecordChild1, // #2 = $Vm
/* 56939*/            OPC_MoveParent,
/* 56940*/            OPC_CheckType, MVT::v8i16,
/* 56942*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56944*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56947*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56950*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLuv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvmullu:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 56961*/          /*Scope*/ 25, /*->56987*/
/* 56962*/            OPC_CheckChild0Type, MVT::v4i16,
/* 56964*/            OPC_RecordChild1, // #2 = $Vm
/* 56965*/            OPC_MoveParent,
/* 56966*/            OPC_CheckType, MVT::v4i32,
/* 56968*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56970*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56973*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56976*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLuv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 56987*/          /*Scope*/ 25, /*->57013*/
/* 56988*/            OPC_CheckChild0Type, MVT::v2i32,
/* 56990*/            OPC_RecordChild1, // #2 = $Vm
/* 56991*/            OPC_MoveParent,
/* 56992*/            OPC_CheckType, MVT::v2i64,
/* 56994*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56996*/            OPC_EmitInteger, MVT::i32, 14, 
/* 56999*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57002*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSLuv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                      // Dst: (VMLSLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 57013*/          0, /*End of Scope*/
/* 57014*/        /*SwitchOpcode*/ 64, TARGET_VAL(ISD::SIGN_EXTEND),// ->57081
/* 57017*/          OPC_RecordChild0, // #1 = $Vm
/* 57018*/          OPC_MoveParent,
/* 57019*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->57040
/* 57022*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57024*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57027*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57030*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWsv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 57040*/          /*SwitchType*/ 18, MVT::v4i32,// ->57060
/* 57042*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57044*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57047*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57050*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWsv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 57060*/          /*SwitchType*/ 18, MVT::v2i64,// ->57080
/* 57062*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57064*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57067*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57070*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWsv2i64), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 57080*/          0, // EndSwitchType
/* 57081*/        /*SwitchOpcode*/ 64, TARGET_VAL(ISD::ZERO_EXTEND),// ->57148
/* 57084*/          OPC_RecordChild0, // #1 = $Vm
/* 57085*/          OPC_MoveParent,
/* 57086*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->57107
/* 57089*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57091*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57094*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57097*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWuv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 57107*/          /*SwitchType*/ 18, MVT::v4i32,// ->57127
/* 57109*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57111*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57114*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57117*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWuv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 57127*/          /*SwitchType*/ 18, MVT::v2i64,// ->57147
/* 57129*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57131*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57134*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57137*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBWuv2i64), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) - Complexity = 6
                      // Dst: (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 57147*/          0, // EndSwitchType
/* 57148*/        0, // EndSwitchOpcode
/* 57149*/      /*Scope*/ 35|128,1/*163*/, /*->57314*/
/* 57151*/        OPC_RecordChild1, // #1 = $Vm
/* 57152*/        OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->57173
/* 57155*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57157*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57160*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57163*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv8i8), 0,
                        MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 57173*/        /*SwitchType*/ 18, MVT::v4i16,// ->57193
/* 57175*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57177*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57180*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57183*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 57193*/        /*SwitchType*/ 18, MVT::v2i32,// ->57213
/* 57195*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57197*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57200*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57203*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 57213*/        /*SwitchType*/ 18, MVT::v16i8,// ->57233
/* 57215*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57217*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57220*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57223*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 57233*/        /*SwitchType*/ 18, MVT::v8i16,// ->57253
/* 57235*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57237*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57240*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57243*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 57253*/        /*SwitchType*/ 18, MVT::v4i32,// ->57273
/* 57255*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57257*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57260*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57263*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 57273*/        /*SwitchType*/ 18, MVT::v1i64,// ->57293
/* 57275*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57277*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57280*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57283*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv1i64), 0,
                        MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 57293*/        /*SwitchType*/ 18, MVT::v2i64,// ->57313
/* 57295*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57297*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57300*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57303*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                    // Dst: (VSUBv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 57313*/        0, // EndSwitchType
/* 57314*/      0, /*End of Scope*/
/* 57315*/    0, /*End of Scope*/
/* 57316*/  /*SwitchOpcode*/ 121|128,3/*505*/, TARGET_VAL(ARMISD::ADDC),// ->57825
/* 57320*/    OPC_RecordChild0, // #0 = $Rn
/* 57321*/    OPC_RecordChild1, // #1 = $shift
/* 57322*/    OPC_Scope, 21|128,1/*149*/, /*->57474*/ // 3 children in Scope
/* 57325*/      OPC_CheckType, MVT::i32,
/* 57327*/      OPC_Scope, 72, /*->57401*/ // 4 children in Scope
/* 57329*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57331*/        OPC_Scope, 22, /*->57355*/ // 3 children in Scope
/* 57333*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 57336*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57339*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57342*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSrsr), 0,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                    // Dst: (ADDSrsr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 57355*/        /*Scope*/ 22, /*->57378*/
/* 57356*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 57359*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57362*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57365*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSrsr), 0,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                    // Dst: (ADDSrsr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 57378*/        /*Scope*/ 21, /*->57400*/
/* 57379*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 57382*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57385*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57388*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSrsi), 0,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                    // Dst: (ADDSrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 57400*/        0, /*End of Scope*/
/* 57401*/      /*Scope*/ 23, /*->57425*/
/* 57402*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57404*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 57407*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57410*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57413*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADDSrs), 0,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                  // Dst: (t2ADDSrs:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 57425*/      /*Scope*/ 23, /*->57449*/
/* 57426*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57428*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 57431*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57434*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57437*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSrsi), 0,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                  // Dst: (ADDSrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 57449*/      /*Scope*/ 23, /*->57473*/
/* 57450*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 57455*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57458*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57461*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADDSrs), 0,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 12
                  // Dst: (t2ADDSrs:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 57473*/      0, /*End of Scope*/
/* 57474*/    /*Scope*/ 20|128,2/*276*/, /*->57752*/
/* 57476*/      OPC_MoveChild1,
/* 57477*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57480*/      OPC_Scope, 29, /*->57511*/ // 8 children in Scope
/* 57482*/        OPC_CheckPredicate, 17, // Predicate_imm1_255_neg
/* 57484*/        OPC_MoveParent,
/* 57485*/        OPC_CheckType, MVT::i32,
/* 57487*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57489*/        OPC_EmitConvertToTarget, 1,
/* 57491*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 57494*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57497*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57500*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 8
                  // Dst: (t2SUBSri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>>:$imm))
/* 57511*/      /*Scope*/ 26, /*->57538*/
/* 57512*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 57514*/        OPC_MoveParent,
/* 57515*/        OPC_CheckType, MVT::i32,
/* 57517*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57519*/        OPC_EmitConvertToTarget, 1,
/* 57521*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57524*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57527*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (ADDSri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57538*/      /*Scope*/ 29, /*->57568*/
/* 57539*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 57541*/        OPC_MoveParent,
/* 57542*/        OPC_CheckType, MVT::i32,
/* 57544*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57546*/        OPC_EmitConvertToTarget, 1,
/* 57548*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 57551*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57554*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57557*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (SUBSri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>>:$imm))
/* 57568*/      /*Scope*/ 18, /*->57587*/
/* 57569*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 57571*/        OPC_MoveParent,
/* 57572*/        OPC_CheckType, MVT::i32,
/* 57574*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 57576*/        OPC_EmitConvertToTarget, 1,
/* 57578*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tADDSi3), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm3) - Complexity = 7
                  // Dst: (tADDSi3:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm3)
/* 57587*/      /*Scope*/ 18, /*->57606*/
/* 57588*/        OPC_CheckPredicate, 8, // Predicate_imm8_255
/* 57590*/        OPC_MoveParent,
/* 57591*/        OPC_CheckType, MVT::i32,
/* 57593*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 57595*/        OPC_EmitConvertToTarget, 1,
/* 57597*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tADDSi8), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255>>:$imm8) - Complexity = 7
                  // Dst: (tADDSi8:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm8)
/* 57606*/      /*Scope*/ 26, /*->57633*/
/* 57607*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 57609*/        OPC_MoveParent,
/* 57610*/        OPC_CheckType, MVT::i32,
/* 57612*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57614*/        OPC_EmitConvertToTarget, 1,
/* 57616*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57619*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57622*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADDSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                  // Dst: (t2ADDSri:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57633*/      /*Scope*/ 29, /*->57663*/
/* 57634*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 57636*/        OPC_MoveParent,
/* 57637*/        OPC_CheckType, MVT::i32,
/* 57639*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57641*/        OPC_EmitConvertToTarget, 1,
/* 57643*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 57646*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57649*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57652*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>><<X:t2_so_imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2SUBSri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>>:$imm))
/* 57663*/      /*Scope*/ 87, /*->57751*/
/* 57664*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/* 57666*/        OPC_MoveParent,
/* 57667*/        OPC_CheckType, MVT::i32,
/* 57669*/        OPC_Scope, 39, /*->57710*/ // 2 children in Scope
/* 57671*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 57673*/          OPC_EmitConvertToTarget, 1,
/* 57675*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 57678*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57681*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57684*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 57693*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57696*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57699*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrr), 0,
                        MVT::i32, MVT::i32, 4/*#Ops*/, 0, 6, 7, 8, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm) - Complexity = 7
                    // Dst: (SUBSrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (MOVi16:{ *:[i32] } (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/* 57710*/        /*Scope*/ 39, /*->57750*/
/* 57711*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57713*/          OPC_EmitConvertToTarget, 1,
/* 57715*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 57718*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57721*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57724*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 57733*/          OPC_EmitInteger, MVT::i32, 14, 
/* 57736*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57739*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSrr), 0,
                        MVT::i32, MVT::i32, 4/*#Ops*/, 0, 6, 7, 8, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm) - Complexity = 7
                    // Dst: (t2SUBSrr:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2MOVi16:{ *:[i32] } (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/* 57750*/        0, /*End of Scope*/
/* 57751*/      0, /*End of Scope*/
/* 57752*/    /*Scope*/ 71, /*->57824*/
/* 57753*/      OPC_CheckType, MVT::i32,
/* 57755*/      OPC_Scope, 19, /*->57776*/ // 3 children in Scope
/* 57757*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57759*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57762*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57765*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::ADDSrr), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (ADDSrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 57776*/      /*Scope*/ 11, /*->57788*/
/* 57777*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 57779*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tADDSrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (tADDSrr:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 57788*/      /*Scope*/ 34, /*->57823*/
/* 57789*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57791*/        OPC_EmitInteger, MVT::i32, 14, 
/* 57794*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57797*/        OPC_Scope, 11, /*->57810*/ // 2 children in Scope
/* 57799*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADDSrr), 0,
                        MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2ADDSrr:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 57810*/        /*Scope*/ 11, /*->57822*/
/* 57811*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADDSrr), 0,
                        MVT::i32, MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (ARMaddc:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (t2ADDSrr:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 57822*/        0, /*End of Scope*/
/* 57823*/      0, /*End of Scope*/
/* 57824*/    0, /*End of Scope*/
/* 57825*/  /*SwitchOpcode*/ 0|128,3/*384*/, TARGET_VAL(ARMISD::SUBC),// ->58213
/* 57829*/    OPC_RecordChild0, // #0 = $Rn
/* 57830*/    OPC_Scope, 56|128,1/*184*/, /*->58017*/ // 5 children in Scope
/* 57833*/      OPC_RecordChild1, // #1 = $shift
/* 57834*/      OPC_Scope, 20|128,1/*148*/, /*->57985*/ // 2 children in Scope
/* 57837*/        OPC_CheckType, MVT::i32,
/* 57839*/        OPC_Scope, 94, /*->57935*/ // 2 children in Scope
/* 57841*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57843*/          OPC_Scope, 22, /*->57867*/ // 4 children in Scope
/* 57845*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 57848*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57851*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57854*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrsr), 0,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                      // Dst: (SUBSrsr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 57867*/          /*Scope*/ 22, /*->57890*/
/* 57868*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 57871*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57874*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57877*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::RSBSrsr), 0,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 15
                      // Dst: (RSBSrsr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 57890*/          /*Scope*/ 21, /*->57912*/
/* 57891*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 57894*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57897*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57900*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrsi), 0,
                          MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                      // Dst: (SUBSrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 57912*/          /*Scope*/ 21, /*->57934*/
/* 57913*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 57916*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57919*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57922*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::RSBSrsi), 0,
                          MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (RSBSrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 57934*/          0, /*End of Scope*/
/* 57935*/        /*Scope*/ 48, /*->57984*/
/* 57936*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 57938*/          OPC_Scope, 21, /*->57961*/ // 2 children in Scope
/* 57940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 57943*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57946*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57949*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSrs), 0,
                          MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                      // Dst: (t2SUBSrs:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 57961*/          /*Scope*/ 21, /*->57983*/
/* 57962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 57965*/            OPC_EmitInteger, MVT::i32, 14, 
/* 57968*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57971*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::t2RSBSrs), 0,
                          MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } t2_so_reg:{ *:[i32] }:$ShiftedRm, rGPR:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (t2RSBSrs:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 57983*/          0, /*End of Scope*/
/* 57984*/        0, /*End of Scope*/
/* 57985*/      /*Scope*/ 30, /*->58016*/
/* 57986*/        OPC_MoveChild1,
/* 57987*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57990*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 57992*/        OPC_MoveParent,
/* 57993*/        OPC_CheckType, MVT::i32,
/* 57995*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 57997*/        OPC_EmitConvertToTarget, 1,
/* 57999*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58002*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58005*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (SUBSri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58016*/      0, /*End of Scope*/
/* 58017*/    /*Scope*/ 31, /*->58049*/
/* 58018*/      OPC_MoveChild0,
/* 58019*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58022*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 58024*/      OPC_MoveParent,
/* 58025*/      OPC_RecordChild1, // #1 = $Rn
/* 58026*/      OPC_CheckType, MVT::i32,
/* 58028*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58030*/      OPC_EmitConvertToTarget, 0,
/* 58032*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58035*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58038*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::RSBSri), 0,
                    MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn) - Complexity = 7
                // Dst: (RSBSri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58049*/    /*Scope*/ 72, /*->58122*/
/* 58050*/      OPC_RecordChild1, // #1 = $imm3
/* 58051*/      OPC_MoveChild1,
/* 58052*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58055*/      OPC_Scope, 18, /*->58075*/ // 3 children in Scope
/* 58057*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 58059*/        OPC_MoveParent,
/* 58060*/        OPC_CheckType, MVT::i32,
/* 58062*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 58064*/        OPC_EmitConvertToTarget, 1,
/* 58066*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSi3), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm3) - Complexity = 7
                  // Dst: (tSUBSi3:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm3)
/* 58075*/      /*Scope*/ 18, /*->58094*/
/* 58076*/        OPC_CheckPredicate, 8, // Predicate_imm8_255
/* 58078*/        OPC_MoveParent,
/* 58079*/        OPC_CheckType, MVT::i32,
/* 58081*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 58083*/        OPC_EmitConvertToTarget, 1,
/* 58085*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSi8), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm8_255>>:$imm8) - Complexity = 7
                  // Dst: (tSUBSi8:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm8)
/* 58094*/      /*Scope*/ 26, /*->58121*/
/* 58095*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 58097*/        OPC_MoveParent,
/* 58098*/        OPC_CheckType, MVT::i32,
/* 58100*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58102*/        OPC_EmitConvertToTarget, 1,
/* 58104*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58110*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSri), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                  // Dst: (t2SUBSri:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58121*/      0, /*End of Scope*/
/* 58122*/    /*Scope*/ 31, /*->58154*/
/* 58123*/      OPC_MoveChild0,
/* 58124*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58127*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 58129*/      OPC_MoveParent,
/* 58130*/      OPC_RecordChild1, // #1 = $Rn
/* 58131*/      OPC_CheckType, MVT::i32,
/* 58133*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58135*/      OPC_EmitConvertToTarget, 0,
/* 58137*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58140*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58143*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2RSBSri), 0,
                    MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, rGPR:{ *:[i32] }:$Rn) - Complexity = 7
                // Dst: (t2RSBSri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58154*/    /*Scope*/ 57, /*->58212*/
/* 58155*/      OPC_RecordChild1, // #1 = $Rm
/* 58156*/      OPC_CheckType, MVT::i32,
/* 58158*/      OPC_Scope, 19, /*->58179*/ // 3 children in Scope
/* 58160*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58162*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58165*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58168*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrr), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (SUBSrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 58179*/      /*Scope*/ 11, /*->58191*/
/* 58180*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 58182*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (tSUBSrr:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 58191*/      /*Scope*/ 19, /*->58211*/
/* 58192*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58194*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58197*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58200*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSrr), 0,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (t2SUBSrr:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 58211*/      0, /*End of Scope*/
/* 58212*/    0, /*End of Scope*/
/* 58213*/  /*SwitchOpcode*/ 91|128,3/*475*/, TARGET_VAL(ARMISD::ADDE),// ->58692
/* 58217*/    OPC_RecordChild0, // #0 = $Rn
/* 58218*/    OPC_RecordChild1, // #1 = $shift
/* 58219*/    OPC_Scope, 100, /*->58321*/ // 3 children in Scope
/* 58221*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 58222*/      OPC_CheckType, MVT::i32,
/* 58224*/      OPC_Scope, 63, /*->58289*/ // 2 children in Scope
/* 58226*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58228*/        OPC_Scope, 29, /*->58259*/ // 2 children in Scope
/* 58230*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 58233*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58236*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58239*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58242*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58245*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::ADCrsr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                    // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift, CPSR:{ *:[i32] }) - Complexity = 15
                    // Dst: (ADCrsr:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 58259*/        /*Scope*/ 28, /*->58288*/
/* 58260*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 58263*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58266*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58269*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58272*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58275*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::ADCrsi), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift, CPSR:{ *:[i32] }) - Complexity = 12
                    // Dst: (ADCrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 58288*/        0, /*End of Scope*/
/* 58289*/      /*Scope*/ 30, /*->58320*/
/* 58290*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58292*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #3 #4
/* 58295*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58298*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58301*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58304*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58307*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADCrs), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm, CPSR:{ *:[i32] }) - Complexity = 12
                  // Dst: (t2ADCrs:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 58320*/      0, /*End of Scope*/
/* 58321*/    /*Scope*/ 37|128,2/*293*/, /*->58616*/
/* 58323*/      OPC_MoveChild1,
/* 58324*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58327*/      OPC_Scope, 37, /*->58366*/ // 6 children in Scope
/* 58329*/        OPC_CheckPredicate, 80, // Predicate_imm0_255_not
/* 58331*/        OPC_MoveParent,
/* 58332*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58333*/        OPC_CheckType, MVT::i32,
/* 58335*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58337*/        OPC_EmitConvertToTarget, 1,
/* 58339*/        OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 58342*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58345*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58348*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58351*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58354*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_255_not>><<X:imm_not_XFORM>>:$imm, CPSR:{ *:[i32] }) - Complexity = 8
                  // Dst: (t2SBCri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255_not>>:$imm))
/* 58366*/      /*Scope*/ 34, /*->58401*/
/* 58367*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 58369*/        OPC_MoveParent,
/* 58370*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58371*/        OPC_CheckType, MVT::i32,
/* 58373*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58375*/        OPC_EmitConvertToTarget, 1,
/* 58377*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58380*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58383*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58386*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58389*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::ADCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (ADCri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58401*/      /*Scope*/ 37, /*->58439*/
/* 58402*/        OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 58404*/        OPC_MoveParent,
/* 58405*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58406*/        OPC_CheckType, MVT::i32,
/* 58408*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58410*/        OPC_EmitConvertToTarget, 1,
/* 58412*/        OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 58415*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58418*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58421*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58424*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58427*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (SBCri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>>:$imm))
/* 58439*/      /*Scope*/ 34, /*->58474*/
/* 58440*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 58442*/        OPC_MoveParent,
/* 58443*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58444*/        OPC_CheckType, MVT::i32,
/* 58446*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58448*/        OPC_EmitConvertToTarget, 1,
/* 58450*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58453*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58456*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58459*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58462*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (t2ADCri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58474*/      /*Scope*/ 37, /*->58512*/
/* 58475*/        OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 58477*/        OPC_MoveParent,
/* 58478*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58479*/        OPC_CheckType, MVT::i32,
/* 58481*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58483*/        OPC_EmitConvertToTarget, 1,
/* 58485*/        OPC_EmitNodeXForm, 1, 3, // t2_so_imm_not_XFORM
/* 58488*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58491*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58494*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58497*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58500*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>><<X:t2_so_imm_not_XFORM>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (t2SBCri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>>:$imm))
/* 58512*/      /*Scope*/ 102, /*->58615*/
/* 58513*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/* 58515*/        OPC_MoveParent,
/* 58516*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58517*/        OPC_CheckType, MVT::i32,
/* 58519*/        OPC_Scope, 46, /*->58567*/ // 2 children in Scope
/* 58521*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 58523*/          OPC_EmitConvertToTarget, 1,
/* 58525*/          OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 58528*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58531*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58534*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 58543*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58546*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58549*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58552*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58555*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCrr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 7, 8, 9, 10, 
                    // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                    // Dst: (SBCrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src, (MOVi16:{ *:[i32] } (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/* 58567*/        /*Scope*/ 46, /*->58614*/
/* 58568*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58570*/          OPC_EmitConvertToTarget, 1,
/* 58572*/          OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 58575*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58578*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58581*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 58590*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58593*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58596*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58599*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58602*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCrr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 7, 8, 9, 10, 
                    // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                    // Dst: (t2SBCrr:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2MOVi16:{ *:[i32] } (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/* 58614*/        0, /*End of Scope*/
/* 58615*/      0, /*End of Scope*/
/* 58616*/    /*Scope*/ 74, /*->58691*/
/* 58617*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 58618*/      OPC_CheckType, MVT::i32,
/* 58620*/      OPC_Scope, 26, /*->58648*/ // 3 children in Scope
/* 58622*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58624*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58630*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58633*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58636*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::ADCrr), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                  // Dst: (ADCrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 58648*/      /*Scope*/ 14, /*->58663*/
/* 58649*/        OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 58651*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58654*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tADCS), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                  // Dst: (tADCS:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 58663*/      /*Scope*/ 26, /*->58690*/
/* 58664*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58666*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58669*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58672*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58675*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58678*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2ADCrr), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (ARMadde:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                  // Dst: (t2ADCrr:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 58690*/      0, /*End of Scope*/
/* 58691*/    0, /*End of Scope*/
/* 58692*/  /*SwitchOpcode*/ 110|128,2/*366*/, TARGET_VAL(ARMISD::SUBE),// ->59062
/* 58696*/    OPC_RecordChild0, // #0 = $Rn
/* 58697*/    OPC_Scope, 75|128,1/*203*/, /*->58903*/ // 3 children in Scope
/* 58700*/      OPC_RecordChild1, // #1 = $shift
/* 58701*/      OPC_Scope, 31|128,1/*159*/, /*->58863*/ // 2 children in Scope
/* 58704*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58705*/        OPC_CheckType, MVT::i32,
/* 58707*/        OPC_Scope, 122, /*->58831*/ // 2 children in Scope
/* 58709*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58711*/          OPC_Scope, 29, /*->58742*/ // 4 children in Scope
/* 58713*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 58716*/            OPC_EmitInteger, MVT::i32, 14, 
/* 58719*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58722*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58725*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58728*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCrsr), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift, CPSR:{ *:[i32] }) - Complexity = 15
                      // Dst: (SBCrsr:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 58742*/          /*Scope*/ 29, /*->58772*/
/* 58743*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #3 #4 #5
/* 58746*/            OPC_EmitInteger, MVT::i32, 14, 
/* 58749*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58752*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58755*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58758*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::RSCrsr), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 7/*#Ops*/, 1, 3, 4, 5, 6, 7, 8, 
                      // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } so_reg_reg:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn, CPSR:{ *:[i32] }) - Complexity = 15
                      // Dst: (RSCrsr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 58772*/          /*Scope*/ 28, /*->58801*/
/* 58773*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 58776*/            OPC_EmitInteger, MVT::i32, 14, 
/* 58779*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58782*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58785*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58788*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCrsi), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift, CPSR:{ *:[i32] }) - Complexity = 12
                      // Dst: (SBCrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 58801*/          /*Scope*/ 28, /*->58830*/
/* 58802*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #3 #4
/* 58805*/            OPC_EmitInteger, MVT::i32, 14, 
/* 58808*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58811*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58814*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58817*/            OPC_MorphNodeTo2, TARGET_VAL(ARM::RSCrsi), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                      // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } so_reg_imm:{ *:[i32] }:$shift, GPR:{ *:[i32] }:$Rn, CPSR:{ *:[i32] }) - Complexity = 12
                      // Dst: (RSCrsi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 58830*/          0, /*End of Scope*/
/* 58831*/        /*Scope*/ 30, /*->58862*/
/* 58832*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58834*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #3 #4
/* 58837*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58840*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58843*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58846*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58849*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCrs), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm, CPSR:{ *:[i32] }) - Complexity = 12
                    // Dst: (t2SBCrs:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 58862*/        0, /*End of Scope*/
/* 58863*/      /*Scope*/ 38, /*->58902*/
/* 58864*/        OPC_MoveChild1,
/* 58865*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58868*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 58870*/        OPC_MoveParent,
/* 58871*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58872*/        OPC_CheckType, MVT::i32,
/* 58874*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58876*/        OPC_EmitConvertToTarget, 1,
/* 58878*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58881*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58884*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58887*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58890*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (SBCri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58902*/      0, /*End of Scope*/
/* 58903*/    /*Scope*/ 39, /*->58943*/
/* 58904*/      OPC_MoveChild0,
/* 58905*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58908*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 58910*/      OPC_MoveParent,
/* 58911*/      OPC_RecordChild1, // #1 = $Rn
/* 58912*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 58913*/      OPC_CheckType, MVT::i32,
/* 58915*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58917*/      OPC_EmitConvertToTarget, 0,
/* 58919*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58922*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58925*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58928*/      OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58931*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::RSCri), 0|OPFL_GlueInput,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 1, 3, 4, 5, 6, 
                // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn, CPSR:{ *:[i32] }) - Complexity = 7
                // Dst: (RSCri:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58943*/    /*Scope*/ 117, /*->59061*/
/* 58944*/      OPC_RecordChild1, // #1 = $imm
/* 58945*/      OPC_Scope, 38, /*->58985*/ // 2 children in Scope
/* 58947*/        OPC_MoveChild1,
/* 58948*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58951*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 58953*/        OPC_MoveParent,
/* 58954*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58955*/        OPC_CheckType, MVT::i32,
/* 58957*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 58959*/        OPC_EmitConvertToTarget, 1,
/* 58961*/        OPC_EmitInteger, MVT::i32, 14, 
/* 58964*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58967*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58970*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 58973*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCri), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, CPSR:{ *:[i32] }) - Complexity = 7
                  // Dst: (t2SBCri:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58985*/      /*Scope*/ 74, /*->59060*/
/* 58986*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 58987*/        OPC_CheckType, MVT::i32,
/* 58989*/        OPC_Scope, 26, /*->59017*/ // 3 children in Scope
/* 58991*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 58993*/          OPC_EmitInteger, MVT::i32, 14, 
/* 58996*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58999*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59002*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 59005*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::SBCrr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                    // Dst: (SBCrr:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 59017*/        /*Scope*/ 14, /*->59032*/
/* 59018*/          OPC_CheckPatternPredicate, 54, // (Subtarget->isThumb1Only())
/* 59020*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 59023*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::tSBCS), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                    // Dst: (tSBCS:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 59032*/        /*Scope*/ 26, /*->59059*/
/* 59033*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59035*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59038*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59041*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59044*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 59047*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SBCrr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (ARMsube:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, CPSR:{ *:[i32] }) - Complexity = 3
                    // Dst: (t2SBCrr:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 59059*/        0, /*End of Scope*/
/* 59060*/      0, /*End of Scope*/
/* 59061*/    0, /*End of Scope*/
/* 59062*/  /*SwitchOpcode*/ 12|128,2/*268*/, TARGET_VAL(ARMISD::CMP),// ->59334
/* 59066*/    OPC_RecordChild0, // #0 = $Rn
/* 59067*/    OPC_CheckChild0Type, MVT::i32,
/* 59069*/    OPC_RecordChild1, // #1 = $shift
/* 59070*/    OPC_Scope, 47, /*->59119*/ // 6 children in Scope
/* 59072*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59074*/      OPC_Scope, 21, /*->59097*/ // 2 children in Scope
/* 59076*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 59079*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59082*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59085*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsr), 0|OPFL_GlueOutput,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (ARMcmp GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                  // Dst: (CMPrsr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 59097*/      /*Scope*/ 20, /*->59118*/
/* 59098*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 59101*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59107*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrsi), 0|OPFL_GlueOutput,
                      MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMcmp GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                  // Dst: (CMPrsi:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 59118*/      0, /*End of Scope*/
/* 59119*/    /*Scope*/ 22, /*->59142*/
/* 59120*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59122*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 59125*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59128*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59131*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrs), 0|OPFL_GlueOutput,
                    MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMcmp GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                // Dst: (t2CMPrs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 59142*/    /*Scope*/ 4|128,1/*132*/, /*->59276*/
/* 59144*/      OPC_MoveChild1,
/* 59145*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59148*/      OPC_Scope, 23, /*->59173*/ // 5 children in Scope
/* 59150*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 59152*/        OPC_MoveParent,
/* 59153*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59155*/        OPC_EmitConvertToTarget, 1,
/* 59157*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59160*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59163*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPri), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMcmp GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (CMPri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 59173*/      /*Scope*/ 26, /*->59200*/
/* 59174*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 59176*/        OPC_MoveParent,
/* 59177*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59179*/        OPC_EmitConvertToTarget, 1,
/* 59181*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 59184*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59187*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59190*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNri), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (ARMcmp GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (CMNri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_neg>>:$imm))
/* 59200*/      /*Scope*/ 23, /*->59224*/
/* 59201*/        OPC_CheckPredicate, 49, // Predicate_imm0_255
/* 59203*/        OPC_MoveParent,
/* 59204*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59206*/        OPC_EmitConvertToTarget, 1,
/* 59208*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59211*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59214*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMPi8), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMcmp tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                  // Dst: (tCMPi8:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm8)
/* 59224*/      /*Scope*/ 23, /*->59248*/
/* 59225*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 59227*/        OPC_MoveParent,
/* 59228*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59230*/        OPC_EmitConvertToTarget, 1,
/* 59232*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59235*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59238*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPri), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMcmp GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                  // Dst: (t2CMPri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 59248*/      /*Scope*/ 26, /*->59275*/
/* 59249*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 59251*/        OPC_MoveParent,
/* 59252*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59254*/        OPC_EmitConvertToTarget, 1,
/* 59256*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 59259*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59262*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59265*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNri), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (ARMcmp GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>><<X:t2_so_imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2CMNri:{ *:[i32] } GPR:{ *:[i32] }:$src, (t2_so_imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>>:$imm))
/* 59275*/      0, /*End of Scope*/
/* 59276*/    /*Scope*/ 18, /*->59295*/
/* 59277*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59279*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59282*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59285*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::CMPrr), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMcmp GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (CMPrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 59295*/    /*Scope*/ 18, /*->59314*/
/* 59296*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59298*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59301*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59304*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tCMPr), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMcmp tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (tCMPr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 59314*/    /*Scope*/ 18, /*->59333*/
/* 59315*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59317*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59320*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59323*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMPrr), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMcmp GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2CMPrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 59333*/    0, /*End of Scope*/
/* 59334*/  /*SwitchOpcode*/ 70, TARGET_VAL(ARMISD::CMN),// ->59407
/* 59337*/    OPC_RecordChild0, // #0 = $Rn
/* 59338*/    OPC_CheckChild0Type, MVT::i32,
/* 59340*/    OPC_Scope, 35, /*->59377*/ // 2 children in Scope
/* 59342*/      OPC_MoveChild1,
/* 59343*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 59346*/      OPC_CheckChild0Integer, 0, 
/* 59348*/      OPC_RecordChild1, // #1 = $imm
/* 59349*/      OPC_MoveChild1,
/* 59350*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59353*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 59355*/      OPC_MoveParent,
/* 59356*/      OPC_MoveParent,
/* 59357*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59359*/      OPC_EmitConvertToTarget, 1,
/* 59361*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59364*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59367*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CMNri), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMcmn GPRnopc:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) - Complexity = 15
                // Dst: (t2CMNri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 59377*/    /*Scope*/ 28, /*->59406*/
/* 59378*/      OPC_RecordChild1, // #1 = $imm
/* 59379*/      OPC_MoveChild1,
/* 59380*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59383*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 59385*/      OPC_MoveParent,
/* 59386*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59388*/      OPC_EmitConvertToTarget, 1,
/* 59390*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59393*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59396*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::CMNri), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMcmn GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                // Dst: (CMNri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 59406*/    0, /*End of Scope*/
/* 59407*/  /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::SHL),// ->59595
/* 59411*/    OPC_Scope, 56, /*->59469*/ // 2 children in Scope
/* 59413*/      OPC_RecordNode, // #0 = $src
/* 59414*/      OPC_CheckType, MVT::i32,
/* 59416*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 59418*/      OPC_Scope, 24, /*->59444*/ // 2 children in Scope
/* 59420*/        OPC_CheckComplexPat, /*CP*/8, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 59423*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59426*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59429*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59432*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsr), 0,
                      MVT::i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: shift_so_reg_reg:{ *:[i32] }:$src - Complexity = 12
                  // Dst: (MOVsr:{ *:[i32] } shift_so_reg_reg:{ *:[i32] }:$src)
/* 59444*/      /*Scope*/ 23, /*->59468*/
/* 59445*/        OPC_CheckComplexPat, /*CP*/9, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 59448*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59451*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59454*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59457*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVsi), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: shift_so_reg_imm:{ *:[i32] }:$src - Complexity = 9
                  // Dst: (MOVsi:{ *:[i32] } shift_so_reg_imm:{ *:[i32] }:$src)
/* 59468*/      0, /*End of Scope*/
/* 59469*/    /*Scope*/ 124, /*->59594*/
/* 59470*/      OPC_RecordChild0, // #0 = $Rm
/* 59471*/      OPC_RecordChild1, // #1 = $imm
/* 59472*/      OPC_Scope, 66, /*->59540*/ // 2 children in Scope
/* 59474*/        OPC_MoveChild1,
/* 59475*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59478*/        OPC_CheckType, MVT::i32,
/* 59480*/        OPC_Scope, 29, /*->59511*/ // 2 children in Scope
/* 59482*/          OPC_CheckPredicate, 81, // Predicate_imm1_31
/* 59484*/          OPC_MoveParent,
/* 59485*/          OPC_CheckType, MVT::i32,
/* 59487*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59489*/          OPC_EmitConvertToTarget, 1,
/* 59491*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59494*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59497*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59500*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LSLri), 0,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) - Complexity = 7
                    // Dst: (t2LSLri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 59511*/        /*Scope*/ 27, /*->59539*/
/* 59512*/          OPC_MoveParent,
/* 59513*/          OPC_CheckType, MVT::i32,
/* 59515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59517*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 59520*/          OPC_EmitConvertToTarget, 1,
/* 59522*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59525*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59528*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLSLri), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (shl:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm5) - Complexity = 6
                    // Dst: (tLSLri:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm5)
/* 59539*/        0, /*End of Scope*/
/* 59540*/      /*Scope*/ 52, /*->59593*/
/* 59541*/        OPC_CheckChild1Type, MVT::i32,
/* 59543*/        OPC_CheckType, MVT::i32,
/* 59545*/        OPC_Scope, 22, /*->59569*/ // 2 children in Scope
/* 59547*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59549*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 59552*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59555*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59558*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tLSLrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (shl:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (tLSLrr:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm)
/* 59569*/        /*Scope*/ 22, /*->59592*/
/* 59570*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59572*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59575*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59578*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59581*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LSLrr), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (t2LSLrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 59592*/        0, /*End of Scope*/
/* 59593*/      0, /*End of Scope*/
/* 59594*/    0, /*End of Scope*/
/* 59595*/  /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ATOMIC_FENCE),// ->59616
/* 59598*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
/* 59599*/    OPC_RecordChild1, // #1 = $ordering
/* 59600*/    OPC_MoveChild1,
/* 59601*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59604*/    OPC_MoveParent,
/* 59605*/    OPC_CheckChild2Integer, 0, 
/* 59607*/    OPC_EmitMergeInputChains1_0,
/* 59608*/    OPC_EmitConvertToTarget, 1,
/* 59610*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::CompilerBarrier), 0|OPFL_Chain,
                  1/*#Ops*/, 2, 
              // Src: (atomic_fence (imm:{ *:[iPTR] }):$ordering, 0:{ *:[iPTR] }) - Complexity = 11
              // Dst: (CompilerBarrier (imm:{ *:[i32] }):$ordering)
/* 59616*/  /*SwitchOpcode*/ 16|128,2/*272*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->59892
/* 59620*/    OPC_Scope, 127, /*->59749*/ // 2 children in Scope
/* 59622*/      OPC_MoveChild0,
/* 59623*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 59626*/      OPC_RecordChild0, // #0 = $Rm
/* 59627*/      OPC_RecordChild1, // #1 = $rot
/* 59628*/      OPC_MoveChild1,
/* 59629*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59632*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 59634*/      OPC_CheckType, MVT::i32,
/* 59636*/      OPC_MoveParent,
/* 59637*/      OPC_MoveParent,
/* 59638*/      OPC_MoveChild1,
/* 59639*/      OPC_Scope, 53, /*->59694*/ // 2 children in Scope
/* 59641*/        OPC_CheckValueType, MVT::i8,
/* 59643*/        OPC_MoveParent,
/* 59644*/        OPC_Scope, 23, /*->59669*/ // 2 children in Scope
/* 59646*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 59648*/          OPC_EmitConvertToTarget, 1,
/* 59650*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 59653*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59656*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59659*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }) - Complexity = 10
                    // Dst: (SXTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/* 59669*/        /*Scope*/ 23, /*->59693*/
/* 59670*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59672*/          OPC_EmitConvertToTarget, 1,
/* 59674*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 59677*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59680*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59683*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i8:{ *:[Other] }) - Complexity = 10
                    // Dst: (t2SXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 59693*/        0, /*End of Scope*/
/* 59694*/      /*Scope*/ 53, /*->59748*/
/* 59695*/        OPC_CheckValueType, MVT::i16,
/* 59697*/        OPC_MoveParent,
/* 59698*/        OPC_Scope, 23, /*->59723*/ // 2 children in Scope
/* 59700*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 59702*/          OPC_EmitConvertToTarget, 1,
/* 59704*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 59707*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59710*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59713*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTH), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] }) - Complexity = 10
                    // Dst: (SXTH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$rot))
/* 59723*/        /*Scope*/ 23, /*->59747*/
/* 59724*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59726*/          OPC_EmitConvertToTarget, 1,
/* 59728*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 59731*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59734*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59737*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTH), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (sext_inreg:{ *:[i32] } (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot), i16:{ *:[Other] }) - Complexity = 10
                    // Dst: (t2SXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 59747*/        0, /*End of Scope*/
/* 59748*/      0, /*End of Scope*/
/* 59749*/    /*Scope*/ 12|128,1/*140*/, /*->59891*/
/* 59751*/      OPC_RecordChild0, // #0 = $Src
/* 59752*/      OPC_MoveChild1,
/* 59753*/      OPC_Scope, 67, /*->59822*/ // 2 children in Scope
/* 59755*/        OPC_CheckValueType, MVT::i8,
/* 59757*/        OPC_MoveParent,
/* 59758*/        OPC_Scope, 21, /*->59781*/ // 3 children in Scope
/* 59760*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 59762*/          OPC_EmitInteger, MVT::i32, 0, 
/* 59765*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59768*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59771*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Src, i8:{ *:[Other] }) - Complexity = 3
                    // Dst: (SXTB:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 59781*/        /*Scope*/ 17, /*->59799*/
/* 59782*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59784*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59787*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59790*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSXTB), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, i8:{ *:[Other] }) - Complexity = 3
                    // Dst: (tSXTB:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 59799*/        /*Scope*/ 21, /*->59821*/
/* 59800*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59802*/          OPC_EmitInteger, MVT::i32, 0, 
/* 59805*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59808*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59811*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Src, i8:{ *:[Other] }) - Complexity = 3
                    // Dst: (t2SXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 59821*/        0, /*End of Scope*/
/* 59822*/      /*Scope*/ 67, /*->59890*/
/* 59823*/        OPC_CheckValueType, MVT::i16,
/* 59825*/        OPC_MoveParent,
/* 59826*/        OPC_Scope, 21, /*->59849*/ // 3 children in Scope
/* 59828*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 59830*/          OPC_EmitInteger, MVT::i32, 0, 
/* 59833*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59836*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59839*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTH), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$Src, i16:{ *:[Other] }) - Complexity = 3
                    // Dst: (SXTH:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 59849*/        /*Scope*/ 17, /*->59867*/
/* 59850*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59852*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59855*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59858*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSXTH), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }) - Complexity = 3
                    // Dst: (tSXTH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 59867*/        /*Scope*/ 21, /*->59889*/
/* 59868*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 59870*/          OPC_EmitInteger, MVT::i32, 0, 
/* 59873*/          OPC_EmitInteger, MVT::i32, 14, 
/* 59876*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59879*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTH), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Src, i16:{ *:[Other] }) - Complexity = 3
                    // Dst: (t2SXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 59889*/        0, /*End of Scope*/
/* 59890*/      0, /*End of Scope*/
/* 59891*/    0, /*End of Scope*/
/* 59892*/  /*SwitchOpcode*/ 58, TARGET_VAL(ISD::CALLSEQ_END),// ->59953
/* 59895*/    OPC_RecordNode, // #0 = 'ARMcallseq_end' chained node
/* 59896*/    OPC_CaptureGlueInput,
/* 59897*/    OPC_RecordChild1, // #1 = $amt1
/* 59898*/    OPC_MoveChild1,
/* 59899*/    OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::TargetConstant),// ->59927
/* 59903*/      OPC_MoveParent,
/* 59904*/      OPC_RecordChild2, // #2 = $amt2
/* 59905*/      OPC_MoveChild2,
/* 59906*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59909*/      OPC_MoveParent,
/* 59910*/      OPC_EmitMergeInputChains1_0,
/* 59911*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59914*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59917*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (ARMcallseq_end (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (ADJCALLSTACKUP:{ *:[i32] } (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
/* 59927*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::Constant),// ->59952
/* 59930*/      OPC_MoveParent,
/* 59931*/      OPC_RecordChild2, // #2 = $amt2
/* 59932*/      OPC_MoveChild2,
/* 59933*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59936*/      OPC_MoveParent,
/* 59937*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59939*/      OPC_EmitMergeInputChains1_0,
/* 59940*/      OPC_EmitConvertToTarget, 1,
/* 59942*/      OPC_EmitConvertToTarget, 2,
/* 59944*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 2/*#Ops*/, 3, 4, 
                // Src: (ARMcallseq_end (imm:{ *:[i32] }):$amt1, (imm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (tADJCALLSTACKUP:{ *:[i32] } (imm:{ *:[i32] }):$amt1, (imm:{ *:[i32] }):$amt2)
/* 59952*/    0, // EndSwitchOpcode
/* 59953*/  /*SwitchOpcode*/ 57, TARGET_VAL(ISD::CALLSEQ_START),// ->60013
/* 59956*/    OPC_RecordNode, // #0 = 'ARMcallseq_start' chained node
/* 59957*/    OPC_RecordChild1, // #1 = $amt
/* 59958*/    OPC_MoveChild1,
/* 59959*/    OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::TargetConstant),// ->59987
/* 59963*/      OPC_MoveParent,
/* 59964*/      OPC_RecordChild2, // #2 = $amt2
/* 59965*/      OPC_MoveChild2,
/* 59966*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59969*/      OPC_MoveParent,
/* 59970*/      OPC_EmitMergeInputChains1_0,
/* 59971*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59974*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59977*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (ARMcallseq_start (timm:{ *:[i32] }):$amt, (timm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (ADJCALLSTACKDOWN:{ *:[i32] } (timm:{ *:[i32] }):$amt, (timm:{ *:[i32] }):$amt2)
/* 59987*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::Constant),// ->60012
/* 59990*/      OPC_MoveParent,
/* 59991*/      OPC_RecordChild2, // #2 = $amt2
/* 59992*/      OPC_MoveChild2,
/* 59993*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59996*/      OPC_MoveParent,
/* 59997*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 59999*/      OPC_EmitMergeInputChains1_0,
/* 60000*/      OPC_EmitConvertToTarget, 1,
/* 60002*/      OPC_EmitConvertToTarget, 2,
/* 60004*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i32, 2/*#Ops*/, 3, 4, 
                // Src: (ARMcallseq_start (imm:{ *:[i32] }):$amt, (imm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (tADJCALLSTACKDOWN:{ *:[i32] } (imm:{ *:[i32] }):$amt, (imm:{ *:[i32] }):$amt2)
/* 60012*/    0, // EndSwitchOpcode
/* 60013*/  /*SwitchOpcode*/ 30, TARGET_VAL(ARMISD::COPY_STRUCT_BYVAL),// ->60046
/* 60016*/    OPC_RecordNode, // #0 = 'ARMcopystructbyval' chained node
/* 60017*/    OPC_CaptureGlueInput,
/* 60018*/    OPC_RecordChild1, // #1 = $dst
/* 60019*/    OPC_RecordChild2, // #2 = $src
/* 60020*/    OPC_RecordChild3, // #3 = $size
/* 60021*/    OPC_MoveChild3,
/* 60022*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60025*/    OPC_MoveParent,
/* 60026*/    OPC_RecordChild4, // #4 = $alignment
/* 60027*/    OPC_MoveChild4,
/* 60028*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60031*/    OPC_MoveParent,
/* 60032*/    OPC_EmitMergeInputChains1_0,
/* 60033*/    OPC_EmitConvertToTarget, 3,
/* 60035*/    OPC_EmitConvertToTarget, 4,
/* 60037*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::COPY_STRUCT_BYVAL_I32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  4/*#Ops*/, 1, 2, 5, 6, 
              // Src: (ARMcopystructbyval GPR:{ *:[i32] }:$dst, GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$size, (imm:{ *:[i32] }):$alignment) - Complexity = 9
              // Dst: (COPY_STRUCT_BYVAL_I32 GPR:{ *:[i32] }:$dst, GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$size, (imm:{ *:[i32] }):$alignment)
/* 60046*/  /*SwitchOpcode*/ 91, TARGET_VAL(ARMISD::SMMLAR),// ->60140
/* 60049*/    OPC_RecordChild0, // #0 = $Rn
/* 60050*/    OPC_RecordChild1, // #1 = $Rm
/* 60051*/    OPC_Scope, 42, /*->60095*/ // 2 children in Scope
/* 60053*/      OPC_CheckChild2Integer, 0, 
/* 60055*/      OPC_Scope, 18, /*->60075*/ // 2 children in Scope
/* 60057*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 60059*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60062*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60065*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMULR), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsmmlar:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (SMMULR:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 60075*/      /*Scope*/ 18, /*->60094*/
/* 60076*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 60078*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60081*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60084*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMULR), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsmmlar:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (t2SMMULR:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 60094*/      0, /*End of Scope*/
/* 60095*/    /*Scope*/ 43, /*->60139*/
/* 60096*/      OPC_RecordChild2, // #2 = $Ra
/* 60097*/      OPC_Scope, 19, /*->60118*/ // 2 children in Scope
/* 60099*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 60101*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60107*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMLAR), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMsmmlar:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 3
                  // Dst: (SMMLAR:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 60118*/      /*Scope*/ 19, /*->60138*/
/* 60119*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 60121*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60124*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60127*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMLAR), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMsmmlar:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 3
                  // Dst: (t2SMMLAR:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 60138*/      0, /*End of Scope*/
/* 60139*/    0, /*End of Scope*/
/* 60140*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ARMISD::CMPFP),// ->60285
/* 60144*/    OPC_RecordChild0, // #0 = $Dd
/* 60145*/    OPC_Scope, 45, /*->60192*/ // 3 children in Scope
/* 60147*/      OPC_CheckChild0Type, MVT::f64,
/* 60149*/      OPC_RecordChild1, // #1 = $Dm
/* 60150*/      OPC_Scope, 19, /*->60171*/ // 2 children in Scope
/* 60152*/        OPC_CheckChild2Integer, 1, 
/* 60154*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 60156*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60159*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60162*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPED), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPED DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm)
/* 60171*/      /*Scope*/ 19, /*->60191*/
/* 60172*/        OPC_CheckChild2Integer, 0, 
/* 60174*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 60176*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60179*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60182*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPD), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPD DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm)
/* 60191*/      0, /*End of Scope*/
/* 60192*/    /*Scope*/ 45, /*->60238*/
/* 60193*/      OPC_CheckChild0Type, MVT::f32,
/* 60195*/      OPC_RecordChild1, // #1 = $Sm
/* 60196*/      OPC_Scope, 19, /*->60217*/ // 2 children in Scope
/* 60198*/        OPC_CheckChild2Integer, 1, 
/* 60200*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 60202*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60205*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60208*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPES), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPES SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm)
/* 60217*/      /*Scope*/ 19, /*->60237*/
/* 60218*/        OPC_CheckChild2Integer, 0, 
/* 60220*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 60222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60228*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPS), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPS SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm)
/* 60237*/      0, /*End of Scope*/
/* 60238*/    /*Scope*/ 45, /*->60284*/
/* 60239*/      OPC_CheckChild0Type, MVT::f16,
/* 60241*/      OPC_RecordChild1, // #1 = $Sm
/* 60242*/      OPC_Scope, 19, /*->60263*/ // 2 children in Scope
/* 60244*/        OPC_CheckChild2Integer, 1, 
/* 60246*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 60248*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60251*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60254*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPEH), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEH HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm)
/* 60263*/      /*Scope*/ 19, /*->60283*/
/* 60264*/        OPC_CheckChild2Integer, 0, 
/* 60266*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 60268*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60271*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60274*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPH), 0|OPFL_GlueOutput,
                      4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (arm_cmpfp HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPH HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm)
/* 60283*/      0, /*End of Scope*/
/* 60284*/    0, /*End of Scope*/
/* 60285*/  /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ARMISD::CMPFPw0),// ->60421
/* 60289*/    OPC_RecordChild0, // #0 = $Dd
/* 60290*/    OPC_Scope, 42, /*->60334*/ // 3 children in Scope
/* 60292*/      OPC_CheckChild0Type, MVT::f64,
/* 60294*/      OPC_Scope, 18, /*->60314*/ // 2 children in Scope
/* 60296*/        OPC_CheckChild1Integer, 1, 
/* 60298*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 60300*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60303*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60306*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPEZD), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 DPR:{ *:[f64] }:$Dd, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEZD DPR:{ *:[f64] }:$Dd)
/* 60314*/      /*Scope*/ 18, /*->60333*/
/* 60315*/        OPC_CheckChild1Integer, 0, 
/* 60317*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 60319*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60322*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60325*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPZD), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 DPR:{ *:[f64] }:$Dd, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPZD DPR:{ *:[f64] }:$Dd)
/* 60333*/      0, /*End of Scope*/
/* 60334*/    /*Scope*/ 42, /*->60377*/
/* 60335*/      OPC_CheckChild0Type, MVT::f32,
/* 60337*/      OPC_Scope, 18, /*->60357*/ // 2 children in Scope
/* 60339*/        OPC_CheckChild1Integer, 1, 
/* 60341*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 60343*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60346*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60349*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPEZS), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 SPR:{ *:[f32] }:$Sd, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEZS SPR:{ *:[f32] }:$Sd)
/* 60357*/      /*Scope*/ 18, /*->60376*/
/* 60358*/        OPC_CheckChild1Integer, 0, 
/* 60360*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 60362*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60365*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60368*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPZS), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 SPR:{ *:[f32] }:$Sd, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPZS SPR:{ *:[f32] }:$Sd)
/* 60376*/      0, /*End of Scope*/
/* 60377*/    /*Scope*/ 42, /*->60420*/
/* 60378*/      OPC_CheckChild0Type, MVT::f16,
/* 60380*/      OPC_Scope, 18, /*->60400*/ // 2 children in Scope
/* 60382*/        OPC_CheckChild1Integer, 1, 
/* 60384*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 60386*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60389*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60392*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPEZH), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 HPR:{ *:[f16] }:$Sd, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEZH HPR:{ *:[f16] }:$Sd)
/* 60400*/      /*Scope*/ 18, /*->60419*/
/* 60401*/        OPC_CheckChild1Integer, 0, 
/* 60403*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 60405*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60408*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60411*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::VCMPZH), 0|OPFL_GlueOutput,
                      3/*#Ops*/, 0, 1, 2, 
                  // Src: (arm_cmpfp0 HPR:{ *:[f16] }:$Sd, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPZH HPR:{ *:[f16] }:$Sd)
/* 60419*/      0, /*End of Scope*/
/* 60420*/    0, /*End of Scope*/
/* 60421*/  /*SwitchOpcode*/ 65, TARGET_VAL(ARMISD::SSAT),// ->60489
/* 60424*/    OPC_RecordChild0, // #0 = $Rn
/* 60425*/    OPC_RecordChild1, // #1 = $imm
/* 60426*/    OPC_MoveChild1,
/* 60427*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60430*/    OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 60432*/    OPC_CheckType, MVT::i32,
/* 60434*/    OPC_MoveParent,
/* 60435*/    OPC_CheckType, MVT::i32,
/* 60437*/    OPC_Scope, 24, /*->60463*/ // 2 children in Scope
/* 60439*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60441*/      OPC_EmitConvertToTarget, 1,
/* 60443*/      OPC_EmitInteger, MVT::i32, 0, 
/* 60446*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60449*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60452*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAT), 0,
                    MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                // Src: (ARMssatnoshift:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (SSAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, GPRnopc:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 60463*/    /*Scope*/ 24, /*->60488*/
/* 60464*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 60466*/      OPC_EmitConvertToTarget, 1,
/* 60468*/      OPC_EmitInteger, MVT::i32, 0, 
/* 60471*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60474*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60477*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAT), 0,
                    MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                // Src: (ARMssatnoshift:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (t2SSAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, GPRnopc:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 60488*/    0, /*End of Scope*/
/* 60489*/  /*SwitchOpcode*/ 65, TARGET_VAL(ARMISD::USAT),// ->60557
/* 60492*/    OPC_RecordChild0, // #0 = $Rn
/* 60493*/    OPC_RecordChild1, // #1 = $imm
/* 60494*/    OPC_MoveChild1,
/* 60495*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60498*/    OPC_CheckPredicate, 53, // Predicate_imm0_31
/* 60500*/    OPC_CheckType, MVT::i32,
/* 60502*/    OPC_MoveParent,
/* 60503*/    OPC_CheckType, MVT::i32,
/* 60505*/    OPC_Scope, 24, /*->60531*/ // 2 children in Scope
/* 60507*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60509*/      OPC_EmitConvertToTarget, 1,
/* 60511*/      OPC_EmitInteger, MVT::i32, 0, 
/* 60514*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60517*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60520*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::USAT), 0,
                    MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                // Src: (ARMusatnoshift:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, GPRnopc:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 60531*/    /*Scope*/ 24, /*->60556*/
/* 60532*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 60534*/      OPC_EmitConvertToTarget, 1,
/* 60536*/      OPC_EmitInteger, MVT::i32, 0, 
/* 60539*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60542*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60545*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAT), 0,
                    MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                // Src: (ARMusatnoshift:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, GPRnopc:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 60556*/    0, /*End of Scope*/
/* 60557*/  /*SwitchOpcode*/ 56, TARGET_VAL(ARMISD::BFI),// ->60616
/* 60560*/    OPC_RecordChild0, // #0 = $src
/* 60561*/    OPC_RecordChild1, // #1 = $Rn
/* 60562*/    OPC_RecordChild2, // #2 = $imm
/* 60563*/    OPC_MoveChild2,
/* 60564*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60567*/    OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 60569*/    OPC_MoveParent,
/* 60570*/    OPC_Scope, 21, /*->60593*/ // 2 children in Scope
/* 60572*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 60574*/      OPC_EmitConvertToTarget, 2,
/* 60576*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60579*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60582*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BFI), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (ARMbfi:{ *:[i32] } GPRnopc:{ *:[i32] }:$src, GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) - Complexity = 7
                // Dst: (BFI:{ *:[i32] } GPRnopc:{ *:[i32] }:$src, GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 60593*/    /*Scope*/ 21, /*->60615*/
/* 60594*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 60596*/      OPC_EmitConvertToTarget, 2,
/* 60598*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60601*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60604*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2BFI), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (ARMbfi:{ *:[i32] } rGPR:{ *:[i32] }:$src, rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) - Complexity = 7
                // Dst: (t2BFI:{ *:[i32] } rGPR:{ *:[i32] }:$src, rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 60615*/    0, /*End of Scope*/
/* 60616*/  /*SwitchOpcode*/ 56, TARGET_VAL(ARMISD::INTRET_FLAG),// ->60675
/* 60619*/    OPC_RecordNode, // #0 = 'ARMintretflag' chained node
/* 60620*/    OPC_CaptureGlueInput,
/* 60621*/    OPC_RecordChild1, // #1 = $imm
/* 60622*/    OPC_MoveChild1,
/* 60623*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60626*/    OPC_Scope, 25, /*->60653*/ // 2 children in Scope
/* 60628*/      OPC_CheckPredicate, 49, // Predicate_imm0_255
/* 60630*/      OPC_CheckType, MVT::i32,
/* 60632*/      OPC_MoveParent,
/* 60633*/      OPC_CheckPatternPredicate, 55, // (!Subtarget->isMClass()) && (Subtarget->isThumb2())
/* 60635*/      OPC_EmitMergeInputChains1_0,
/* 60636*/      OPC_EmitConvertToTarget, 1,
/* 60638*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60641*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60644*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBS_PC_LR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (ARMintretflag (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm) - Complexity = 7
                // Dst: (t2SUBS_PC_LR:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 60653*/    /*Scope*/ 20, /*->60674*/
/* 60654*/      OPC_MoveParent,
/* 60655*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60657*/      OPC_EmitMergeInputChains1_0,
/* 60658*/      OPC_EmitConvertToTarget, 1,
/* 60660*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60663*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60666*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::SUBS_PC_LR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                    3/*#Ops*/, 2, 3, 4, 
                // Src: (ARMintretflag (imm:{ *:[iPTR] }):$offset) - Complexity = 6
                // Dst: (SUBS_PC_LR (imm:{ *:[i32] }):$offset)
/* 60674*/    0, /*End of Scope*/
/* 60675*/  /*SwitchOpcode*/ 116, TARGET_VAL(ARMISD::CALL),// ->60794
/* 60678*/    OPC_RecordNode, // #0 = 'ARMcall' chained node
/* 60679*/    OPC_CaptureGlueInput,
/* 60680*/    OPC_RecordChild1, // #1 = $func
/* 60681*/    OPC_Scope, 75, /*->60758*/ // 2 children in Scope
/* 60683*/      OPC_MoveChild1,
/* 60684*/      OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::TargetGlobalAddress),// ->60721
/* 60688*/        OPC_MoveParent,
/* 60689*/        OPC_Scope, 10, /*->60701*/ // 2 children in Scope
/* 60691*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60693*/          OPC_EmitMergeInputChains1_0,
/* 60694*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (ARMcall (tglobaladdr:{ *:[iPTR] }):$func) - Complexity = 6
                    // Dst: (BL:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$func)
/* 60701*/        /*Scope*/ 18, /*->60720*/
/* 60702*/          OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 60704*/          OPC_EmitMergeInputChains1_0,
/* 60705*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60708*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60711*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tBL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (ARMcall (tglobaladdr:{ *:[iPTR] }):$func) - Complexity = 6
                    // Dst: (tBL:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$func)
/* 60720*/        0, /*End of Scope*/
/* 60721*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::TargetExternalSymbol),// ->60757
/* 60724*/        OPC_MoveParent,
/* 60725*/        OPC_Scope, 10, /*->60737*/ // 2 children in Scope
/* 60727*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60729*/          OPC_EmitMergeInputChains1_0,
/* 60730*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (ARMcall (texternalsym:{ *:[iPTR] }):$func) - Complexity = 6
                    // Dst: (BL:{ *:[i32] } (texternalsym:{ *:[i32] }):$func)
/* 60737*/        /*Scope*/ 18, /*->60756*/
/* 60738*/          OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 60740*/          OPC_EmitMergeInputChains1_0,
/* 60741*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60744*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60747*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tBL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (ARMcall (texternalsym:{ *:[iPTR] }):$func) - Complexity = 6
                    // Dst: (tBL:{ *:[i32] } (texternalsym:{ *:[i32] }):$func)
/* 60756*/        0, /*End of Scope*/
/* 60757*/      0, // EndSwitchOpcode
/* 60758*/    /*Scope*/ 34, /*->60793*/
/* 60759*/      OPC_CheckChild1Type, MVT::i32,
/* 60761*/      OPC_Scope, 10, /*->60773*/ // 2 children in Scope
/* 60763*/        OPC_CheckPatternPredicate, 51, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 60765*/        OPC_EmitMergeInputChains1_0,
/* 60766*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BLX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall GPR:{ *:[i32] }:$func) - Complexity = 3
                  // Dst: (BLX:{ *:[i32] } GPR:{ *:[i32] }:$func)
/* 60773*/      /*Scope*/ 18, /*->60792*/
/* 60774*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasV5TOps()) && (Subtarget->isThumb())
/* 60776*/        OPC_EmitMergeInputChains1_0,
/* 60777*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60780*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60783*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tBLXr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (ARMcall GPR:{ *:[i32] }:$func) - Complexity = 3
                  // Dst: (tBLXr:{ *:[i32] } GPR:{ *:[i32] }:$func)
/* 60792*/      0, /*End of Scope*/
/* 60793*/    0, /*End of Scope*/
/* 60794*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::CALL_PRED),// ->60847
/* 60797*/    OPC_RecordNode, // #0 = 'ARMcall_pred' chained node
/* 60798*/    OPC_CaptureGlueInput,
/* 60799*/    OPC_RecordChild1, // #1 = $func
/* 60800*/    OPC_Scope, 23, /*->60825*/ // 2 children in Scope
/* 60802*/      OPC_MoveChild1,
/* 60803*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 60806*/      OPC_MoveParent,
/* 60807*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60809*/      OPC_EmitMergeInputChains1_0,
/* 60810*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60813*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60816*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BL_pred), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (ARMcall_pred (tglobaladdr:{ *:[iPTR] }):$func) - Complexity = 6
                // Dst: (BL_pred:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$func)
/* 60825*/    /*Scope*/ 20, /*->60846*/
/* 60826*/      OPC_CheckChild1Type, MVT::i32,
/* 60828*/      OPC_CheckPatternPredicate, 51, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 60830*/      OPC_EmitMergeInputChains1_0,
/* 60831*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60834*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60837*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::BLX_pred), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (ARMcall_pred GPR:{ *:[i32] }:$func) - Complexity = 3
                // Dst: (BLX_pred:{ *:[i32] } GPR:{ *:[i32] }:$func)
/* 60846*/    0, /*End of Scope*/
/* 60847*/  /*SwitchOpcode*/ 75, TARGET_VAL(ARMISD::CALL_NOLINK),// ->60925
/* 60850*/    OPC_RecordNode, // #0 = 'ARMcall_nolink' chained node
/* 60851*/    OPC_CaptureGlueInput,
/* 60852*/    OPC_RecordChild1, // #1 = $func
/* 60853*/    OPC_Scope, 31, /*->60886*/ // 2 children in Scope
/* 60855*/      OPC_MoveChild1,
/* 60856*/      OPC_SwitchOpcode /*2 cases */, 11, TARGET_VAL(ISD::TargetGlobalAddress),// ->60871
/* 60860*/        OPC_MoveParent,
/* 60861*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60863*/        OPC_EmitMergeInputChains1_0,
/* 60864*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BMOVPCB_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall_nolink (tglobaladdr:{ *:[iPTR] }):$func) - Complexity = 6
                  // Dst: (BMOVPCB_CALL:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$func)
/* 60871*/      /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetExternalSymbol),// ->60885
/* 60874*/        OPC_MoveParent,
/* 60875*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60877*/        OPC_EmitMergeInputChains1_0,
/* 60878*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BMOVPCB_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall_nolink (texternalsym:{ *:[iPTR] }):$func) - Complexity = 6
                  // Dst: (BMOVPCB_CALL:{ *:[i32] } (texternalsym:{ *:[i32] }):$func)
/* 60885*/      0, // EndSwitchOpcode
/* 60886*/    /*Scope*/ 37, /*->60924*/
/* 60887*/      OPC_CheckChild1Type, MVT::i32,
/* 60889*/      OPC_Scope, 10, /*->60901*/ // 3 children in Scope
/* 60891*/        OPC_CheckPatternPredicate, 57, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/* 60893*/        OPC_EmitMergeInputChains1_0,
/* 60894*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BX_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall_nolink tGPR:{ *:[i32] }:$func) - Complexity = 3
                  // Dst: (BX_CALL:{ *:[i32] } tGPR:{ *:[i32] }:$func)
/* 60901*/      /*Scope*/ 10, /*->60912*/
/* 60902*/        OPC_CheckPatternPredicate, 58, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/* 60904*/        OPC_EmitMergeInputChains1_0,
/* 60905*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::BMOVPCRX_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall_nolink tGPR:{ *:[i32] }:$func) - Complexity = 3
                  // Dst: (BMOVPCRX_CALL:{ *:[i32] } tGPR:{ *:[i32] }:$func)
/* 60912*/      /*Scope*/ 10, /*->60923*/
/* 60913*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 60915*/        OPC_EmitMergeInputChains1_0,
/* 60916*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tBX_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (ARMcall_nolink tGPR:{ *:[i32] }:$func) - Complexity = 3
                  // Dst: (tBX_CALL:{ *:[i32] } tGPR:{ *:[i32] }:$func)
/* 60923*/      0, /*End of Scope*/
/* 60924*/    0, /*End of Scope*/
/* 60925*/  /*SwitchOpcode*/ 23, TARGET_VAL(ARMISD::MEMCPY),// ->60951
/* 60928*/    OPC_RecordNode, // #0 = 'ARMmemcopy' chained node
/* 60929*/    OPC_CaptureGlueInput,
/* 60930*/    OPC_RecordChild1, // #1 = $dst
/* 60931*/    OPC_RecordChild2, // #2 = $src
/* 60932*/    OPC_RecordChild3, // #3 = $nreg
/* 60933*/    OPC_MoveChild3,
/* 60934*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60937*/    OPC_MoveParent,
/* 60938*/    OPC_EmitMergeInputChains1_0,
/* 60939*/    OPC_EmitConvertToTarget, 3,
/* 60941*/    OPC_MorphNodeTo2, TARGET_VAL(ARM::MEMCPY), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 4, 
              // Src: (ARMmemcopy:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$dst, GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$nreg) - Complexity = 6
              // Dst: (MEMCPY:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$dst, GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$nreg)
/* 60951*/  /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ARMISD::Wrapper),// ->61145
/* 60955*/    OPC_RecordChild0, // #0 = $src
/* 60956*/    OPC_MoveChild0,
/* 60957*/    OPC_SwitchOpcode /*4 cases */, 45, TARGET_VAL(ISD::TargetGlobalAddress),// ->61006
/* 60961*/      OPC_MoveParent,
/* 60962*/      OPC_CheckType, MVT::i32,
/* 60964*/      OPC_Scope, 9, /*->60975*/ // 4 children in Scope
/* 60966*/        OPC_CheckPatternPredicate, 59, // (!Subtarget->useMovt(*MF)) && (!Subtarget->isThumb())
/* 60968*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRLIT_ga_abs), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$src) - Complexity = 6
                  // Dst: (LDRLIT_ga_abs:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$src)
/* 60975*/      /*Scope*/ 9, /*->60985*/
/* 60976*/        OPC_CheckPatternPredicate, 60, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 60978*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (MOVi32imm:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$dst)
/* 60985*/      /*Scope*/ 9, /*->60995*/
/* 60986*/        OPC_CheckPatternPredicate, 61, // (!Subtarget->useMovt(*MF)) && (Subtarget->isThumb())
/* 60988*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRLIT_ga_abs), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$src) - Complexity = 6
                  // Dst: (tLDRLIT_ga_abs:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$src)
/* 60995*/      /*Scope*/ 9, /*->61005*/
/* 60996*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 60998*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (t2MOVi32imm:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$dst)
/* 61005*/      0, /*End of Scope*/
/* 61006*/    /*SwitchOpcode*/ 45, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->61054
/* 61009*/      OPC_MoveParent,
/* 61010*/      OPC_CheckType, MVT::i32,
/* 61012*/      OPC_Scope, 9, /*->61023*/ // 4 children in Scope
/* 61014*/        OPC_CheckPatternPredicate, 60, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 61016*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (MOVi32imm:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst)
/* 61023*/      /*Scope*/ 9, /*->61033*/
/* 61024*/        OPC_CheckPatternPredicate, 59, // (!Subtarget->useMovt(*MF)) && (!Subtarget->isThumb())
/* 61026*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRLIT_ga_abs), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$src) - Complexity = 6
                  // Dst: (LDRLIT_ga_abs:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$src)
/* 61033*/      /*Scope*/ 9, /*->61043*/
/* 61034*/        OPC_CheckPatternPredicate, 61, // (!Subtarget->useMovt(*MF)) && (Subtarget->isThumb())
/* 61036*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRLIT_ga_abs), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (tLDRLIT_ga_abs:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr)
/* 61043*/      /*Scope*/ 9, /*->61053*/
/* 61044*/        OPC_CheckPatternPredicate, 63, // (Subtarget->isThumb2()) && (Subtarget->useMovt(*MF))
/* 61046*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (t2MOVi32imm:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst)
/* 61053*/      0, /*End of Scope*/
/* 61054*/    /*SwitchOpcode*/ 59, TARGET_VAL(ISD::TargetConstantPool),// ->61116
/* 61057*/      OPC_MoveParent,
/* 61058*/      OPC_CheckType, MVT::i32,
/* 61060*/      OPC_Scope, 17, /*->61079*/ // 3 children in Scope
/* 61062*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61064*/        OPC_EmitInteger, MVT::i32, 14, 
/* 61067*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61070*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LEApcrel), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMWrapper:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (LEApcrel:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst)
/* 61079*/      /*Scope*/ 17, /*->61097*/
/* 61080*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 61082*/        OPC_EmitInteger, MVT::i32, 14, 
/* 61085*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61088*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLEApcrel), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMWrapper:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (tLEApcrel:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst)
/* 61097*/      /*Scope*/ 17, /*->61115*/
/* 61098*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 61100*/        OPC_EmitInteger, MVT::i32, 14, 
/* 61103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61106*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LEApcrel), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMWrapper:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (t2LEApcrel:{ *:[i32] } (tconstpool:{ *:[i32] }):$dst)
/* 61115*/      0, /*End of Scope*/
/* 61116*/    /*SwitchOpcode*/ 25, TARGET_VAL(ISD::TargetExternalSymbol),// ->61144
/* 61119*/      OPC_MoveParent,
/* 61120*/      OPC_CheckType, MVT::i32,
/* 61122*/      OPC_Scope, 9, /*->61133*/ // 2 children in Scope
/* 61124*/        OPC_CheckPatternPredicate, 60, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 61126*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (MOVi32imm:{ *:[i32] } (texternalsym:{ *:[i32] }):$dst)
/* 61133*/      /*Scope*/ 9, /*->61143*/
/* 61134*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 61136*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapper:{ *:[i32] } (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (t2MOVi32imm:{ *:[i32] } (texternalsym:{ *:[i32] }):$dst)
/* 61143*/      0, /*End of Scope*/
/* 61144*/    0, // EndSwitchOpcode
/* 61145*/  /*SwitchOpcode*/ 100, TARGET_VAL(ARMISD::WrapperPIC),// ->61248
/* 61148*/    OPC_RecordChild0, // #0 = $addr
/* 61149*/    OPC_MoveChild0,
/* 61150*/    OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::TargetGlobalAddress),// ->61199
/* 61154*/      OPC_MoveParent,
/* 61155*/      OPC_CheckType, MVT::i32,
/* 61157*/      OPC_Scope, 9, /*->61168*/ // 4 children in Scope
/* 61159*/        OPC_CheckPatternPredicate, 47, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 61161*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOV_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (MOV_ga_pcrel:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 61168*/      /*Scope*/ 9, /*->61178*/
/* 61169*/        OPC_CheckPatternPredicate, 46, // (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/* 61171*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRLIT_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (LDRLIT_ga_pcrel:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 61178*/      /*Scope*/ 9, /*->61188*/
/* 61179*/        OPC_CheckPatternPredicate, 64, // (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb())
/* 61181*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRLIT_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (tLDRLIT_ga_pcrel:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 61188*/      /*Scope*/ 9, /*->61198*/
/* 61189*/        OPC_CheckPatternPredicate, 65, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 61191*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOV_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (t2MOV_ga_pcrel:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$addr)
/* 61198*/      0, /*End of Scope*/
/* 61199*/    /*SwitchOpcode*/ 45, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->61247
/* 61202*/      OPC_MoveParent,
/* 61203*/      OPC_CheckType, MVT::i32,
/* 61205*/      OPC_Scope, 9, /*->61216*/ // 4 children in Scope
/* 61207*/        OPC_CheckPatternPredicate, 47, // (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 61209*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MOV_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (MOV_ga_pcrel:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr)
/* 61216*/      /*Scope*/ 9, /*->61226*/
/* 61217*/        OPC_CheckPatternPredicate, 46, // (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/* 61219*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDRLIT_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (LDRLIT_ga_pcrel:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr)
/* 61226*/      /*Scope*/ 9, /*->61236*/
/* 61227*/        OPC_CheckPatternPredicate, 64, // (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb())
/* 61229*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::tLDRLIT_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr) - Complexity = 6
                  // Dst: (tLDRLIT_ga_pcrel:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$addr)
/* 61236*/      /*Scope*/ 9, /*->61246*/
/* 61237*/        OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb2()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
/* 61239*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOV_ga_pcrel), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ARMWrapperPIC:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (t2MOV_ga_pcrel:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$dst)
/* 61246*/      0, /*End of Scope*/
/* 61247*/    0, // EndSwitchOpcode
/* 61248*/  /*SwitchOpcode*/ 64, TARGET_VAL(ARMISD::WrapperJT),// ->61315
/* 61251*/    OPC_RecordChild0, // #0 = $dst
/* 61252*/    OPC_MoveChild0,
/* 61253*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 61256*/    OPC_MoveParent,
/* 61257*/    OPC_CheckType, MVT::i32,
/* 61259*/    OPC_Scope, 17, /*->61278*/ // 3 children in Scope
/* 61261*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61263*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61266*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61269*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::LEApcrelJT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMWrapperJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst) - Complexity = 6
                // Dst: (LEApcrelJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst)
/* 61278*/    /*Scope*/ 17, /*->61296*/
/* 61279*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 61281*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61284*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61287*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tLEApcrelJT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMWrapperJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst) - Complexity = 6
                // Dst: (tLEApcrelJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst)
/* 61296*/    /*Scope*/ 17, /*->61314*/
/* 61297*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 61299*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61302*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61305*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LEApcrelJT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMWrapperJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst) - Complexity = 6
                // Dst: (t2LEApcrelJT:{ *:[i32] } (tjumptable:{ *:[i32] }):$dst)
/* 61314*/    0, /*End of Scope*/
/* 61315*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::TC_RETURN),// ->61363
/* 61318*/    OPC_RecordNode, // #0 = 'ARMtcret' chained node
/* 61319*/    OPC_CaptureGlueInput,
/* 61320*/    OPC_RecordChild1, // #1 = $dst
/* 61321*/    OPC_Scope, 29, /*->61352*/ // 2 children in Scope
/* 61323*/      OPC_MoveChild1,
/* 61324*/      OPC_SwitchOpcode /*2 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->61338
/* 61328*/        OPC_CheckType, MVT::i32,
/* 61330*/        OPC_MoveParent,
/* 61331*/        OPC_EmitMergeInputChains1_0,
/* 61332*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (ARMtcret (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (TCRETURNdi (texternalsym:{ *:[i32] }):$dst)
/* 61338*/      /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->61351
/* 61341*/        OPC_CheckType, MVT::i32,
/* 61343*/        OPC_MoveParent,
/* 61344*/        OPC_EmitMergeInputChains1_0,
/* 61345*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (ARMtcret (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (TCRETURNdi (texternalsym:{ *:[i32] }):$dst)
/* 61351*/      0, // EndSwitchOpcode
/* 61352*/    /*Scope*/ 9, /*->61362*/
/* 61353*/      OPC_CheckChild1Type, MVT::i32,
/* 61355*/      OPC_EmitMergeInputChains1_0,
/* 61356*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::TCRETURNri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                    1/*#Ops*/, 1, 
                // Src: (ARMtcret tcGPR:{ *:[i32] }:$dst) - Complexity = 3
                // Dst: (TCRETURNri tcGPR:{ *:[i32] }:$dst)
/* 61362*/    0, /*End of Scope*/
/* 61363*/  /*SwitchOpcode*/ 22, TARGET_VAL(ARMISD::BR2_JT),// ->61388
/* 61366*/    OPC_RecordNode, // #0 = 'ARMbr2jt' chained node
/* 61367*/    OPC_RecordChild1, // #1 = $target
/* 61368*/    OPC_CheckChild1Type, MVT::i32,
/* 61370*/    OPC_RecordChild2, // #2 = $index
/* 61371*/    OPC_RecordChild3, // #3 = $jt
/* 61372*/    OPC_MoveChild3,
/* 61373*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 61376*/    OPC_MoveParent,
/* 61377*/    OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 61379*/    OPC_EmitMergeInputChains1_0,
/* 61380*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::t2BR_JT), 0|OPFL_Chain,
                  3/*#Ops*/, 1, 2, 3, 
              // Src: (ARMbr2jt GPR:{ *:[i32] }:$target, GPR:{ *:[i32] }:$index, (tjumptable:{ *:[i32] }):$jt) - Complexity = 6
              // Dst: (t2BR_JT GPR:{ *:[i32] }:$target, GPR:{ *:[i32] }:$index, (tjumptable:{ *:[i32] }):$jt)
/* 61388*/  /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ARMISD::VGETLANEs),// ->61539
/* 61392*/    OPC_RecordChild0, // #0 = $V
/* 61393*/    OPC_Scope, 28, /*->61423*/ // 4 children in Scope
/* 61395*/      OPC_CheckChild0Type, MVT::v8i8,
/* 61397*/      OPC_RecordChild1, // #1 = $lane
/* 61398*/      OPC_MoveChild1,
/* 61399*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61402*/      OPC_MoveParent,
/* 61403*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61405*/      OPC_EmitConvertToTarget, 1,
/* 61407*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61410*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61413*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvgetlanes:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs8:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane)
/* 61423*/    /*Scope*/ 28, /*->61452*/
/* 61424*/      OPC_CheckChild0Type, MVT::v4i16,
/* 61426*/      OPC_RecordChild1, // #1 = $lane
/* 61427*/      OPC_MoveChild1,
/* 61428*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61431*/      OPC_MoveParent,
/* 61432*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61434*/      OPC_EmitConvertToTarget, 1,
/* 61436*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61439*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61442*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvgetlanes:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs16:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane)
/* 61452*/    /*Scope*/ 42, /*->61495*/
/* 61453*/      OPC_CheckChild0Type, MVT::v16i8,
/* 61455*/      OPC_RecordChild1, // #1 = $lane
/* 61456*/      OPC_MoveChild1,
/* 61457*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61460*/      OPC_MoveParent,
/* 61461*/      OPC_EmitConvertToTarget, 1,
/* 61463*/      OPC_EmitNodeXForm, 14, 2, // DSubReg_i8_reg
/* 61466*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61474*/      OPC_EmitConvertToTarget, 1,
/* 61476*/      OPC_EmitNodeXForm, 15, 5, // SubReg_i8_lane
/* 61479*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61482*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61485*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs8), 0,
                    MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvgetlanes:{ *:[i32] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src, (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i8_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 61495*/    /*Scope*/ 42, /*->61538*/
/* 61496*/      OPC_CheckChild0Type, MVT::v8i16,
/* 61498*/      OPC_RecordChild1, // #1 = $lane
/* 61499*/      OPC_MoveChild1,
/* 61500*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61503*/      OPC_MoveParent,
/* 61504*/      OPC_EmitConvertToTarget, 1,
/* 61506*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/* 61509*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61517*/      OPC_EmitConvertToTarget, 1,
/* 61519*/      OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/* 61522*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61525*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61528*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs16), 0,
                    MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvgetlanes:{ *:[i32] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs16:{ *:[i32] } (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 61538*/    0, /*End of Scope*/
/* 61539*/  /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ARMISD::VGETLANEu),// ->61690
/* 61543*/    OPC_RecordChild0, // #0 = $V
/* 61544*/    OPC_Scope, 28, /*->61574*/ // 4 children in Scope
/* 61546*/      OPC_CheckChild0Type, MVT::v8i8,
/* 61548*/      OPC_RecordChild1, // #1 = $lane
/* 61549*/      OPC_MoveChild1,
/* 61550*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61553*/      OPC_MoveParent,
/* 61554*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61556*/      OPC_EmitConvertToTarget, 1,
/* 61558*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61561*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61564*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu8:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane)
/* 61574*/    /*Scope*/ 28, /*->61603*/
/* 61575*/      OPC_CheckChild0Type, MVT::v4i16,
/* 61577*/      OPC_RecordChild1, // #1 = $lane
/* 61578*/      OPC_MoveChild1,
/* 61579*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61582*/      OPC_MoveParent,
/* 61583*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61585*/      OPC_EmitConvertToTarget, 1,
/* 61587*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61590*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61593*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvgetlaneu:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu16:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane)
/* 61603*/    /*Scope*/ 42, /*->61646*/
/* 61604*/      OPC_CheckChild0Type, MVT::v16i8,
/* 61606*/      OPC_RecordChild1, // #1 = $lane
/* 61607*/      OPC_MoveChild1,
/* 61608*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61611*/      OPC_MoveParent,
/* 61612*/      OPC_EmitConvertToTarget, 1,
/* 61614*/      OPC_EmitNodeXForm, 14, 2, // DSubReg_i8_reg
/* 61617*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61625*/      OPC_EmitConvertToTarget, 1,
/* 61627*/      OPC_EmitNodeXForm, 15, 5, // SubReg_i8_lane
/* 61630*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61633*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61636*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu8), 0,
                    MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src, (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i8_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 61646*/    /*Scope*/ 42, /*->61689*/
/* 61647*/      OPC_CheckChild0Type, MVT::v8i16,
/* 61649*/      OPC_RecordChild1, // #1 = $lane
/* 61650*/      OPC_MoveChild1,
/* 61651*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61654*/      OPC_MoveParent,
/* 61655*/      OPC_EmitConvertToTarget, 1,
/* 61657*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/* 61660*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61668*/      OPC_EmitConvertToTarget, 1,
/* 61670*/      OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/* 61673*/      OPC_EmitInteger, MVT::i32, 14, 
/* 61676*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61679*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu16), 0,
                    MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvgetlaneu:{ *:[i32] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu16:{ *:[i32] } (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 61689*/    0, /*End of Scope*/
/* 61690*/  /*SwitchOpcode*/ 105|128,1/*233*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->61927
/* 61694*/    OPC_RecordChild0, // #0 = $V
/* 61695*/    OPC_Scope, 60, /*->61757*/ // 5 children in Scope
/* 61697*/      OPC_CheckChild0Type, MVT::v2i32,
/* 61699*/      OPC_RecordChild1, // #1 = $lane
/* 61700*/      OPC_MoveChild1,
/* 61701*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61704*/      OPC_MoveParent,
/* 61705*/      OPC_CheckType, MVT::i32,
/* 61707*/      OPC_Scope, 20, /*->61729*/ // 2 children in Scope
/* 61709*/        OPC_CheckPatternPredicate, 67, // (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasVFP2())
/* 61711*/        OPC_EmitConvertToTarget, 1,
/* 61713*/        OPC_EmitInteger, MVT::i32, 14, 
/* 61716*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61719*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNi32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (VGETLNi32:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[i32] }):$lane)
/* 61729*/      /*Scope*/ 26, /*->61756*/
/* 61730*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32())
/* 61732*/        OPC_EmitConvertToTarget, 1,
/* 61734*/        OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 61737*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61745*/        OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 61748*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 4, 5, 
                  // Src: (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } DPR:{ *:[v2i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), GPR:{ *:[i32] })
/* 61756*/      0, /*End of Scope*/
/* 61757*/    /*Scope*/ 76, /*->61834*/
/* 61758*/      OPC_CheckChild0Type, MVT::v4i32,
/* 61760*/      OPC_RecordChild1, // #1 = $lane
/* 61761*/      OPC_MoveChild1,
/* 61762*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61765*/      OPC_MoveParent,
/* 61766*/      OPC_CheckType, MVT::i32,
/* 61768*/      OPC_Scope, 36, /*->61806*/ // 2 children in Scope
/* 61770*/        OPC_CheckPatternPredicate, 69, // (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON())
/* 61772*/        OPC_EmitConvertToTarget, 1,
/* 61774*/        OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/* 61777*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61785*/        OPC_EmitConvertToTarget, 1,
/* 61787*/        OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/* 61790*/        OPC_EmitInteger, MVT::i32, 14, 
/* 61793*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61796*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNi32), 0,
                      MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (VGETLNi32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/* 61806*/      /*Scope*/ 26, /*->61833*/
/* 61807*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32())
/* 61809*/        OPC_EmitConvertToTarget, 1,
/* 61811*/        OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 61814*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61822*/        OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 61825*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 4, 5, 
                  // Src: (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), GPR:{ *:[i32] })
/* 61833*/      0, /*End of Scope*/
/* 61834*/    /*Scope*/ 21, /*->61856*/
/* 61835*/      OPC_RecordChild1, // #1 = $src2
/* 61836*/      OPC_MoveChild1,
/* 61837*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61840*/      OPC_MoveParent,
/* 61841*/      OPC_CheckType, MVT::f64,
/* 61843*/      OPC_EmitConvertToTarget, 1,
/* 61845*/      OPC_EmitNodeXForm, 17, 2, // DSubReg_f64_reg
/* 61848*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f64, 2/*#Ops*/, 0, 3, 
                // Src: (extractelt:{ *:[f64] } QPR:{ *:[v2f64] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[f64] } QPR:{ *:[v2f64] }:$src1, (DSubReg_f64_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src2))
/* 61856*/    /*Scope*/ 34, /*->61891*/
/* 61857*/      OPC_CheckChild0Type, MVT::v2f32,
/* 61859*/      OPC_RecordChild1, // #1 = $src2
/* 61860*/      OPC_MoveChild1,
/* 61861*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61864*/      OPC_MoveParent,
/* 61865*/      OPC_CheckType, MVT::f32,
/* 61867*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 61870*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61878*/      OPC_EmitConvertToTarget, 1,
/* 61880*/      OPC_EmitNodeXForm, 16, 4, // SSubReg_f32_reg
/* 61883*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 3, 5, 
                // Src: (extractelt:{ *:[f32] } DPR:{ *:[v2f32] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR_VFP2:{ *:[i32] }), (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src2))
/* 61891*/    /*Scope*/ 34, /*->61926*/
/* 61892*/      OPC_CheckChild0Type, MVT::v4f32,
/* 61894*/      OPC_RecordChild1, // #1 = $src2
/* 61895*/      OPC_MoveChild1,
/* 61896*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61899*/      OPC_MoveParent,
/* 61900*/      OPC_CheckType, MVT::f32,
/* 61902*/      OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/* 61905*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61913*/      OPC_EmitConvertToTarget, 1,
/* 61915*/      OPC_EmitNodeXForm, 16, 4, // SSubReg_f32_reg
/* 61918*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 3, 5, 
                // Src: (extractelt:{ *:[f32] } QPR:{ *:[v4f32] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR_VFP2:{ *:[i32] }), (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src2))
/* 61926*/    0, /*End of Scope*/
/* 61927*/  /*SwitchOpcode*/ 101|128,3/*485*/, TARGET_VAL(ISD::FP_TO_SINT),// ->62416
/* 61931*/    OPC_Scope, 118|128,1/*246*/, /*->62180*/ // 2 children in Scope
/* 61934*/      OPC_MoveChild0,
/* 61935*/      OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::FROUND),// ->62017
/* 61939*/        OPC_RecordChild0, // #0 = $a
/* 61940*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->61966
/* 61943*/          OPC_MoveParent,
/* 61944*/          OPC_CheckType, MVT::i32,
/* 61946*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 61948*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 61955*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 61958*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 61966*/        /*SwitchType*/ 23, MVT::f32,// ->61991
/* 61968*/          OPC_MoveParent,
/* 61969*/          OPC_CheckType, MVT::i32,
/* 61971*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 61973*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 61980*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 61983*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 61991*/        /*SwitchType*/ 23, MVT::f64,// ->62016
/* 61993*/          OPC_MoveParent,
/* 61994*/          OPC_CheckType, MVT::i32,
/* 61996*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 61998*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62005*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62008*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62016*/        0, // EndSwitchType
/* 62017*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FCEIL),// ->62098
/* 62020*/        OPC_RecordChild0, // #0 = $a
/* 62021*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->62047
/* 62024*/          OPC_MoveParent,
/* 62025*/          OPC_CheckType, MVT::i32,
/* 62027*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 62029*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62036*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62039*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62047*/        /*SwitchType*/ 23, MVT::f32,// ->62072
/* 62049*/          OPC_MoveParent,
/* 62050*/          OPC_CheckType, MVT::i32,
/* 62052*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 62054*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62061*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62064*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62072*/        /*SwitchType*/ 23, MVT::f64,// ->62097
/* 62074*/          OPC_MoveParent,
/* 62075*/          OPC_CheckType, MVT::i32,
/* 62077*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 62079*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62086*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62089*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62097*/        0, // EndSwitchType
/* 62098*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FFLOOR),// ->62179
/* 62101*/        OPC_RecordChild0, // #0 = $a
/* 62102*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->62128
/* 62105*/          OPC_MoveParent,
/* 62106*/          OPC_CheckType, MVT::i32,
/* 62108*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 62110*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62117*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62120*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62128*/        /*SwitchType*/ 23, MVT::f32,// ->62153
/* 62130*/          OPC_MoveParent,
/* 62131*/          OPC_CheckType, MVT::i32,
/* 62133*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 62135*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62142*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62145*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62153*/        /*SwitchType*/ 23, MVT::f64,// ->62178
/* 62155*/          OPC_MoveParent,
/* 62156*/          OPC_CheckType, MVT::i32,
/* 62158*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 62160*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62167*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62170*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62178*/        0, // EndSwitchType
/* 62179*/      0, // EndSwitchOpcode
/* 62180*/    /*Scope*/ 105|128,1/*233*/, /*->62415*/
/* 62182*/      OPC_RecordChild0, // #0 = $a
/* 62183*/      OPC_SwitchType /*5 cases */, 17|128,1/*145*/, MVT::i32,// ->62332
/* 62187*/        OPC_Scope, 30, /*->62219*/ // 3 children in Scope
/* 62189*/          OPC_CheckChild0Type, MVT::f64,
/* 62191*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 62193*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62196*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62199*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZD), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62208*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62211*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (fp_to_sint:{ *:[i32] } DPR:{ *:[f64] }:$a) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62219*/        /*Scope*/ 80, /*->62300*/
/* 62220*/          OPC_CheckChild0Type, MVT::f32,
/* 62222*/          OPC_Scope, 28, /*->62252*/ // 2 children in Scope
/* 62224*/            OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 62226*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62229*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62232*/            OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62241*/            OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62244*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62252*/          /*Scope*/ 46, /*->62299*/
/* 62253*/            OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 62255*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 62261*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 62264*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 62273*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62276*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62279*/            OPC_EmitNode1, TARGET_VAL(ARM::VCVTf2sd), 0,
                          MVT::v2f32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 62288*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 62291*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 6, 7, 
                      // Src: (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2sd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
/* 62299*/          0, /*End of Scope*/
/* 62300*/        /*Scope*/ 30, /*->62331*/
/* 62301*/          OPC_CheckChild0Type, MVT::f16,
/* 62303*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 62305*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62308*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62311*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZH), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62320*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62323*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (fp_to_sint:{ *:[i32] } HPR:{ *:[f16] }:$a) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62331*/        0, /*End of Scope*/
/* 62332*/      /*SwitchType*/ 19, MVT::v2i32,// ->62353
/* 62334*/        OPC_CheckChild0Type, MVT::v2f32,
/* 62336*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62338*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62341*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62344*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2sd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_sint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTf2sd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 62353*/      /*SwitchType*/ 19, MVT::v4i32,// ->62374
/* 62355*/        OPC_CheckChild0Type, MVT::v4f32,
/* 62357*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62359*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62365*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2sq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_sint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTf2sq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 62374*/      /*SwitchType*/ 19, MVT::v4i16,// ->62395
/* 62376*/        OPC_CheckChild0Type, MVT::v4f16,
/* 62378*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 62380*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62383*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62386*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2sd), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_sint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTh2sd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 62395*/      /*SwitchType*/ 17, MVT::v8i16,// ->62414
/* 62397*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 62399*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62402*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62405*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2sq), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_sint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTh2sq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 62414*/      0, // EndSwitchType
/* 62415*/    0, /*End of Scope*/
/* 62416*/  /*SwitchOpcode*/ 101|128,3/*485*/, TARGET_VAL(ISD::FP_TO_UINT),// ->62905
/* 62420*/    OPC_Scope, 118|128,1/*246*/, /*->62669*/ // 2 children in Scope
/* 62423*/      OPC_MoveChild0,
/* 62424*/      OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::FROUND),// ->62506
/* 62428*/        OPC_RecordChild0, // #0 = $a
/* 62429*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->62455
/* 62432*/          OPC_MoveParent,
/* 62433*/          OPC_CheckType, MVT::i32,
/* 62435*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 62437*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62444*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62447*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62455*/        /*SwitchType*/ 23, MVT::f32,// ->62480
/* 62457*/          OPC_MoveParent,
/* 62458*/          OPC_CheckType, MVT::i32,
/* 62460*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 62462*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62469*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62472*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62480*/        /*SwitchType*/ 23, MVT::f64,// ->62505
/* 62482*/          OPC_MoveParent,
/* 62483*/          OPC_CheckType, MVT::i32,
/* 62485*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 62487*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62494*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62497*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62505*/        0, // EndSwitchType
/* 62506*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FCEIL),// ->62587
/* 62509*/        OPC_RecordChild0, // #0 = $a
/* 62510*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->62536
/* 62513*/          OPC_MoveParent,
/* 62514*/          OPC_CheckType, MVT::i32,
/* 62516*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 62518*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62525*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62528*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62536*/        /*SwitchType*/ 23, MVT::f32,// ->62561
/* 62538*/          OPC_MoveParent,
/* 62539*/          OPC_CheckType, MVT::i32,
/* 62541*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 62543*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62550*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62553*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62561*/        /*SwitchType*/ 23, MVT::f64,// ->62586
/* 62563*/          OPC_MoveParent,
/* 62564*/          OPC_CheckType, MVT::i32,
/* 62566*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 62568*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62575*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62578*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62586*/        0, // EndSwitchType
/* 62587*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FFLOOR),// ->62668
/* 62590*/        OPC_RecordChild0, // #0 = $a
/* 62591*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->62617
/* 62594*/          OPC_MoveParent,
/* 62595*/          OPC_CheckType, MVT::i32,
/* 62597*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 62599*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62606*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62609*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62617*/        /*SwitchType*/ 23, MVT::f32,// ->62642
/* 62619*/          OPC_MoveParent,
/* 62620*/          OPC_CheckType, MVT::i32,
/* 62622*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 62624*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62631*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62634*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62642*/        /*SwitchType*/ 23, MVT::f64,// ->62667
/* 62644*/          OPC_MoveParent,
/* 62645*/          OPC_CheckType, MVT::i32,
/* 62647*/          OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 62649*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 62656*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62659*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62667*/        0, // EndSwitchType
/* 62668*/      0, // EndSwitchOpcode
/* 62669*/    /*Scope*/ 105|128,1/*233*/, /*->62904*/
/* 62671*/      OPC_RecordChild0, // #0 = $a
/* 62672*/      OPC_SwitchType /*5 cases */, 17|128,1/*145*/, MVT::i32,// ->62821
/* 62676*/        OPC_Scope, 30, /*->62708*/ // 3 children in Scope
/* 62678*/          OPC_CheckChild0Type, MVT::f64,
/* 62680*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 62682*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62685*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62688*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZD), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62697*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62700*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (fp_to_uint:{ *:[i32] } DPR:{ *:[f64] }:$a) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 62708*/        /*Scope*/ 80, /*->62789*/
/* 62709*/          OPC_CheckChild0Type, MVT::f32,
/* 62711*/          OPC_Scope, 28, /*->62741*/ // 2 children in Scope
/* 62713*/            OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 62715*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62718*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62721*/            OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62730*/            OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62733*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 62741*/          /*Scope*/ 46, /*->62788*/
/* 62742*/            OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 62744*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 62750*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 62753*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 62762*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62765*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62768*/            OPC_EmitNode1, TARGET_VAL(ARM::VCVTf2ud), 0,
                          MVT::v2f32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 62777*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 62780*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 6, 7, 
                      // Src: (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2ud:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
/* 62788*/          0, /*End of Scope*/
/* 62789*/        /*Scope*/ 30, /*->62820*/
/* 62790*/          OPC_CheckChild0Type, MVT::f16,
/* 62792*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 62794*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62797*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62800*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZH), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 62809*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 62812*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (fp_to_uint:{ *:[i32] } HPR:{ *:[f16] }:$a) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
/* 62820*/        0, /*End of Scope*/
/* 62821*/      /*SwitchType*/ 19, MVT::v2i32,// ->62842
/* 62823*/        OPC_CheckChild0Type, MVT::v2f32,
/* 62825*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62827*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62830*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62833*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2ud), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_uint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTf2ud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 62842*/      /*SwitchType*/ 19, MVT::v4i32,// ->62863
/* 62844*/        OPC_CheckChild0Type, MVT::v4f32,
/* 62846*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62848*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62851*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62854*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2uq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_uint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTf2uq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 62863*/      /*SwitchType*/ 19, MVT::v4i16,// ->62884
/* 62865*/        OPC_CheckChild0Type, MVT::v4f16,
/* 62867*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 62869*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62875*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2ud), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_uint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTh2ud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 62884*/      /*SwitchType*/ 17, MVT::v8i16,// ->62903
/* 62886*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 62888*/        OPC_EmitInteger, MVT::i32, 14, 
/* 62891*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62894*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2uq), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fp_to_uint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTh2uq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 62903*/      0, // EndSwitchType
/* 62904*/    0, /*End of Scope*/
/* 62905*/  /*SwitchOpcode*/ 110|128,2/*366*/, TARGET_VAL(ISD::Constant),// ->63275
/* 62909*/    OPC_RecordNode, // #0 = $imm
/* 62910*/    OPC_CheckType, MVT::i32,
/* 62912*/    OPC_Scope, 25, /*->62939*/ // 12 children in Scope
/* 62914*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 62916*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62918*/      OPC_EmitConvertToTarget, 0,
/* 62920*/      OPC_EmitInteger, MVT::i32, 14, 
/* 62923*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62926*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62929*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm - Complexity = 5
                // Dst: (t2MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 62939*/    /*Scope*/ 25, /*->62965*/
/* 62940*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 62942*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62944*/      OPC_EmitConvertToTarget, 0,
/* 62946*/      OPC_EmitInteger, MVT::i32, 14, 
/* 62949*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62952*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62955*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm - Complexity = 4
                // Dst: (MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 62965*/    /*Scope*/ 21, /*->62987*/
/* 62966*/      OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 62968*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 62970*/      OPC_EmitConvertToTarget, 0,
/* 62972*/      OPC_EmitInteger, MVT::i32, 14, 
/* 62975*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62978*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi16), 0,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm - Complexity = 4
                // Dst: (MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 62987*/    /*Scope*/ 28, /*->63016*/
/* 62988*/      OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 62990*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62992*/      OPC_EmitConvertToTarget, 0,
/* 62994*/      OPC_EmitNodeXForm, 9, 1, // imm_not_XFORM
/* 62997*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63000*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63003*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63006*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVNi), 0,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm - Complexity = 4
                // Dst: (MVNi:{ *:[i32] } (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 63016*/    /*Scope*/ 13, /*->63030*/
/* 63017*/      OPC_CheckPredicate, 82, // Predicate_arm_i32imm
/* 63019*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63021*/      OPC_EmitConvertToTarget, 0,
/* 63023*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_arm_i32imm>>:$src - Complexity = 4
                // Dst: (MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
/* 63030*/    /*Scope*/ 25, /*->63056*/
/* 63031*/      OPC_CheckPredicate, 49, // Predicate_imm0_255
/* 63033*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63035*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63038*/      OPC_EmitConvertToTarget, 0,
/* 63040*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63043*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63046*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8 - Complexity = 4
                // Dst: (tMOVi8:{ *:[i32] } (imm:{ *:[i32] }):$imm8)
/* 63056*/    /*Scope*/ 21, /*->63078*/
/* 63057*/      OPC_CheckPredicate, 48, // Predicate_imm0_65535
/* 63059*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 63061*/      OPC_EmitConvertToTarget, 0,
/* 63063*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63066*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63069*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi16), 0,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm - Complexity = 4
                // Dst: (t2MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 63078*/    /*Scope*/ 28, /*->63107*/
/* 63079*/      OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 63081*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63083*/      OPC_EmitConvertToTarget, 0,
/* 63085*/      OPC_EmitNodeXForm, 1, 1, // t2_so_imm_not_XFORM
/* 63088*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63091*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63094*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63097*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MVNi), 0,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>><<X:t2_so_imm_not_XFORM>>:$src - Complexity = 4
                // Dst: (t2MVNi:{ *:[i32] } (t2_so_imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_not>>:$src))
/* 63107*/    /*Scope*/ 53, /*->63161*/
/* 63108*/      OPC_CheckPredicate, 83, // Predicate_thumb_immshifted
/* 63110*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63112*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63115*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63118*/      OPC_EmitConvertToTarget, 0,
/* 63120*/      OPC_EmitNodeXForm, 18, 3, // thumb_immshifted_val
/* 63123*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63126*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63129*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 4, 5, 6,  // Results = #7
/* 63139*/      OPC_EmitConvertToTarget, 0,
/* 63141*/      OPC_EmitNodeXForm, 19, 8, // thumb_immshifted_shamt
/* 63144*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63147*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63150*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tLSLri), 0,
                    MVT::i32, 5/*#Ops*/, 1, 7, 9, 10, 11, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_thumb_immshifted>>:$src - Complexity = 4
                // Dst: (tLSLri:{ *:[i32] } (tMOVi8:{ *:[i32] } (thumb_immshifted_val:{ *:[i32] } (imm:{ *:[i32] }):$src)), (thumb_immshifted_shamt:{ *:[i32] } (imm:{ *:[i32] }):$src))
/* 63161*/    /*Scope*/ 47, /*->63209*/
/* 63162*/      OPC_CheckPredicate, 84, // Predicate_imm0_255_comp
/* 63164*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63166*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63169*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63172*/      OPC_EmitConvertToTarget, 0,
/* 63174*/      OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 63177*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63180*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63183*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 4, 5, 6,  // Results = #7
/* 63193*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63196*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63199*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tMVN), 0,
                    MVT::i32, 4/*#Ops*/, 1, 7, 8, 9, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_imm0_255_comp>>:$src - Complexity = 4
                // Dst: (tMVN:{ *:[i32] } (tMOVi8:{ *:[i32] } (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$src)))
/* 63209*/    /*Scope*/ 52, /*->63262*/
/* 63210*/      OPC_CheckPredicate, 85, // Predicate_imm256_510
/* 63212*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63214*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63217*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 63220*/      OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 63224*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63227*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63230*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 63240*/      OPC_EmitConvertToTarget, 0,
/* 63242*/      OPC_EmitNodeXForm, 20, 7, // thumb_imm256_510_addend
/* 63245*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63248*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63251*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tADDi8), 0,
                    MVT::i32, 5/*#Ops*/, 1, 6, 8, 9, 10, 
                // Src: (imm:{ *:[i32] })<<P:Predicate_imm256_510>>:$src - Complexity = 4
                // Dst: (tADDi8:{ *:[i32] } (tMOVi8:{ *:[i32] } 255:{ *:[i32] }), (thumb_imm256_510_addend:{ *:[i32] } (imm:{ *:[i32] }):$src))
/* 63262*/    /*Scope*/ 11, /*->63274*/
/* 63263*/      OPC_CheckPatternPredicate, 71, // (Subtarget->isThumb()) && (Subtarget->useMovt(*MF))
/* 63265*/      OPC_EmitConvertToTarget, 0,
/* 63267*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (imm:{ *:[i32] }):$src - Complexity = 3
                // Dst: (t2MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
/* 63274*/    0, /*End of Scope*/
/* 63275*/  /*SwitchOpcode*/ 30, TARGET_VAL(ISD::TRAP),// ->63308
/* 63278*/    OPC_RecordNode, // #0 = 'trap' chained node
/* 63279*/    OPC_Scope, 8, /*->63289*/ // 3 children in Scope
/* 63281*/      OPC_CheckPatternPredicate, 72, // (!Subtarget->isThumb()) && (Subtarget->useNaClTrap())
/* 63283*/      OPC_EmitMergeInputChains1_0,
/* 63284*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::TRAPNaCl), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (TRAPNaCl)
/* 63289*/    /*Scope*/ 8, /*->63298*/
/* 63290*/      OPC_CheckPatternPredicate, 73, // (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb())
/* 63292*/      OPC_EmitMergeInputChains1_0,
/* 63293*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::TRAP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (TRAP)
/* 63298*/    /*Scope*/ 8, /*->63307*/
/* 63299*/      OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 63301*/      OPC_EmitMergeInputChains1_0,
/* 63302*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tTRAP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (tTRAP)
/* 63307*/    0, /*End of Scope*/
/* 63308*/  /*SwitchOpcode*/ 55, TARGET_VAL(ARMISD::RET_FLAG),// ->63366
/* 63311*/    OPC_RecordNode, // #0 = 'ARMretflag' chained node
/* 63312*/    OPC_CaptureGlueInput,
/* 63313*/    OPC_Scope, 16, /*->63331*/ // 3 children in Scope
/* 63315*/      OPC_CheckPatternPredicate, 57, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/* 63317*/      OPC_EmitMergeInputChains1_0,
/* 63318*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63321*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63324*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::BX_RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    2/*#Ops*/, 1, 2, 
                // Src: (ARMretflag) - Complexity = 3
                // Dst: (BX_RET)
/* 63331*/    /*Scope*/ 16, /*->63348*/
/* 63332*/      OPC_CheckPatternPredicate, 58, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/* 63334*/      OPC_EmitMergeInputChains1_0,
/* 63335*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63338*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63341*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::MOVPCLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    2/*#Ops*/, 1, 2, 
                // Src: (ARMretflag) - Complexity = 3
                // Dst: (MOVPCLR)
/* 63348*/    /*Scope*/ 16, /*->63365*/
/* 63349*/      OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 63351*/      OPC_EmitMergeInputChains1_0,
/* 63352*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63355*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63358*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tBX_RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    2/*#Ops*/, 1, 2, 
                // Src: (ARMretflag) - Complexity = 3
                // Dst: (tBX_RET)
/* 63365*/    0, /*End of Scope*/
/* 63366*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::BRIND),// ->63413
/* 63369*/    OPC_RecordNode, // #0 = 'brind' chained node
/* 63370*/    OPC_RecordChild1, // #1 = $dst
/* 63371*/    OPC_CheckChild1Type, MVT::i32,
/* 63373*/    OPC_Scope, 9, /*->63384*/ // 3 children in Scope
/* 63375*/      OPC_CheckPatternPredicate, 57, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/* 63377*/      OPC_EmitMergeInputChains1_0,
/* 63378*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::BX), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (brind GPR:{ *:[i32] }:$dst) - Complexity = 3
                // Dst: (BX GPR:{ *:[i32] }:$dst)
/* 63384*/    /*Scope*/ 9, /*->63394*/
/* 63385*/      OPC_CheckPatternPredicate, 58, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/* 63387*/      OPC_EmitMergeInputChains1_0,
/* 63388*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::MOVPCRX), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (brind GPR:{ *:[i32] }:$dst) - Complexity = 3
                // Dst: (MOVPCRX GPR:{ *:[i32] }:$dst)
/* 63394*/    /*Scope*/ 17, /*->63412*/
/* 63395*/      OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 63397*/      OPC_EmitMergeInputChains1_0,
/* 63398*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63401*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63404*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tBRIND), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 2, 3, 
                // Src: (brind GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (tBRIND GPR:{ *:[i32] }:$Rm)
/* 63412*/    0, /*End of Scope*/
/* 63413*/  /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BR),// ->63471
/* 63416*/    OPC_RecordNode, // #0 = 'br' chained node
/* 63417*/    OPC_RecordChild1, // #1 = $target
/* 63418*/    OPC_MoveChild1,
/* 63419*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63422*/    OPC_MoveParent,
/* 63423*/    OPC_Scope, 9, /*->63434*/ // 3 children in Scope
/* 63425*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63427*/      OPC_EmitMergeInputChains1_0,
/* 63428*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::B), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (br (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (B (bb:{ *:[Other] }):$target)
/* 63434*/    /*Scope*/ 17, /*->63452*/
/* 63435*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63437*/      OPC_EmitMergeInputChains1_0,
/* 63438*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63441*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63444*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tB), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 2, 3, 
                // Src: (br (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (tB (bb:{ *:[Other] }):$target)
/* 63452*/    /*Scope*/ 17, /*->63470*/
/* 63453*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 63455*/      OPC_EmitMergeInputChains1_0,
/* 63456*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63459*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63462*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2B), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 2, 3, 
                // Src: (br (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (t2B (bb:{ *:[Other] }):$target)
/* 63470*/    0, /*End of Scope*/
/* 63471*/  /*SwitchOpcode*/ 38, TARGET_VAL(ARMISD::RRX),// ->63512
/* 63474*/    OPC_CaptureGlueInput,
/* 63475*/    OPC_RecordChild0, // #0 = $Rm
/* 63476*/    OPC_CheckType, MVT::i32,
/* 63478*/    OPC_Scope, 9, /*->63489*/ // 2 children in Scope
/* 63480*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63482*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::RRX), 0|OPFL_GlueInput,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ARMrrx:{ *:[i32] } GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (RRX:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 63489*/    /*Scope*/ 21, /*->63511*/
/* 63490*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63492*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63495*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63498*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63501*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RRX), 0|OPFL_GlueInput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMrrx:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2RRX:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 63511*/    0, /*End of Scope*/
/* 63512*/  /*SwitchOpcode*/ 35, TARGET_VAL(ARMISD::SRL_FLAG),// ->63550
/* 63515*/    OPC_RecordChild0, // #0 = $src
/* 63516*/    OPC_CheckType, MVT::i32,
/* 63518*/    OPC_Scope, 10, /*->63530*/ // 2 children in Scope
/* 63520*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63522*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MOVsrl_flag), 0|OPFL_GlueOutput,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ARMsrl_flag:{ *:[i32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (MOVsrl_flag:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src)
/* 63530*/    /*Scope*/ 18, /*->63549*/
/* 63531*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63533*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63536*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63539*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2MOVsrl_flag), 0|OPFL_GlueOutput,
                    MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMsrl_flag:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2MOVsrl_flag:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 63549*/    0, /*End of Scope*/
/* 63550*/  /*SwitchOpcode*/ 35, TARGET_VAL(ARMISD::SRA_FLAG),// ->63588
/* 63553*/    OPC_RecordChild0, // #0 = $src
/* 63554*/    OPC_CheckType, MVT::i32,
/* 63556*/    OPC_Scope, 10, /*->63568*/ // 2 children in Scope
/* 63558*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63560*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MOVsra_flag), 0|OPFL_GlueOutput,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ARMsra_flag:{ *:[i32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (MOVsra_flag:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$src)
/* 63568*/    /*Scope*/ 18, /*->63587*/
/* 63569*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63571*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63574*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63577*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2MOVsra_flag), 0|OPFL_GlueOutput,
                    MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMsra_flag:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2MOVsra_flag:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 63587*/    0, /*End of Scope*/
/* 63588*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::SMUL_LOHI),// ->63665
/* 63591*/    OPC_RecordChild0, // #0 = $Rn
/* 63592*/    OPC_RecordChild1, // #1 = $Rm
/* 63593*/    OPC_CheckType, MVT::i32,
/* 63595*/    OPC_Scope, 23, /*->63620*/ // 3 children in Scope
/* 63597*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 63599*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63602*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63605*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63608*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMULL), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (smullohi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SMULL:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63620*/    /*Scope*/ 23, /*->63644*/
/* 63621*/      OPC_CheckPatternPredicate, 11, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/* 63623*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63626*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63629*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63632*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMULLv5), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (smullohi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SMULLv5:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63644*/    /*Scope*/ 19, /*->63664*/
/* 63645*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63647*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63650*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63653*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMULL), 0,
                    MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smullohi:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2SMULL:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 63664*/    0, /*End of Scope*/
/* 63665*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::UMUL_LOHI),// ->63742
/* 63668*/    OPC_RecordChild0, // #0 = $Rn
/* 63669*/    OPC_RecordChild1, // #1 = $Rm
/* 63670*/    OPC_CheckType, MVT::i32,
/* 63672*/    OPC_Scope, 23, /*->63697*/ // 3 children in Scope
/* 63674*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 63676*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63679*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63682*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63685*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::UMULL), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (umullohi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (UMULL:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63697*/    /*Scope*/ 23, /*->63721*/
/* 63698*/      OPC_CheckPatternPredicate, 11, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/* 63700*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63703*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63706*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63709*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::UMULLv5), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (umullohi:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (UMULLv5:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63721*/    /*Scope*/ 19, /*->63741*/
/* 63722*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63724*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63727*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63730*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2UMULL), 0,
                    MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umullohi:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2UMULL:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 63741*/    0, /*End of Scope*/
/* 63742*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::MULHS),// ->63789
/* 63745*/    OPC_RecordChild0, // #0 = $Rn
/* 63746*/    OPC_RecordChild1, // #1 = $Rm
/* 63747*/    OPC_CheckType, MVT::i32,
/* 63749*/    OPC_Scope, 18, /*->63769*/ // 2 children in Scope
/* 63751*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 63753*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63756*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63759*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMUL), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SMMUL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63769*/    /*Scope*/ 18, /*->63788*/
/* 63770*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 63772*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63775*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63778*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMUL), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2SMMUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 63788*/    0, /*End of Scope*/
/* 63789*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::SMMLSR),// ->63837
/* 63792*/    OPC_RecordChild0, // #0 = $Rn
/* 63793*/    OPC_RecordChild1, // #1 = $Rm
/* 63794*/    OPC_RecordChild2, // #2 = $Ra
/* 63795*/    OPC_Scope, 19, /*->63816*/ // 2 children in Scope
/* 63797*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 63799*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63802*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63805*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMMLSR), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (ARMsmmlsr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 3
                // Dst: (SMMLSR:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 63816*/    /*Scope*/ 19, /*->63836*/
/* 63817*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 63819*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63822*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63825*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMMLSR), 0,
                    MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (ARMsmmlsr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 3
                // Dst: (t2SMMLSR:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 63836*/    0, /*End of Scope*/
/* 63837*/  /*SwitchOpcode*/ 44, TARGET_VAL(ARMISD::SMULWB),// ->63884
/* 63840*/    OPC_RecordChild0, // #0 = $Rn
/* 63841*/    OPC_RecordChild1, // #1 = $Rm
/* 63842*/    OPC_CheckType, MVT::i32,
/* 63844*/    OPC_Scope, 18, /*->63864*/ // 2 children in Scope
/* 63846*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 63848*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63851*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63854*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMsmulwb:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63864*/    /*Scope*/ 18, /*->63883*/
/* 63865*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 63867*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63870*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63873*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWB), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMsmulwb:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 63883*/    0, /*End of Scope*/
/* 63884*/  /*SwitchOpcode*/ 44, TARGET_VAL(ARMISD::SMULWT),// ->63931
/* 63887*/    OPC_RecordChild0, // #0 = $Rn
/* 63888*/    OPC_RecordChild1, // #1 = $Rm
/* 63889*/    OPC_CheckType, MVT::i32,
/* 63891*/    OPC_Scope, 18, /*->63911*/ // 2 children in Scope
/* 63893*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 63895*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63898*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63901*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWT), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMsmulwt:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 63911*/    /*Scope*/ 18, /*->63930*/
/* 63912*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 63914*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63917*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63920*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWT), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMsmulwt:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 63930*/    0, /*End of Scope*/
/* 63931*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALBB),// ->63984
/* 63934*/    OPC_RecordChild0, // #0 = $Rn
/* 63935*/    OPC_RecordChild1, // #1 = $Rm
/* 63936*/    OPC_RecordChild2, // #2 = $RLo
/* 63937*/    OPC_RecordChild3, // #3 = $RHi
/* 63938*/    OPC_Scope, 21, /*->63961*/ // 2 children in Scope
/* 63940*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 63942*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63945*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63948*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALBB), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlalbb:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALBB:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 63961*/    /*Scope*/ 21, /*->63983*/
/* 63962*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 63964*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63967*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63970*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALBB), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlalbb:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALBB:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 63983*/    0, /*End of Scope*/
/* 63984*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALBT),// ->64037
/* 63987*/    OPC_RecordChild0, // #0 = $Rn
/* 63988*/    OPC_RecordChild1, // #1 = $Rm
/* 63989*/    OPC_RecordChild2, // #2 = $RLo
/* 63990*/    OPC_RecordChild3, // #3 = $RHi
/* 63991*/    OPC_Scope, 21, /*->64014*/ // 2 children in Scope
/* 63993*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 63995*/      OPC_EmitInteger, MVT::i32, 14, 
/* 63998*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64001*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALBT), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlalbt:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALBT:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64014*/    /*Scope*/ 21, /*->64036*/
/* 64015*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64017*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64020*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64023*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALBT), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlalbt:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALBT:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64036*/    0, /*End of Scope*/
/* 64037*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALTB),// ->64090
/* 64040*/    OPC_RecordChild0, // #0 = $Rn
/* 64041*/    OPC_RecordChild1, // #1 = $Rm
/* 64042*/    OPC_RecordChild2, // #2 = $RLo
/* 64043*/    OPC_RecordChild3, // #3 = $RHi
/* 64044*/    OPC_Scope, 21, /*->64067*/ // 2 children in Scope
/* 64046*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 64048*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64051*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64054*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALTB), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlaltb:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALTB:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64067*/    /*Scope*/ 21, /*->64089*/
/* 64068*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64070*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64073*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64076*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALTB), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlaltb:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALTB:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64089*/    0, /*End of Scope*/
/* 64090*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALTT),// ->64143
/* 64093*/    OPC_RecordChild0, // #0 = $Rn
/* 64094*/    OPC_RecordChild1, // #1 = $Rm
/* 64095*/    OPC_RecordChild2, // #2 = $RLo
/* 64096*/    OPC_RecordChild3, // #3 = $RHi
/* 64097*/    OPC_Scope, 21, /*->64120*/ // 2 children in Scope
/* 64099*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 64101*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64104*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64107*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALTT), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlaltt:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALTT:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64120*/    /*Scope*/ 21, /*->64142*/
/* 64121*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64123*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64126*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64129*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALTT), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMsmlaltt:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$RLo, GPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALTT:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm, ?:{ *:[i32] }:$RLo, ?:{ *:[i32] }:$RHi)
/* 64142*/    0, /*End of Scope*/
/* 64143*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALD),// ->64196
/* 64146*/    OPC_RecordChild0, // #0 = $Rn
/* 64147*/    OPC_RecordChild1, // #1 = $Rm
/* 64148*/    OPC_RecordChild2, // #2 = $RLo
/* 64149*/    OPC_RecordChild3, // #3 = $RHi
/* 64150*/    OPC_Scope, 21, /*->64173*/ // 2 children in Scope
/* 64152*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64154*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64157*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64160*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALD), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlald:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALD:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi)
/* 64173*/    /*Scope*/ 21, /*->64195*/
/* 64174*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64176*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64179*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64182*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALD), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlald:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALD:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi)
/* 64195*/    0, /*End of Scope*/
/* 64196*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALDX),// ->64249
/* 64199*/    OPC_RecordChild0, // #0 = $Rn
/* 64200*/    OPC_RecordChild1, // #1 = $Rm
/* 64201*/    OPC_RecordChild2, // #2 = $RLo
/* 64202*/    OPC_RecordChild3, // #3 = $RHi
/* 64203*/    OPC_Scope, 21, /*->64226*/ // 2 children in Scope
/* 64205*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64207*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64210*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64213*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLALDX), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlaldx:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLALDX:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi)
/* 64226*/    /*Scope*/ 21, /*->64248*/
/* 64227*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64229*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64232*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64235*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLALDX), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlaldx:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLALDX:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi)
/* 64248*/    0, /*End of Scope*/
/* 64249*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLSLD),// ->64302
/* 64252*/    OPC_RecordChild0, // #0 = $Rn
/* 64253*/    OPC_RecordChild1, // #1 = $Rm
/* 64254*/    OPC_RecordChild2, // #2 = $RLo
/* 64255*/    OPC_RecordChild3, // #3 = $RHi
/* 64256*/    OPC_Scope, 21, /*->64279*/ // 2 children in Scope
/* 64258*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64260*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64263*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64266*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLSLD), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlsld:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLSLD:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi)
/* 64279*/    /*Scope*/ 21, /*->64301*/
/* 64280*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64282*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64285*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64288*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLSLD), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlsld:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLSLD:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi)
/* 64301*/    0, /*End of Scope*/
/* 64302*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLSLDX),// ->64355
/* 64305*/    OPC_RecordChild0, // #0 = $Rn
/* 64306*/    OPC_RecordChild1, // #1 = $Rm
/* 64307*/    OPC_RecordChild2, // #2 = $RLo
/* 64308*/    OPC_RecordChild3, // #3 = $RHi
/* 64309*/    OPC_Scope, 21, /*->64332*/ // 2 children in Scope
/* 64311*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64313*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64316*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64319*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::SMLSLDX), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlsldx:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (SMLSLDX:{ *:[i32] }:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$RLo, GPRnopc:{ *:[i32] }:$RHi)
/* 64332*/    /*Scope*/ 21, /*->64354*/
/* 64333*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 64335*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64338*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64341*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SMLSLDX), 0,
                    MVT::i32, MVT::i32, 6/*#Ops*/, 0, 1, 2, 3, 4, 5, 
                // Src: (ARMSmlsldx:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi) - Complexity = 3
                // Dst: (t2SMLSLDX:{ *:[i32] }:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$RLo, rGPR:{ *:[i32] }:$RHi)
/* 64354*/    0, /*End of Scope*/
/* 64355*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::SDIV),// ->64402
/* 64358*/    OPC_RecordChild0, // #0 = $Rn
/* 64359*/    OPC_RecordChild1, // #1 = $Rm
/* 64360*/    OPC_CheckType, MVT::i32,
/* 64362*/    OPC_Scope, 18, /*->64382*/ // 2 children in Scope
/* 64364*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb())
/* 64366*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64369*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64372*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SDIV), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 64382*/    /*Scope*/ 18, /*->64401*/
/* 64383*/      OPC_CheckPatternPredicate, 75, // (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 64385*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64388*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64391*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SDIV), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (sdiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2SDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 64401*/    0, /*End of Scope*/
/* 64402*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::UDIV),// ->64449
/* 64405*/    OPC_RecordChild0, // #0 = $Rn
/* 64406*/    OPC_RecordChild1, // #1 = $Rm
/* 64407*/    OPC_CheckType, MVT::i32,
/* 64409*/    OPC_Scope, 18, /*->64429*/ // 2 children in Scope
/* 64411*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb())
/* 64413*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64416*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64419*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::UDIV), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (udiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (UDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 64429*/    /*Scope*/ 18, /*->64448*/
/* 64430*/      OPC_CheckPatternPredicate, 75, // (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 64432*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64435*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64438*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UDIV), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (udiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2UDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 64448*/    0, /*End of Scope*/
/* 64449*/  /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::CTLZ),// ->64610
/* 64453*/    OPC_RecordChild0, // #0 = $Rm
/* 64454*/    OPC_SwitchType /*7 cases */, 38, MVT::i32,// ->64495
/* 64457*/      OPC_Scope, 17, /*->64476*/ // 2 children in Scope
/* 64459*/        OPC_CheckPatternPredicate, 51, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 64461*/        OPC_EmitInteger, MVT::i32, 14, 
/* 64464*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64467*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CLZ), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ctlz:{ *:[i32] } GPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (CLZ:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 64476*/      /*Scope*/ 17, /*->64494*/
/* 64477*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 64479*/        OPC_EmitInteger, MVT::i32, 14, 
/* 64482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64485*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CLZ), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ctlz:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (t2CLZ:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 64494*/      0, /*End of Scope*/
/* 64495*/    /*SwitchType*/ 17, MVT::v8i8,// ->64514
/* 64497*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64499*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64502*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64505*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCLZv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 64514*/    /*SwitchType*/ 17, MVT::v4i16,// ->64533
/* 64516*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64518*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64521*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64524*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv4i16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VCLZv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 64533*/    /*SwitchType*/ 17, MVT::v2i32,// ->64552
/* 64535*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64537*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64540*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64543*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv2i32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VCLZv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 64552*/    /*SwitchType*/ 17, MVT::v16i8,// ->64571
/* 64554*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64556*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64559*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64562*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCLZv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 64571*/    /*SwitchType*/ 17, MVT::v8i16,// ->64590
/* 64573*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64575*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64578*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64581*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VCLZv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 64590*/    /*SwitchType*/ 17, MVT::v4i32,// ->64609
/* 64592*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 64594*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64597*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64600*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLZv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctlz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VCLZv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 64609*/    0, // EndSwitchType
/* 64610*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITREVERSE),// ->64654
/* 64613*/    OPC_RecordChild0, // #0 = $Rm
/* 64614*/    OPC_CheckType, MVT::i32,
/* 64616*/    OPC_Scope, 17, /*->64635*/ // 2 children in Scope
/* 64618*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 64620*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64623*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64626*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::RBIT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bitreverse:{ *:[i32] } GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (RBIT:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 64635*/    /*Scope*/ 17, /*->64653*/
/* 64636*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 64638*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64641*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64644*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2RBIT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bitreverse:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2RBIT:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 64653*/    0, /*End of Scope*/
/* 64654*/  /*SwitchOpcode*/ 59, TARGET_VAL(ISD::BSWAP),// ->64716
/* 64657*/    OPC_RecordChild0, // #0 = $Rm
/* 64658*/    OPC_CheckType, MVT::i32,
/* 64660*/    OPC_Scope, 17, /*->64679*/ // 3 children in Scope
/* 64662*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64664*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64667*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64670*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::REV), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (REV:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
/* 64679*/    /*Scope*/ 17, /*->64697*/
/* 64680*/      OPC_CheckPatternPredicate, 14, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 64682*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64685*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64688*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tREV), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (tREV:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
/* 64697*/    /*Scope*/ 17, /*->64715*/
/* 64698*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 64700*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64703*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64706*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2REV), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (t2REV:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
/* 64715*/    0, /*End of Scope*/
/* 64716*/  /*SwitchOpcode*/ 59, TARGET_VAL(ARMISD::THREAD_POINTER),// ->64778
/* 64719*/    OPC_CheckType, MVT::i32,
/* 64721*/    OPC_Scope, 8, /*->64731*/ // 3 children in Scope
/* 64723*/      OPC_CheckPatternPredicate, 76, // (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard())
/* 64725*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::TPsoft), 0,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (ARMthread_pointer:{ *:[i32] }) - Complexity = 3
                // Dst: (TPsoft:{ *:[i32] })
/* 64731*/    /*Scope*/ 36, /*->64768*/
/* 64732*/      OPC_CheckPatternPredicate, 77, // (!Subtarget->isThumb()) && (Subtarget->isReadTPHard())
/* 64734*/      OPC_EmitInteger, MVT::i32, 15, 
/* 64737*/      OPC_EmitInteger, MVT::i32, 0, 
/* 64740*/      OPC_EmitInteger, MVT::i32, 13, 
/* 64743*/      OPC_EmitInteger, MVT::i32, 0, 
/* 64746*/      OPC_EmitInteger, MVT::i32, 3, 
/* 64749*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64752*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64755*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MRC), 0,
                    MVT::i32, 7/*#Ops*/, 0, 1, 2, 3, 4, 5, 6, 
                // Src: (ARMthread_pointer:{ *:[i32] }) - Complexity = 3
                // Dst: (MRC:{ *:[i32] } 15:{ *:[i32] }, 0:{ *:[i32] }, 13:{ *:[i32] }, 0:{ *:[i32] }, 3:{ *:[i32] })
/* 64768*/    /*Scope*/ 8, /*->64777*/
/* 64769*/      OPC_CheckPatternPredicate, 24, // (Subtarget->isThumb())
/* 64771*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tTPsoft), 0,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (ARMthread_pointer:{ *:[i32] }) - Complexity = 3
                // Dst: (tTPsoft:{ *:[i32] })
/* 64777*/    0, /*End of Scope*/
/* 64778*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::EH_SJLJ_LONGJMP),// ->64826
/* 64781*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_longjmp' chained node
/* 64782*/    OPC_RecordChild1, // #1 = $src
/* 64783*/    OPC_CheckChild1Type, MVT::i32,
/* 64785*/    OPC_RecordChild2, // #2 = $scratch
/* 64786*/    OPC_CheckChild2Type, MVT::i32,
/* 64788*/    OPC_Scope, 11, /*->64801*/ // 3 children in Scope
/* 64790*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 64792*/      OPC_EmitMergeInputChains1_0,
/* 64793*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::Int_eh_sjlj_longjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_longjmp GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch) - Complexity = 3
                // Dst: (Int_eh_sjlj_longjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch)
/* 64801*/    /*Scope*/ 11, /*->64813*/
/* 64802*/      OPC_CheckPatternPredicate, 78, // (!Subtarget->isTargetWindows()) && (Subtarget->isThumb())
/* 64804*/      OPC_EmitMergeInputChains1_0,
/* 64805*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tInt_eh_sjlj_longjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_longjmp GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch) - Complexity = 3
                // Dst: (tInt_eh_sjlj_longjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch)
/* 64813*/    /*Scope*/ 11, /*->64825*/
/* 64814*/      OPC_CheckPatternPredicate, 23, // (Subtarget->isThumb()) && (Subtarget->isTargetWindows())
/* 64816*/      OPC_EmitMergeInputChains1_0,
/* 64817*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tInt_WIN_eh_sjlj_longjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_longjmp GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch) - Complexity = 3
                // Dst: (tInt_WIN_eh_sjlj_longjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$scratch)
/* 64825*/    0, /*End of Scope*/
/* 64826*/  /*SwitchOpcode*/ 41, TARGET_VAL(ARMISD::MEMBARRIER_MCR),// ->64870
/* 64829*/    OPC_RecordNode, // #0 = 'ARMMemBarrierMCR' chained node
/* 64830*/    OPC_RecordChild1, // #1 = $zero
/* 64831*/    OPC_CheckChild1Type, MVT::i32,
/* 64833*/    OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 64835*/    OPC_EmitMergeInputChains1_0,
/* 64836*/    OPC_EmitInteger, MVT::i32, 15, 
/* 64839*/    OPC_EmitInteger, MVT::i32, 0, 
/* 64842*/    OPC_EmitInteger, MVT::i32, 7, 
/* 64845*/    OPC_EmitInteger, MVT::i32, 10, 
/* 64848*/    OPC_EmitInteger, MVT::i32, 5, 
/* 64851*/    OPC_EmitInteger, MVT::i32, 14, 
/* 64854*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64857*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::MCR), 0|OPFL_Chain,
                  8/*#Ops*/, 2, 3, 1, 4, 5, 6, 7, 8, 
              // Src: (ARMMemBarrierMCR GPR:{ *:[i32] }:$zero) - Complexity = 3
              // Dst: (MCR 15:{ *:[i32] }, 0:{ *:[i32] }, GPR:{ *:[i32] }:$zero, 7:{ *:[i32] }, 10:{ *:[i32] }, 5:{ *:[i32] })
/* 64870*/  /*SwitchOpcode*/ 5|128,14/*1797*/, TARGET_VAL(ISD::BITCAST),// ->66671
/* 64874*/    OPC_Scope, 22, /*->64898*/ // 3 children in Scope
/* 64876*/      OPC_RecordChild0, // #0 = $Sn
/* 64877*/      OPC_CheckChild0Type, MVT::f32,
/* 64879*/      OPC_CheckType, MVT::i32,
/* 64881*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 64883*/      OPC_EmitInteger, MVT::i32, 14, 
/* 64886*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64889*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVRS), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bitconvert:{ *:[i32] } SPR:{ *:[f32] }:$Sn) - Complexity = 3
                // Dst: (VMOVRS:{ *:[i32] } SPR:{ *:[f32] }:$Sn)
/* 64898*/    /*Scope*/ 31, /*->64930*/
/* 64899*/      OPC_MoveChild0,
/* 64900*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 64903*/      OPC_RecordChild0, // #0 = $src
/* 64904*/      OPC_CheckChild0Type, MVT::v2i32,
/* 64906*/      OPC_RecordChild1, // #1 = $lane
/* 64907*/      OPC_MoveChild1,
/* 64908*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64911*/      OPC_MoveParent,
/* 64912*/      OPC_CheckType, MVT::i32,
/* 64914*/      OPC_MoveParent,
/* 64915*/      OPC_CheckType, MVT::f32,
/* 64917*/      OPC_EmitConvertToTarget, 1,
/* 64919*/      OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 64922*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 0, 3, 
                // Src: (bitconvert:{ *:[f32] } (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$src, (imm:{ *:[iPTR] }):$lane)) - Complexity = 9
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } DPR:{ *:[v2i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/* 64930*/    /*Scope*/ 74|128,13/*1738*/, /*->66670*/
/* 64932*/      OPC_RecordChild0, // #0 = $src
/* 64933*/      OPC_Scope, 121, /*->65056*/ // 15 children in Scope
/* 64935*/        OPC_CheckChild0Type, MVT::v1i64,
/* 64937*/        OPC_SwitchType /*5 cases */, 3, MVT::f64,// ->64943
/* 64940*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[f64] }:$src
/* 64943*/        /*SwitchType*/ 26, MVT::v2i32,// ->64971
/* 64945*/          OPC_Scope, 5, /*->64952*/ // 2 children in Scope
/* 64947*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 64949*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/* 64952*/          /*Scope*/ 17, /*->64970*/
/* 64953*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 64955*/            OPC_EmitInteger, MVT::i32, 14, 
/* 64958*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64961*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src)
/* 64970*/          0, /*End of Scope*/
/* 64971*/        /*SwitchType*/ 26, MVT::v4i16,// ->64999
/* 64973*/          OPC_Scope, 5, /*->64980*/ // 2 children in Scope
/* 64975*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 64977*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/* 64980*/          /*Scope*/ 17, /*->64998*/
/* 64981*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 64983*/            OPC_EmitInteger, MVT::i32, 14, 
/* 64986*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64989*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src)
/* 64998*/          0, /*End of Scope*/
/* 64999*/        /*SwitchType*/ 26, MVT::v8i8,// ->65027
/* 65001*/          OPC_Scope, 5, /*->65008*/ // 2 children in Scope
/* 65003*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65005*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/* 65008*/          /*Scope*/ 17, /*->65026*/
/* 65009*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65011*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65014*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65017*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                      // Dst: (VREV64d8:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src)
/* 65026*/          0, /*End of Scope*/
/* 65027*/        /*SwitchType*/ 26, MVT::v2f32,// ->65055
/* 65029*/          OPC_Scope, 5, /*->65036*/ // 2 children in Scope
/* 65031*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65033*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/* 65036*/          /*Scope*/ 17, /*->65054*/
/* 65037*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65039*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65042*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65045*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src)
/* 65054*/          0, /*End of Scope*/
/* 65055*/        0, // EndSwitchType
/* 65056*/      /*Scope*/ 121, /*->65178*/
/* 65057*/        OPC_CheckChild0Type, MVT::v2i32,
/* 65059*/        OPC_SwitchType /*5 cases */, 26, MVT::f64,// ->65088
/* 65062*/          OPC_Scope, 5, /*->65069*/ // 2 children in Scope
/* 65064*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65066*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/* 65069*/          /*Scope*/ 17, /*->65087*/
/* 65070*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65072*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65075*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65078*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[f64] } DPR:{ *:[v2i32] }:$src)
/* 65087*/          0, /*End of Scope*/
/* 65088*/        /*SwitchType*/ 26, MVT::v1i64,// ->65116
/* 65090*/          OPC_Scope, 5, /*->65097*/ // 2 children in Scope
/* 65092*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65094*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/* 65097*/          /*Scope*/ 17, /*->65115*/
/* 65098*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65100*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65103*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65106*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src)
/* 65115*/          0, /*End of Scope*/
/* 65116*/        /*SwitchType*/ 26, MVT::v4i16,// ->65144
/* 65118*/          OPC_Scope, 5, /*->65125*/ // 2 children in Scope
/* 65120*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65122*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/* 65125*/          /*Scope*/ 17, /*->65143*/
/* 65126*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65128*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65131*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65134*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src)
/* 65143*/          0, /*End of Scope*/
/* 65144*/        /*SwitchType*/ 26, MVT::v8i8,// ->65172
/* 65146*/          OPC_Scope, 5, /*->65153*/ // 2 children in Scope
/* 65148*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65150*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/* 65153*/          /*Scope*/ 17, /*->65171*/
/* 65154*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65156*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65159*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65162*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                      // Dst: (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src)
/* 65171*/          0, /*End of Scope*/
/* 65172*/        /*SwitchType*/ 3, MVT::v2f32,// ->65177
/* 65174*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v2f32] }:$src
/* 65177*/        0, // EndSwitchType
/* 65178*/      /*Scope*/ 16|128,1/*144*/, /*->65324*/
/* 65180*/        OPC_CheckChild0Type, MVT::v4i16,
/* 65182*/        OPC_SwitchType /*5 cases */, 26, MVT::f64,// ->65211
/* 65185*/          OPC_Scope, 5, /*->65192*/ // 2 children in Scope
/* 65187*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65189*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/* 65192*/          /*Scope*/ 17, /*->65210*/
/* 65193*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65195*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65198*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65201*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[f64] } DPR:{ *:[v4i16] }:$src)
/* 65210*/          0, /*End of Scope*/
/* 65211*/        /*SwitchType*/ 26, MVT::v1i64,// ->65239
/* 65213*/          OPC_Scope, 5, /*->65220*/ // 2 children in Scope
/* 65215*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65217*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/* 65220*/          /*Scope*/ 17, /*->65238*/
/* 65221*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65223*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65226*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65229*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src)
/* 65238*/          0, /*End of Scope*/
/* 65239*/        /*SwitchType*/ 26, MVT::v2i32,// ->65267
/* 65241*/          OPC_Scope, 5, /*->65248*/ // 2 children in Scope
/* 65243*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65245*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/* 65248*/          /*Scope*/ 17, /*->65266*/
/* 65249*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65251*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65254*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65257*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src)
/* 65266*/          0, /*End of Scope*/
/* 65267*/        /*SwitchType*/ 26, MVT::v8i8,// ->65295
/* 65269*/          OPC_Scope, 5, /*->65276*/ // 2 children in Scope
/* 65271*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65273*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/* 65276*/          /*Scope*/ 17, /*->65294*/
/* 65277*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65279*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65282*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65285*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                      // Dst: (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src)
/* 65294*/          0, /*End of Scope*/
/* 65295*/        /*SwitchType*/ 26, MVT::v2f32,// ->65323
/* 65297*/          OPC_Scope, 5, /*->65304*/ // 2 children in Scope
/* 65299*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65301*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/* 65304*/          /*Scope*/ 17, /*->65322*/
/* 65305*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65307*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65310*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65313*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src)
/* 65322*/          0, /*End of Scope*/
/* 65323*/        0, // EndSwitchType
/* 65324*/      /*Scope*/ 30, /*->65355*/
/* 65325*/        OPC_CheckChild0Type, MVT::v4f16,
/* 65327*/        OPC_CheckType, MVT::f64,
/* 65329*/        OPC_Scope, 5, /*->65336*/ // 2 children in Scope
/* 65331*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65333*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[f64] }:$src
/* 65336*/        /*Scope*/ 17, /*->65354*/
/* 65337*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65339*/          OPC_EmitInteger, MVT::i32, 14, 
/* 65342*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65345*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                        MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (VREV64d16:{ *:[f64] } DPR:{ *:[v4f16] }:$src)
/* 65354*/        0, /*End of Scope*/
/* 65355*/      /*Scope*/ 16|128,1/*144*/, /*->65501*/
/* 65357*/        OPC_CheckChild0Type, MVT::v8i8,
/* 65359*/        OPC_SwitchType /*5 cases */, 26, MVT::f64,// ->65388
/* 65362*/          OPC_Scope, 5, /*->65369*/ // 2 children in Scope
/* 65364*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65366*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/* 65369*/          /*Scope*/ 17, /*->65387*/
/* 65370*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65372*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65375*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65378*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV64d8:{ *:[f64] } DPR:{ *:[v8i8] }:$src)
/* 65387*/          0, /*End of Scope*/
/* 65388*/        /*SwitchType*/ 26, MVT::v1i64,// ->65416
/* 65390*/          OPC_Scope, 5, /*->65397*/ // 2 children in Scope
/* 65392*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65394*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/* 65397*/          /*Scope*/ 17, /*->65415*/
/* 65398*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65400*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65403*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65406*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV64d8:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src)
/* 65415*/          0, /*End of Scope*/
/* 65416*/        /*SwitchType*/ 26, MVT::v2i32,// ->65444
/* 65418*/          OPC_Scope, 5, /*->65425*/ // 2 children in Scope
/* 65420*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65422*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/* 65425*/          /*Scope*/ 17, /*->65443*/
/* 65426*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65428*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65431*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65434*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV32d8:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src)
/* 65443*/          0, /*End of Scope*/
/* 65444*/        /*SwitchType*/ 26, MVT::v4i16,// ->65472
/* 65446*/          OPC_Scope, 5, /*->65453*/ // 2 children in Scope
/* 65448*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65450*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/* 65453*/          /*Scope*/ 17, /*->65471*/
/* 65454*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65456*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65459*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65462*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV16d8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src)
/* 65471*/          0, /*End of Scope*/
/* 65472*/        /*SwitchType*/ 26, MVT::v2f32,// ->65500
/* 65474*/          OPC_Scope, 5, /*->65481*/ // 2 children in Scope
/* 65476*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65478*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/* 65481*/          /*Scope*/ 17, /*->65499*/
/* 65482*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65484*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65487*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65490*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV32d8:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src)
/* 65499*/          0, /*End of Scope*/
/* 65500*/        0, // EndSwitchType
/* 65501*/      /*Scope*/ 121, /*->65623*/
/* 65502*/        OPC_CheckChild0Type, MVT::v2f32,
/* 65504*/        OPC_SwitchType /*5 cases */, 26, MVT::f64,// ->65533
/* 65507*/          OPC_Scope, 5, /*->65514*/ // 2 children in Scope
/* 65509*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65511*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/* 65514*/          /*Scope*/ 17, /*->65532*/
/* 65515*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65517*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65520*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65523*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[f64] } DPR:{ *:[v2f32] }:$src)
/* 65532*/          0, /*End of Scope*/
/* 65533*/        /*SwitchType*/ 26, MVT::v1i64,// ->65561
/* 65535*/          OPC_Scope, 5, /*->65542*/ // 2 children in Scope
/* 65537*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65539*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/* 65542*/          /*Scope*/ 17, /*->65560*/
/* 65543*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65545*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65548*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65551*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src)
/* 65560*/          0, /*End of Scope*/
/* 65561*/        /*SwitchType*/ 3, MVT::v2i32,// ->65566
/* 65563*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v2i32] }:$src
/* 65566*/        /*SwitchType*/ 26, MVT::v4i16,// ->65594
/* 65568*/          OPC_Scope, 5, /*->65575*/ // 2 children in Scope
/* 65570*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65572*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/* 65575*/          /*Scope*/ 17, /*->65593*/
/* 65576*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65578*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65581*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65584*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src)
/* 65593*/          0, /*End of Scope*/
/* 65594*/        /*SwitchType*/ 26, MVT::v8i8,// ->65622
/* 65596*/          OPC_Scope, 5, /*->65603*/ // 2 children in Scope
/* 65598*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65600*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/* 65603*/          /*Scope*/ 17, /*->65621*/
/* 65604*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65606*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65609*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65612*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                      // Dst: (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src)
/* 65621*/          0, /*End of Scope*/
/* 65622*/        0, // EndSwitchType
/* 65623*/      /*Scope*/ 54, /*->65678*/
/* 65624*/        OPC_CheckChild0Type, MVT::i32,
/* 65626*/        OPC_CheckType, MVT::f32,
/* 65628*/        OPC_Scope, 17, /*->65647*/ // 2 children in Scope
/* 65630*/          OPC_CheckPatternPredicate, 79, // (Subtarget->hasVFP2()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
/* 65632*/          OPC_EmitInteger, MVT::i32, 14, 
/* 65635*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65638*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVSR), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$Rt) - Complexity = 3
                    // Dst: (VMOVSR:{ *:[f32] } GPR:{ *:[i32] }:$Rt)
/* 65647*/        /*Scope*/ 29, /*->65677*/
/* 65648*/          OPC_CheckPatternPredicate, 80, // (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON())
/* 65650*/          OPC_EmitInteger, MVT::i32, 14, 
/* 65653*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65656*/          OPC_EmitNode1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::f64, 4/*#Ops*/, 0, 0, 1, 2,  // Results = #3
/* 65666*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 65669*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 3, 4, 
                    // Src: (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$a), ssub_0:{ *:[i32] })
/* 65677*/        0, /*End of Scope*/
/* 65678*/      /*Scope*/ 0|128,1/*128*/, /*->65808*/
/* 65680*/        OPC_CheckChild0Type, MVT::f64,
/* 65682*/        OPC_SwitchType /*6 cases */, 3, MVT::v1i64,// ->65688
/* 65685*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v1i64] }:$src
/* 65688*/        /*SwitchType*/ 26, MVT::v2i32,// ->65716
/* 65690*/          OPC_Scope, 5, /*->65697*/ // 2 children in Scope
/* 65692*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65694*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/* 65697*/          /*Scope*/ 17, /*->65715*/
/* 65698*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65700*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65703*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65706*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v2i32] } DPR:{ *:[f64] }:$src)
/* 65715*/          0, /*End of Scope*/
/* 65716*/        /*SwitchType*/ 26, MVT::v4i16,// ->65744
/* 65718*/          OPC_Scope, 5, /*->65725*/ // 2 children in Scope
/* 65720*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65722*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/* 65725*/          /*Scope*/ 17, /*->65743*/
/* 65726*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65728*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65731*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65734*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v4i16] } DPR:{ *:[f64] }:$src)
/* 65743*/          0, /*End of Scope*/
/* 65744*/        /*SwitchType*/ 26, MVT::v8i8,// ->65772
/* 65746*/          OPC_Scope, 5, /*->65753*/ // 2 children in Scope
/* 65748*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65750*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/* 65753*/          /*Scope*/ 17, /*->65771*/
/* 65754*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65756*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65759*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65762*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VREV64d8:{ *:[v8i8] } DPR:{ *:[f64] }:$src)
/* 65771*/          0, /*End of Scope*/
/* 65772*/        /*SwitchType*/ 26, MVT::v2f32,// ->65800
/* 65774*/          OPC_Scope, 5, /*->65781*/ // 2 children in Scope
/* 65776*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65778*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/* 65781*/          /*Scope*/ 17, /*->65799*/
/* 65782*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65784*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65787*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65790*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VREV64d32:{ *:[v2f32] } DPR:{ *:[f64] }:$src)
/* 65799*/          0, /*End of Scope*/
/* 65800*/        /*SwitchType*/ 5, MVT::v4f16,// ->65807
/* 65802*/          OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65804*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v4f16] }:$src
/* 65807*/        0, // EndSwitchType
/* 65808*/      /*Scope*/ 121, /*->65930*/
/* 65809*/        OPC_CheckChild0Type, MVT::v4i32,
/* 65811*/        OPC_SwitchType /*5 cases */, 26, MVT::v2i64,// ->65840
/* 65814*/          OPC_Scope, 5, /*->65821*/ // 2 children in Scope
/* 65816*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65818*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/* 65821*/          /*Scope*/ 17, /*->65839*/
/* 65822*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65824*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65827*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65830*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src)
/* 65839*/          0, /*End of Scope*/
/* 65840*/        /*SwitchType*/ 26, MVT::v8i16,// ->65868
/* 65842*/          OPC_Scope, 5, /*->65849*/ // 2 children in Scope
/* 65844*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65846*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/* 65849*/          /*Scope*/ 17, /*->65867*/
/* 65850*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65852*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65855*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65858*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src)
/* 65867*/          0, /*End of Scope*/
/* 65868*/        /*SwitchType*/ 26, MVT::v16i8,// ->65896
/* 65870*/          OPC_Scope, 5, /*->65877*/ // 2 children in Scope
/* 65872*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65874*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/* 65877*/          /*Scope*/ 17, /*->65895*/
/* 65878*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65880*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65883*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65886*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src)
/* 65895*/          0, /*End of Scope*/
/* 65896*/        /*SwitchType*/ 3, MVT::v4f32,// ->65901
/* 65898*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: QPR:{ *:[v4f32] }:$src
/* 65901*/        /*SwitchType*/ 26, MVT::v2f64,// ->65929
/* 65903*/          OPC_Scope, 5, /*->65910*/ // 2 children in Scope
/* 65905*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65907*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/* 65910*/          /*Scope*/ 17, /*->65928*/
/* 65911*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65913*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65916*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65919*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src)
/* 65928*/          0, /*End of Scope*/
/* 65929*/        0, // EndSwitchType
/* 65930*/      /*Scope*/ 16|128,1/*144*/, /*->66076*/
/* 65932*/        OPC_CheckChild0Type, MVT::v8i16,
/* 65934*/        OPC_SwitchType /*5 cases */, 26, MVT::v2i64,// ->65963
/* 65937*/          OPC_Scope, 5, /*->65944*/ // 2 children in Scope
/* 65939*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65941*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/* 65944*/          /*Scope*/ 17, /*->65962*/
/* 65945*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65947*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65950*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65953*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src)
/* 65962*/          0, /*End of Scope*/
/* 65963*/        /*SwitchType*/ 26, MVT::v4i32,// ->65991
/* 65965*/          OPC_Scope, 5, /*->65972*/ // 2 children in Scope
/* 65967*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65969*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/* 65972*/          /*Scope*/ 17, /*->65990*/
/* 65973*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 65975*/            OPC_EmitInteger, MVT::i32, 14, 
/* 65978*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65981*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src)
/* 65990*/          0, /*End of Scope*/
/* 65991*/        /*SwitchType*/ 26, MVT::v16i8,// ->66019
/* 65993*/          OPC_Scope, 5, /*->66000*/ // 2 children in Scope
/* 65995*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 65997*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/* 66000*/          /*Scope*/ 17, /*->66018*/
/* 66001*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66003*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66006*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66009*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src)
/* 66018*/          0, /*End of Scope*/
/* 66019*/        /*SwitchType*/ 26, MVT::v4f32,// ->66047
/* 66021*/          OPC_Scope, 5, /*->66028*/ // 2 children in Scope
/* 66023*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66025*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/* 66028*/          /*Scope*/ 17, /*->66046*/
/* 66029*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66031*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66034*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66037*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src)
/* 66046*/          0, /*End of Scope*/
/* 66047*/        /*SwitchType*/ 26, MVT::v2f64,// ->66075
/* 66049*/          OPC_Scope, 5, /*->66056*/ // 2 children in Scope
/* 66051*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66053*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/* 66056*/          /*Scope*/ 17, /*->66074*/
/* 66057*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66059*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66062*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66065*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src)
/* 66074*/          0, /*End of Scope*/
/* 66075*/        0, // EndSwitchType
/* 66076*/      /*Scope*/ 16|128,1/*144*/, /*->66222*/
/* 66078*/        OPC_CheckChild0Type, MVT::v16i8,
/* 66080*/        OPC_SwitchType /*5 cases */, 26, MVT::v2i64,// ->66109
/* 66083*/          OPC_Scope, 5, /*->66090*/ // 2 children in Scope
/* 66085*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66087*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/* 66090*/          /*Scope*/ 17, /*->66108*/
/* 66091*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66093*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66096*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66099*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV64q8:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src)
/* 66108*/          0, /*End of Scope*/
/* 66109*/        /*SwitchType*/ 26, MVT::v4i32,// ->66137
/* 66111*/          OPC_Scope, 5, /*->66118*/ // 2 children in Scope
/* 66113*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66115*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/* 66118*/          /*Scope*/ 17, /*->66136*/
/* 66119*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66121*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66124*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66127*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV32q8:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src)
/* 66136*/          0, /*End of Scope*/
/* 66137*/        /*SwitchType*/ 26, MVT::v8i16,// ->66165
/* 66139*/          OPC_Scope, 5, /*->66146*/ // 2 children in Scope
/* 66141*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66143*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/* 66146*/          /*Scope*/ 17, /*->66164*/
/* 66147*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66149*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66152*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66155*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV16q8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src)
/* 66164*/          0, /*End of Scope*/
/* 66165*/        /*SwitchType*/ 26, MVT::v4f32,// ->66193
/* 66167*/          OPC_Scope, 5, /*->66174*/ // 2 children in Scope
/* 66169*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66171*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/* 66174*/          /*Scope*/ 17, /*->66192*/
/* 66175*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66177*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66180*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66183*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV32q8:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src)
/* 66192*/          0, /*End of Scope*/
/* 66193*/        /*SwitchType*/ 26, MVT::v2f64,// ->66221
/* 66195*/          OPC_Scope, 5, /*->66202*/ // 2 children in Scope
/* 66197*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66199*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/* 66202*/          /*Scope*/ 17, /*->66220*/
/* 66203*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66205*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66208*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66211*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV64q8:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src)
/* 66220*/          0, /*End of Scope*/
/* 66221*/        0, // EndSwitchType
/* 66222*/      /*Scope*/ 21|128,1/*149*/, /*->66373*/
/* 66224*/        OPC_CheckChild0Type, MVT::v2f64,
/* 66226*/        OPC_SwitchType /*6 cases */, 3, MVT::v2i64,// ->66232
/* 66229*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: QPR:{ *:[v2i64] }:$src
/* 66232*/        /*SwitchType*/ 26, MVT::v4i32,// ->66260
/* 66234*/          OPC_Scope, 5, /*->66241*/ // 2 children in Scope
/* 66236*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66238*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/* 66241*/          /*Scope*/ 17, /*->66259*/
/* 66242*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66244*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66247*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66250*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src)
/* 66259*/          0, /*End of Scope*/
/* 66260*/        /*SwitchType*/ 26, MVT::v8i16,// ->66288
/* 66262*/          OPC_Scope, 5, /*->66269*/ // 2 children in Scope
/* 66264*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66266*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/* 66269*/          /*Scope*/ 17, /*->66287*/
/* 66270*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66272*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66275*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66278*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src)
/* 66287*/          0, /*End of Scope*/
/* 66288*/        /*SwitchType*/ 26, MVT::v16i8,// ->66316
/* 66290*/          OPC_Scope, 5, /*->66297*/ // 2 children in Scope
/* 66292*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66294*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/* 66297*/          /*Scope*/ 17, /*->66315*/
/* 66298*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66300*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66303*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66306*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src)
/* 66315*/          0, /*End of Scope*/
/* 66316*/        /*SwitchType*/ 26, MVT::v8f16,// ->66344
/* 66318*/          OPC_Scope, 5, /*->66325*/ // 2 children in Scope
/* 66320*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66322*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/* 66325*/          /*Scope*/ 17, /*->66343*/
/* 66326*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66328*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66331*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66334*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src)
/* 66343*/          0, /*End of Scope*/
/* 66344*/        /*SwitchType*/ 26, MVT::v4f32,// ->66372
/* 66346*/          OPC_Scope, 5, /*->66353*/ // 2 children in Scope
/* 66348*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66350*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/* 66353*/          /*Scope*/ 17, /*->66371*/
/* 66354*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66356*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66359*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66362*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src)
/* 66371*/          0, /*End of Scope*/
/* 66372*/        0, // EndSwitchType
/* 66373*/      /*Scope*/ 121, /*->66495*/
/* 66374*/        OPC_CheckChild0Type, MVT::v4f32,
/* 66376*/        OPC_SwitchType /*5 cases */, 26, MVT::v2i64,// ->66405
/* 66379*/          OPC_Scope, 5, /*->66386*/ // 2 children in Scope
/* 66381*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66383*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/* 66386*/          /*Scope*/ 17, /*->66404*/
/* 66387*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66389*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66392*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66395*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src)
/* 66404*/          0, /*End of Scope*/
/* 66405*/        /*SwitchType*/ 3, MVT::v4i32,// ->66410
/* 66407*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: QPR:{ *:[v4i32] }:$src
/* 66410*/        /*SwitchType*/ 26, MVT::v8i16,// ->66438
/* 66412*/          OPC_Scope, 5, /*->66419*/ // 2 children in Scope
/* 66414*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66416*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/* 66419*/          /*Scope*/ 17, /*->66437*/
/* 66420*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66422*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66425*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66428*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src)
/* 66437*/          0, /*End of Scope*/
/* 66438*/        /*SwitchType*/ 26, MVT::v16i8,// ->66466
/* 66440*/          OPC_Scope, 5, /*->66447*/ // 2 children in Scope
/* 66442*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66444*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/* 66447*/          /*Scope*/ 17, /*->66465*/
/* 66448*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66450*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66453*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66456*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src)
/* 66465*/          0, /*End of Scope*/
/* 66466*/        /*SwitchType*/ 26, MVT::v2f64,// ->66494
/* 66468*/          OPC_Scope, 5, /*->66475*/ // 2 children in Scope
/* 66470*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66472*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/* 66475*/          /*Scope*/ 17, /*->66493*/
/* 66476*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66478*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66481*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66484*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src)
/* 66493*/          0, /*End of Scope*/
/* 66494*/        0, // EndSwitchType
/* 66495*/      /*Scope*/ 121, /*->66617*/
/* 66496*/        OPC_CheckChild0Type, MVT::v2i64,
/* 66498*/        OPC_SwitchType /*5 cases */, 26, MVT::v4i32,// ->66527
/* 66501*/          OPC_Scope, 5, /*->66508*/ // 2 children in Scope
/* 66503*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66505*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/* 66508*/          /*Scope*/ 17, /*->66526*/
/* 66509*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66511*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66514*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66517*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src)
/* 66526*/          0, /*End of Scope*/
/* 66527*/        /*SwitchType*/ 26, MVT::v8i16,// ->66555
/* 66529*/          OPC_Scope, 5, /*->66536*/ // 2 children in Scope
/* 66531*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66533*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/* 66536*/          /*Scope*/ 17, /*->66554*/
/* 66537*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66539*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66542*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66545*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src)
/* 66554*/          0, /*End of Scope*/
/* 66555*/        /*SwitchType*/ 26, MVT::v16i8,// ->66583
/* 66557*/          OPC_Scope, 5, /*->66564*/ // 2 children in Scope
/* 66559*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66561*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/* 66564*/          /*Scope*/ 17, /*->66582*/
/* 66565*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66567*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66570*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66573*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src)
/* 66582*/          0, /*End of Scope*/
/* 66583*/        /*SwitchType*/ 26, MVT::v4f32,// ->66611
/* 66585*/          OPC_Scope, 5, /*->66592*/ // 2 children in Scope
/* 66587*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66589*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/* 66592*/          /*Scope*/ 17, /*->66610*/
/* 66593*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66595*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66598*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66601*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src)
/* 66610*/          0, /*End of Scope*/
/* 66611*/        /*SwitchType*/ 3, MVT::v2f64,// ->66616
/* 66613*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: QPR:{ *:[v2f64] }:$src
/* 66616*/        0, // EndSwitchType
/* 66617*/      /*Scope*/ 51, /*->66669*/
/* 66618*/        OPC_CheckChild0Type, MVT::v8f16,
/* 66620*/        OPC_SwitchType /*2 cases */, 26, MVT::v2f64,// ->66649
/* 66623*/          OPC_Scope, 5, /*->66630*/ // 2 children in Scope
/* 66625*/            OPC_CheckPatternPredicate, 18, // (MF->getDataLayout().isLittleEndian())
/* 66627*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/* 66630*/          /*Scope*/ 17, /*->66648*/
/* 66631*/            OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66633*/            OPC_EmitInteger, MVT::i32, 14, 
/* 66636*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66639*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src)
/* 66648*/          0, /*End of Scope*/
/* 66649*/        /*SwitchType*/ 17, MVT::v4f32,// ->66668
/* 66651*/          OPC_CheckPatternPredicate, 19, // (MF->getDataLayout().isBigEndian())
/* 66653*/          OPC_EmitInteger, MVT::i32, 14, 
/* 66656*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66659*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src)
/* 66668*/        0, // EndSwitchType
/* 66669*/      0, /*End of Scope*/
/* 66670*/    0, /*End of Scope*/
/* 66671*/  /*SwitchOpcode*/ 19, TARGET_VAL(ARMISD::VMOVRRD),// ->66693
/* 66674*/    OPC_RecordChild0, // #0 = $Dm
/* 66675*/    OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 66677*/    OPC_EmitInteger, MVT::i32, 14, 
/* 66680*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66683*/    OPC_MorphNodeTo2, TARGET_VAL(ARM::VMOVRRD), 0,
                  MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
              // Src: (arm_fmrrd:{ *:[i32] }:{ *:[i32] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
              // Dst: (VMOVRRD:{ *:[i32] }:{ *:[i32] } DPR:{ *:[f64] }:$Dm)
/* 66693*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVrh),// ->66716
/* 66696*/    OPC_RecordChild0, // #0 = $Sn
/* 66697*/    OPC_CheckChild0Type, MVT::f16,
/* 66699*/    OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 66701*/    OPC_EmitInteger, MVT::i32, 14, 
/* 66704*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66707*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVRH), 0,
                  MVT::i32, 3/*#Ops*/, 0, 1, 2, 
              // Src: (arm_vmovrh:{ *:[i32] } HPR:{ *:[f16] }:$Sn) - Complexity = 3
              // Dst: (VMOVRH:{ *:[i32] } HPR:{ *:[f16] }:$Sn)
/* 66716*/  /*SwitchOpcode*/ 17, TARGET_VAL(ARMISD::FMSTAT),// ->66736
/* 66719*/    OPC_CaptureGlueInput,
/* 66720*/    OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 66722*/    OPC_EmitInteger, MVT::i32, 14, 
/* 66725*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66728*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::FMSTAT), 0|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i32, 2/*#Ops*/, 0, 1, 
              // Src: (arm_fmstat) - Complexity = 3
              // Dst: (FMSTAT:{ *:[i32] })
/* 66736*/  /*SwitchOpcode*/ 67, TARGET_VAL(ISD::FP_TO_FP16),// ->66806
/* 66739*/    OPC_RecordChild0, // #0 = $a
/* 66740*/    OPC_CheckType, MVT::i32,
/* 66742*/    OPC_Scope, 30, /*->66774*/ // 2 children in Scope
/* 66744*/      OPC_CheckChild0Type, MVT::f32,
/* 66746*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFP16())
/* 66748*/      OPC_EmitInteger, MVT::i32, 14, 
/* 66751*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66754*/      OPC_EmitNode1, TARGET_VAL(ARM::VCVTBSH), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 66763*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 66766*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::i32, 2/*#Ops*/, 3, 4, 
                // Src: (fp_to_f16:{ *:[i32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTBSH:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
/* 66774*/    /*Scope*/ 30, /*->66805*/
/* 66775*/      OPC_CheckChild0Type, MVT::f64,
/* 66777*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFP16())
/* 66779*/      OPC_EmitInteger, MVT::i32, 14, 
/* 66782*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66785*/      OPC_EmitNode1, TARGET_VAL(ARM::VCVTBDH), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 66794*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 66797*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::i32, 2/*#Ops*/, 3, 4, 
                // Src: (fp_to_f16:{ *:[i32] } DPR:{ *:[f64] }:$a) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (VCVTBDH:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
/* 66805*/    0, /*End of Scope*/
/* 66806*/  /*SwitchOpcode*/ 8, TARGET_VAL(ARMISD::WIN__CHKSTK),// ->66817
/* 66809*/    OPC_RecordNode, // #0 = 'win__chkstk' chained node
/* 66810*/    OPC_EmitMergeInputChains1_0,
/* 66811*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::WIN__CHKSTK), 0|OPFL_Chain,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (win__chkstk) - Complexity = 3
              // Dst: (WIN__CHKSTK:{ *:[i32] })
/* 66817*/  /*SwitchOpcode*/ 10, TARGET_VAL(ARMISD::WIN__DBZCHK),// ->66830
/* 66820*/    OPC_RecordNode, // #0 = 'win__dbzchk' chained node
/* 66821*/    OPC_RecordChild1, // #1 = $divisor
/* 66822*/    OPC_EmitMergeInputChains1_0,
/* 66823*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::WIN__DBZCHK), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i32, 1/*#Ops*/, 1, 
              // Src: (win__dbzchk tGPR:{ *:[i32] }:$divisor) - Complexity = 3
              // Dst: (WIN__DBZCHK:{ *:[i32] } tGPR:{ *:[i32] }:$divisor)
/* 66830*/  /*SwitchOpcode*/ 71, TARGET_VAL(ARMISD::EH_SJLJ_SETJMP),// ->66904
/* 66833*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_setjmp' chained node
/* 66834*/    OPC_RecordChild1, // #1 = $src
/* 66835*/    OPC_CheckChild1Type, MVT::i32,
/* 66837*/    OPC_RecordChild2, // #2 = $val
/* 66838*/    OPC_CheckChild2Type, MVT::i32,
/* 66840*/    OPC_CheckType, MVT::i32,
/* 66842*/    OPC_Scope, 11, /*->66855*/ // 5 children in Scope
/* 66844*/      OPC_CheckPatternPredicate, 82, // (Subtarget->hasVFP2()) && (!Subtarget->isThumb())
/* 66846*/      OPC_EmitMergeInputChains1_0,
/* 66847*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::Int_eh_sjlj_setjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_setjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$val) - Complexity = 3
                // Dst: (Int_eh_sjlj_setjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$val)
/* 66855*/    /*Scope*/ 11, /*->66867*/
/* 66856*/      OPC_CheckPatternPredicate, 83, // (!Subtarget->isThumb()) && (!Subtarget->hasVFP2())
/* 66858*/      OPC_EmitMergeInputChains1_0,
/* 66859*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::Int_eh_sjlj_setjmp_nofp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_setjmp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$val) - Complexity = 3
                // Dst: (Int_eh_sjlj_setjmp_nofp:{ *:[i32] } GPR:{ *:[i32] }:$src, GPR:{ *:[i32] }:$val)
/* 66867*/    /*Scope*/ 11, /*->66879*/
/* 66868*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 66870*/      OPC_EmitMergeInputChains1_0,
/* 66871*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tInt_eh_sjlj_setjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_setjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val) - Complexity = 3
                // Dst: (tInt_eh_sjlj_setjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val)
/* 66879*/    /*Scope*/ 11, /*->66891*/
/* 66880*/      OPC_CheckPatternPredicate, 84, // (Subtarget->hasVFP2()) && (Subtarget->isThumb2())
/* 66882*/      OPC_EmitMergeInputChains1_0,
/* 66883*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2Int_eh_sjlj_setjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_setjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val) - Complexity = 3
                // Dst: (t2Int_eh_sjlj_setjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val)
/* 66891*/    /*Scope*/ 11, /*->66903*/
/* 66892*/      OPC_CheckPatternPredicate, 85, // (Subtarget->isThumb2()) && (!Subtarget->hasVFP2())
/* 66894*/      OPC_EmitMergeInputChains1_0,
/* 66895*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2Int_eh_sjlj_setjmp_nofp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_setjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val) - Complexity = 3
                // Dst: (t2Int_eh_sjlj_setjmp_nofp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$val)
/* 66903*/    0, /*End of Scope*/
/* 66904*/  /*SwitchOpcode*/ 7, TARGET_VAL(ARMISD::EH_SJLJ_SETUP_DISPATCH),// ->66914
/* 66907*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_setup_dispatch' chained node
/* 66908*/    OPC_EmitMergeInputChains1_0,
/* 66909*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::Int_eh_sjlj_setup_dispatch), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (ARMeh_sjlj_setup_dispatch) - Complexity = 3
              // Dst: (Int_eh_sjlj_setup_dispatch)
/* 66914*/  /*SwitchOpcode*/ 48|128,3/*432*/, TARGET_VAL(ISD::SINT_TO_FP),// ->67350
/* 66918*/    OPC_Scope, 60|128,1/*188*/, /*->67109*/ // 2 children in Scope
/* 66921*/      OPC_MoveChild0,
/* 66922*/      OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::LOAD),// ->67018
/* 66926*/        OPC_RecordMemRef,
/* 66927*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 66928*/        OPC_RecordChild1, // #1 = $a
/* 66929*/        OPC_CheckChild1Type, MVT::i32,
/* 66931*/        OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 66933*/        OPC_CheckPredicate, 57, // Predicate_load
/* 66935*/        OPC_CheckPredicate, 62, // Predicate_alignedload32
/* 66937*/        OPC_MoveParent,
/* 66938*/        OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->66978
/* 66941*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 66943*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$a #2 #3
/* 66946*/          OPC_EmitMergeInputChains1_0,
/* 66947*/          OPC_EmitInteger, MVT::i32, 14, 
/* 66950*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66953*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 66963*/          OPC_EmitInteger, MVT::i32, 14, 
/* 66966*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66969*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOD), 0|OPFL_Chain,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addrmode5:{ *:[i32] }:$a)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>>) - Complexity = 16
                    // Dst: (VSITOD:{ *:[f64] } (VLDRS:{ *:[f32] } addrmode5:{ *:[i32] }:$a))
/* 66978*/        /*SwitchType*/ 37, MVT::f32,// ->67017
/* 66980*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 66982*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$a #2 #3
/* 66985*/          OPC_EmitMergeInputChains1_0,
/* 66986*/          OPC_EmitInteger, MVT::i32, 14, 
/* 66989*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66992*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 67002*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67005*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67008*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addrmode5:{ *:[i32] }:$a)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>>) - Complexity = 16
                    // Dst: (VSITOS:{ *:[f32] } (VLDRS:{ *:[f32] } addrmode5:{ *:[i32] }:$a))
/* 67017*/        0, // EndSwitchType
/* 67018*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->67108
/* 67021*/        OPC_RecordChild0, // #0 = $src
/* 67022*/        OPC_Scope, 41, /*->67065*/ // 2 children in Scope
/* 67024*/          OPC_CheckChild0Type, MVT::v2i32,
/* 67026*/          OPC_RecordChild1, // #1 = $lane
/* 67027*/          OPC_MoveChild1,
/* 67028*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67031*/          OPC_MoveParent,
/* 67032*/          OPC_MoveParent,
/* 67033*/          OPC_CheckType, MVT::f64,
/* 67035*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 67037*/          OPC_EmitConvertToTarget, 1,
/* 67039*/          OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 67042*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67050*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67053*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67056*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOD), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (sint_to_fp:{ *:[f64] } (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$src, (imm:{ *:[iPTR] }):$lane)) - Complexity = 9
                    // Dst: (VSITOD:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f32] } DPR:{ *:[v2i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)))
/* 67065*/        /*Scope*/ 41, /*->67107*/
/* 67066*/          OPC_CheckChild0Type, MVT::v4i32,
/* 67068*/          OPC_RecordChild1, // #1 = $lane
/* 67069*/          OPC_MoveChild1,
/* 67070*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67073*/          OPC_MoveParent,
/* 67074*/          OPC_MoveParent,
/* 67075*/          OPC_CheckType, MVT::f64,
/* 67077*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 67079*/          OPC_EmitConvertToTarget, 1,
/* 67081*/          OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 67084*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67092*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67095*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67098*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOD), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (sint_to_fp:{ *:[f64] } (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane)) - Complexity = 9
                    // Dst: (VSITOD:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f32] } QPR:{ *:[v4i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)))
/* 67107*/        0, /*End of Scope*/
/* 67108*/      0, // EndSwitchOpcode
/* 67109*/    /*Scope*/ 110|128,1/*238*/, /*->67349*/
/* 67111*/      OPC_RecordChild0, // #0 = $a
/* 67112*/      OPC_SwitchType /*7 cases */, 28, MVT::f64,// ->67143
/* 67115*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 67117*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67120*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67128*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67131*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67134*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOD), 0,
                      MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) - Complexity = 3
                  // Dst: (VSITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67143*/      /*SwitchType*/ 89, MVT::f32,// ->67234
/* 67145*/        OPC_Scope, 28, /*->67175*/ // 2 children in Scope
/* 67147*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 67149*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67160*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67163*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67166*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOS), 0,
                        MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                    // Dst: (VSITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67175*/        /*Scope*/ 57, /*->67233*/
/* 67176*/          OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 67178*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 67184*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67187*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 67195*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 67198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 67207*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67210*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67213*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTs2fd), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 67222*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 67225*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 8, 9, 
                    // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VCVTs2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
/* 67233*/        0, /*End of Scope*/
/* 67234*/      /*SwitchType*/ 28, MVT::f16,// ->67264
/* 67236*/        OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 67238*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67241*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67249*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67255*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSITOH), 0,
                      MVT::f16, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (sint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) - Complexity = 3
                  // Dst: (VSITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67264*/      /*SwitchType*/ 19, MVT::v2f32,// ->67285
/* 67266*/        OPC_CheckChild0Type, MVT::v2i32,
/* 67268*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 67270*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67273*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67276*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTs2fd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
/* 67285*/      /*SwitchType*/ 19, MVT::v4f32,// ->67306
/* 67287*/        OPC_CheckChild0Type, MVT::v4i32,
/* 67289*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 67291*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67297*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTs2fq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
/* 67306*/      /*SwitchType*/ 19, MVT::v4f16,// ->67327
/* 67308*/        OPC_CheckChild0Type, MVT::v4i16,
/* 67310*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 67312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTs2hd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
/* 67327*/      /*SwitchType*/ 19, MVT::v8f16,// ->67348
/* 67329*/        OPC_CheckChild0Type, MVT::v8i16,
/* 67331*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 67333*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67336*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67339*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTs2hq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
/* 67348*/      0, // EndSwitchType
/* 67349*/    0, /*End of Scope*/
/* 67350*/  /*SwitchOpcode*/ 48|128,3/*432*/, TARGET_VAL(ISD::UINT_TO_FP),// ->67786
/* 67354*/    OPC_Scope, 60|128,1/*188*/, /*->67545*/ // 2 children in Scope
/* 67357*/      OPC_MoveChild0,
/* 67358*/      OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::LOAD),// ->67454
/* 67362*/        OPC_RecordMemRef,
/* 67363*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 67364*/        OPC_RecordChild1, // #1 = $a
/* 67365*/        OPC_CheckChild1Type, MVT::i32,
/* 67367*/        OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 67369*/        OPC_CheckPredicate, 57, // Predicate_load
/* 67371*/        OPC_CheckPredicate, 62, // Predicate_alignedload32
/* 67373*/        OPC_MoveParent,
/* 67374*/        OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->67414
/* 67377*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 67379*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$a #2 #3
/* 67382*/          OPC_EmitMergeInputChains1_0,
/* 67383*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67386*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67389*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 67399*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67402*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67405*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOD), 0|OPFL_Chain,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addrmode5:{ *:[i32] }:$a)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>>) - Complexity = 16
                    // Dst: (VUITOD:{ *:[f64] } (VLDRS:{ *:[f32] } addrmode5:{ *:[i32] }:$a))
/* 67414*/        /*SwitchType*/ 37, MVT::f32,// ->67453
/* 67416*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 67418*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrMode5:$a #2 #3
/* 67421*/          OPC_EmitMergeInputChains1_0,
/* 67422*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67425*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67428*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 67438*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addrmode5:{ *:[i32] }:$a)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>>) - Complexity = 16
                    // Dst: (VUITOS:{ *:[f32] } (VLDRS:{ *:[f32] } addrmode5:{ *:[i32] }:$a))
/* 67453*/        0, // EndSwitchType
/* 67454*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->67544
/* 67457*/        OPC_RecordChild0, // #0 = $src
/* 67458*/        OPC_Scope, 41, /*->67501*/ // 2 children in Scope
/* 67460*/          OPC_CheckChild0Type, MVT::v2i32,
/* 67462*/          OPC_RecordChild1, // #1 = $lane
/* 67463*/          OPC_MoveChild1,
/* 67464*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67467*/          OPC_MoveParent,
/* 67468*/          OPC_MoveParent,
/* 67469*/          OPC_CheckType, MVT::f64,
/* 67471*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 67473*/          OPC_EmitConvertToTarget, 1,
/* 67475*/          OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 67478*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67486*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67489*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67492*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOD), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f64] } (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$src, (imm:{ *:[iPTR] }):$lane)) - Complexity = 9
                    // Dst: (VUITOD:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f32] } DPR:{ *:[v2i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)))
/* 67501*/        /*Scope*/ 41, /*->67543*/
/* 67502*/          OPC_CheckChild0Type, MVT::v4i32,
/* 67504*/          OPC_RecordChild1, // #1 = $lane
/* 67505*/          OPC_MoveChild1,
/* 67506*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67509*/          OPC_MoveParent,
/* 67510*/          OPC_MoveParent,
/* 67511*/          OPC_CheckType, MVT::f64,
/* 67513*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 67515*/          OPC_EmitConvertToTarget, 1,
/* 67517*/          OPC_EmitNodeXForm, 16, 2, // SSubReg_f32_reg
/* 67520*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67528*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67531*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67534*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOD), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f64] } (extractelt:{ *:[i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane)) - Complexity = 9
                    // Dst: (VUITOD:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f32] } QPR:{ *:[v4i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)))
/* 67543*/        0, /*End of Scope*/
/* 67544*/      0, // EndSwitchOpcode
/* 67545*/    /*Scope*/ 110|128,1/*238*/, /*->67785*/
/* 67547*/      OPC_RecordChild0, // #0 = $a
/* 67548*/      OPC_SwitchType /*7 cases */, 28, MVT::f64,// ->67579
/* 67551*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 67553*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67556*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67564*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67567*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67570*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOD), 0,
                      MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) - Complexity = 3
                  // Dst: (VUITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67579*/      /*SwitchType*/ 89, MVT::f32,// ->67670
/* 67581*/        OPC_Scope, 28, /*->67611*/ // 2 children in Scope
/* 67583*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 67585*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67588*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67596*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67599*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67602*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOS), 0,
                        MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                    // Dst: (VUITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67611*/        /*Scope*/ 57, /*->67669*/
/* 67612*/          OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 67614*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 67620*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67623*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 67631*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 67634*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 67643*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67646*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67649*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTu2fd), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 67658*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 67661*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 8, 9, 
                    // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VCVTu2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
/* 67669*/        0, /*End of Scope*/
/* 67670*/      /*SwitchType*/ 28, MVT::f16,// ->67700
/* 67672*/        OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 67674*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 67677*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67685*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67688*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67691*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VUITOH), 0,
                      MVT::f16, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (uint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) - Complexity = 3
                  // Dst: (VUITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 67700*/      /*SwitchType*/ 19, MVT::v2f32,// ->67721
/* 67702*/        OPC_CheckChild0Type, MVT::v2i32,
/* 67704*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 67706*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67709*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67712*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTu2fd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (uint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
/* 67721*/      /*SwitchType*/ 19, MVT::v4f32,// ->67742
/* 67723*/        OPC_CheckChild0Type, MVT::v4i32,
/* 67725*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 67727*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67730*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67733*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTu2fq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (uint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCVTu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
/* 67742*/      /*SwitchType*/ 19, MVT::v4f16,// ->67763
/* 67744*/        OPC_CheckChild0Type, MVT::v4i16,
/* 67746*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 67748*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67751*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67754*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTu2hd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (uint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
/* 67763*/      /*SwitchType*/ 19, MVT::v8f16,// ->67784
/* 67765*/        OPC_CheckChild0Type, MVT::v8i16,
/* 67767*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 67769*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67772*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67775*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTu2hq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (uint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCVTu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
/* 67784*/      0, // EndSwitchType
/* 67785*/    0, /*End of Scope*/
/* 67786*/  /*SwitchOpcode*/ 85|128,22/*2901*/, TARGET_VAL(ISD::FADD),// ->70691
/* 67790*/    OPC_Scope, 23|128,1/*151*/, /*->67944*/ // 24 children in Scope
/* 67793*/      OPC_MoveChild0,
/* 67794*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 67797*/      OPC_MoveChild0,
/* 67798*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 67801*/      OPC_RecordChild0, // #0 = $Dn
/* 67802*/      OPC_RecordChild1, // #1 = $Dm
/* 67803*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 67805*/      OPC_MoveParent,
/* 67806*/      OPC_MoveParent,
/* 67807*/      OPC_RecordChild1, // #2 = $Ddin
/* 67808*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 67810*/      OPC_SwitchType /*3 cases */, 42, MVT::f64,// ->67855
/* 67813*/        OPC_Scope, 19, /*->67834*/ // 2 children in Scope
/* 67815*/          OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 67817*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67820*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67823*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f64] } (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>), DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 67834*/        /*Scope*/ 19, /*->67854*/
/* 67835*/          OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 67837*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67840*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67843*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f64] } (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>), DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 67854*/        0, /*End of Scope*/
/* 67855*/      /*SwitchType*/ 42, MVT::f32,// ->67899
/* 67857*/        OPC_Scope, 19, /*->67878*/ // 2 children in Scope
/* 67859*/          OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 67861*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67864*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67867*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f32] } (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>), SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 67878*/        /*Scope*/ 19, /*->67898*/
/* 67879*/          OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 67881*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67884*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67887*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f32] } (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>), SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 67898*/        0, /*End of Scope*/
/* 67899*/      /*SwitchType*/ 42, MVT::f16,// ->67943
/* 67901*/        OPC_Scope, 19, /*->67922*/ // 2 children in Scope
/* 67903*/          OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 67905*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67908*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67911*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f16] } (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>), HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 67922*/        /*Scope*/ 19, /*->67942*/
/* 67923*/          OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 67925*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67928*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67931*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[f16] } (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>), HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 67942*/        0, /*End of Scope*/
/* 67943*/      0, // EndSwitchType
/* 67944*/    /*Scope*/ 23|128,1/*151*/, /*->68097*/
/* 67946*/      OPC_RecordChild0, // #0 = $Ddin
/* 67947*/      OPC_MoveChild1,
/* 67948*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 67951*/      OPC_MoveChild0,
/* 67952*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 67955*/      OPC_RecordChild0, // #1 = $Dn
/* 67956*/      OPC_RecordChild1, // #2 = $Dm
/* 67957*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 67959*/      OPC_MoveParent,
/* 67960*/      OPC_MoveParent,
/* 67961*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 67963*/      OPC_SwitchType /*3 cases */, 42, MVT::f64,// ->68008
/* 67966*/        OPC_Scope, 19, /*->67987*/ // 2 children in Scope
/* 67968*/          OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 67970*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67973*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67976*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSD), 0,
                        MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 67987*/        /*Scope*/ 19, /*->68007*/
/* 67988*/          OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 67990*/          OPC_EmitInteger, MVT::i32, 14, 
/* 67993*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67996*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSD), 0,
                        MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 68007*/        0, /*End of Scope*/
/* 68008*/      /*SwitchType*/ 42, MVT::f32,// ->68052
/* 68010*/        OPC_Scope, 19, /*->68031*/ // 2 children in Scope
/* 68012*/          OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 68014*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68017*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68020*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSS), 0,
                        MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 68031*/        /*Scope*/ 19, /*->68051*/
/* 68032*/          OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68034*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68037*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68040*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSS), 0,
                        MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 68051*/        0, /*End of Scope*/
/* 68052*/      /*SwitchType*/ 42, MVT::f16,// ->68096
/* 68054*/        OPC_Scope, 19, /*->68075*/ // 2 children in Scope
/* 68056*/          OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 68058*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68061*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68064*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VMLSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68075*/        /*Scope*/ 19, /*->68095*/
/* 68076*/          OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68078*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68081*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68084*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>))<<P:Predicate_fadd_mlx>> - Complexity = 11
                    // Dst: (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68095*/        0, /*End of Scope*/
/* 68096*/      0, // EndSwitchType
/* 68097*/    /*Scope*/ 77, /*->68175*/
/* 68098*/      OPC_MoveChild0,
/* 68099*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68102*/      OPC_RecordChild0, // #0 = $Dn
/* 68103*/      OPC_RecordChild1, // #1 = $Dm
/* 68104*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 68106*/      OPC_MoveParent,
/* 68107*/      OPC_RecordChild1, // #2 = $Ddin
/* 68108*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 68110*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->68132
/* 68113*/        OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 68115*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68118*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68121*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAD), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>, DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 68132*/      /*SwitchType*/ 19, MVT::f32,// ->68153
/* 68134*/        OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 68136*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68139*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68142*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAS), 0,
                      MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>, SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 68153*/      /*SwitchType*/ 19, MVT::f16,// ->68174
/* 68155*/        OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 68157*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68160*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68163*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAH), 0,
                      MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68174*/      0, // EndSwitchType
/* 68175*/    /*Scope*/ 77, /*->68253*/
/* 68176*/      OPC_RecordChild0, // #0 = $dstin
/* 68177*/      OPC_MoveChild1,
/* 68178*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68181*/      OPC_RecordChild0, // #1 = $a
/* 68182*/      OPC_RecordChild1, // #2 = $b
/* 68183*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 68185*/      OPC_MoveParent,
/* 68186*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 68188*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->68210
/* 68191*/        OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 68193*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68196*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68199*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAD), 0,
                      MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[f64] } DPR:{ *:[f64] }:$dstin, (fmul:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAD:{ *:[f64] } DPR:{ *:[f64] }:$dstin, DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 68210*/      /*SwitchType*/ 19, MVT::f32,// ->68231
/* 68212*/        OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 68214*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68217*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68220*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAS), 0,
                      MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$dstin, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAS:{ *:[f32] } SPR:{ *:[f32] }:$dstin, SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 68231*/      /*SwitchType*/ 19, MVT::f16,// ->68252
/* 68233*/        OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 68235*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68238*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68241*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAH), 0,
                      MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$dstin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 68252*/      0, // EndSwitchType
/* 68253*/    /*Scope*/ 77, /*->68331*/
/* 68254*/      OPC_MoveChild0,
/* 68255*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68258*/      OPC_RecordChild0, // #0 = $Dn
/* 68259*/      OPC_RecordChild1, // #1 = $Dm
/* 68260*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 68262*/      OPC_MoveParent,
/* 68263*/      OPC_RecordChild1, // #2 = $Ddin
/* 68264*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 68266*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->68288
/* 68269*/        OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68271*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68274*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68277*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAD), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>, DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 68288*/      /*SwitchType*/ 19, MVT::f32,// ->68309
/* 68290*/        OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68292*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68295*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68298*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAS), 0,
                      MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>, SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 68309*/      /*SwitchType*/ 19, MVT::f16,// ->68330
/* 68311*/        OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68313*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68316*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68319*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAH), 0,
                      MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68330*/      0, // EndSwitchType
/* 68331*/    /*Scope*/ 120, /*->68452*/
/* 68332*/      OPC_RecordChild0, // #0 = $dstin
/* 68333*/      OPC_MoveChild1,
/* 68334*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68337*/      OPC_RecordChild0, // #1 = $a
/* 68338*/      OPC_RecordChild1, // #2 = $b
/* 68339*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 68341*/      OPC_MoveParent,
/* 68342*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 68344*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->68366
/* 68347*/        OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68349*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68352*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68355*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAD), 0,
                      MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[f64] } DPR:{ *:[f64] }:$dstin, (fmul:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$dstin, DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 68366*/      /*SwitchType*/ 19, MVT::f32,// ->68387
/* 68368*/        OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68370*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68373*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68376*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAS), 0,
                      MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$dstin, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$dstin, SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 68387*/      /*SwitchType*/ 62, MVT::f16,// ->68451
/* 68389*/        OPC_Scope, 19, /*->68410*/ // 3 children in Scope
/* 68391*/          OPC_CheckPatternPredicate, 93, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68393*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68396*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68399*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$dstin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 68410*/        /*Scope*/ 19, /*->68430*/
/* 68411*/          OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 68413*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68416*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68419*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VMLAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68430*/        /*Scope*/ 19, /*->68450*/
/* 68431*/          OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68433*/          OPC_EmitInteger, MVT::i32, 14, 
/* 68436*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68439*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 68450*/        0, /*End of Scope*/
/* 68451*/      0, // EndSwitchType
/* 68452*/    /*Scope*/ 56, /*->68509*/
/* 68453*/      OPC_MoveChild0,
/* 68454*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68457*/      OPC_RecordChild0, // #0 = $a
/* 68458*/      OPC_RecordChild1, // #1 = $b
/* 68459*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 68461*/      OPC_MoveParent,
/* 68462*/      OPC_RecordChild1, // #2 = $dstin
/* 68463*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 68465*/      OPC_CheckType, MVT::f16,
/* 68467*/      OPC_Scope, 19, /*->68488*/ // 2 children in Scope
/* 68469*/        OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 68471*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68474*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68477*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAH), 0,
                      MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$dstin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 68488*/      /*Scope*/ 19, /*->68508*/
/* 68489*/        OPC_CheckPatternPredicate, 93, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 68491*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68494*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68497*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAH), 0,
                      MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$dstin)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 68508*/      0, /*End of Scope*/
/* 68509*/    /*Scope*/ 16|128,2/*272*/, /*->68783*/
/* 68511*/      OPC_RecordChild0, // #0 = $acc
/* 68512*/      OPC_MoveChild1,
/* 68513*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68516*/      OPC_RecordChild0, // #1 = $a
/* 68517*/      OPC_RecordChild1, // #2 = $b
/* 68518*/      OPC_MoveParent,
/* 68519*/      OPC_CheckType, MVT::f32,
/* 68521*/      OPC_Scope, 0|128,1/*128*/, /*->68652*/ // 2 children in Scope
/* 68524*/        OPC_CheckPatternPredicate, 94, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 68526*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 68532*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68535*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 68543*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68546*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 68555*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 68561*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68564*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 68572*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68575*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/* 68584*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 68590*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68593*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 68601*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68604*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/* 68613*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68616*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68619*/        OPC_EmitNode1, TARGET_VAL(ARM::VMLAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 68630*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68633*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 68641*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68644*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 22, 23, 
                  // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) - Complexity = 6
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 68652*/      /*Scope*/ 0|128,1/*128*/, /*->68782*/
/* 68654*/        OPC_CheckPatternPredicate, 95, // (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 68656*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 68662*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68665*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 68673*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68676*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 68685*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 68691*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68694*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 68702*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68705*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/* 68714*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 68720*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68723*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 68731*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68734*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/* 68743*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68746*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68749*/        OPC_EmitNode1, TARGET_VAL(ARM::VFMAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 68760*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68763*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 68771*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68774*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 22, 23, 
                  // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) - Complexity = 6
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 68782*/      0, /*End of Scope*/
/* 68783*/    /*Scope*/ 16|128,2/*272*/, /*->69057*/
/* 68785*/      OPC_MoveChild0,
/* 68786*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 68789*/      OPC_RecordChild0, // #0 = $a
/* 68790*/      OPC_RecordChild1, // #1 = $b
/* 68791*/      OPC_MoveParent,
/* 68792*/      OPC_RecordChild1, // #2 = $acc
/* 68793*/      OPC_CheckType, MVT::f32,
/* 68795*/      OPC_Scope, 0|128,1/*128*/, /*->68926*/ // 2 children in Scope
/* 68798*/        OPC_CheckPatternPredicate, 94, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 68800*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 68806*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68809*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 68817*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68820*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 68829*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 68835*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68838*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 68846*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68849*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 0, 11,  // Results = #12
/* 68858*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 68864*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68867*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 68875*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68878*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 1, 16,  // Results = #17
/* 68887*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68890*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68893*/        OPC_EmitNode1, TARGET_VAL(ARM::VMLAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 68904*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68907*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 68915*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68918*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 22, 23, 
                  // Src: (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) - Complexity = 6
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 68926*/      /*Scope*/ 0|128,1/*128*/, /*->69056*/
/* 68928*/        OPC_CheckPatternPredicate, 95, // (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 68930*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 68936*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68939*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 68947*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68950*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 68959*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 68965*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68968*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 68976*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 68979*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 0, 11,  // Results = #12
/* 68988*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 68994*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 68997*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 69005*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 69008*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 1, 16,  // Results = #17
/* 69017*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69020*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69023*/        OPC_EmitNode1, TARGET_VAL(ARM::VFMAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 69034*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 69037*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 69045*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 69048*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 22, 23, 
                  // Src: (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) - Complexity = 6
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 69056*/      0, /*End of Scope*/
/* 69057*/    /*Scope*/ 37|128,2/*293*/, /*->69352*/
/* 69059*/      OPC_RecordChild0, // #0 = $Dn
/* 69060*/      OPC_Scope, 37|128,1/*165*/, /*->69228*/ // 2 children in Scope
/* 69063*/        OPC_RecordChild1, // #1 = $Dm
/* 69064*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->69085
/* 69067*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 69069*/          OPC_EmitInteger, MVT::i32, 14, 
/* 69072*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69075*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDD), 0,
                        MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                    // Dst: (VADDD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 69085*/        /*SwitchType*/ 120, MVT::f32,// ->69207
/* 69087*/          OPC_Scope, 18, /*->69107*/ // 2 children in Scope
/* 69089*/            OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 69091*/            OPC_EmitInteger, MVT::i32, 14, 
/* 69094*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69097*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDS), 0,
                          MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                      // Dst: (VADDS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 69107*/          /*Scope*/ 98, /*->69206*/
/* 69108*/            OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 69110*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 69116*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 69119*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69127*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 69130*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 69139*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/* 69145*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 69148*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 69156*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 69159*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 69168*/            OPC_EmitInteger, MVT::i32, 14, 
/* 69171*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69174*/            OPC_EmitNode1, TARGET_VAL(ARM::VADDfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 69184*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 69187*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/* 69195*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 69198*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 16, 17, 
                      // Src: (fadd:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VADDfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 69206*/          0, /*End of Scope*/
/* 69207*/        /*SwitchType*/ 18, MVT::f16,// ->69227
/* 69209*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 69211*/          OPC_EmitInteger, MVT::i32, 14, 
/* 69214*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69217*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDH), 0,
                        MVT::f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                    // Dst: (VADDH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 69227*/        0, // EndSwitchType
/* 69228*/      /*Scope*/ 122, /*->69351*/
/* 69229*/        OPC_MoveChild1,
/* 69230*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69233*/        OPC_Scope, 70, /*->69305*/ // 2 children in Scope
/* 69235*/          OPC_RecordChild0, // #1 = $Vn
/* 69236*/          OPC_MoveChild1,
/* 69237*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69240*/          OPC_RecordChild0, // #2 = $Vm
/* 69241*/          OPC_CheckChild0Type, MVT::v2f32,
/* 69243*/          OPC_RecordChild1, // #3 = $lane
/* 69244*/          OPC_MoveChild1,
/* 69245*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69248*/          OPC_MoveParent,
/* 69249*/          OPC_MoveParent,
/* 69250*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69252*/          OPC_MoveParent,
/* 69253*/          OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69255*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->69280
/* 69258*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69260*/            OPC_EmitConvertToTarget, 3,
/* 69262*/            OPC_EmitInteger, MVT::i32, 14, 
/* 69265*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69268*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfd), 0,
                          MVT::v2f32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                      // Dst: (VMLAslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69280*/          /*SwitchType*/ 22, MVT::v4f32,// ->69304
/* 69282*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69284*/            OPC_EmitConvertToTarget, 3,
/* 69286*/            OPC_EmitInteger, MVT::i32, 14, 
/* 69289*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69292*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                          MVT::v4f32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                      // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69304*/          0, // EndSwitchType
/* 69305*/        /*Scope*/ 44, /*->69350*/
/* 69306*/          OPC_MoveChild0,
/* 69307*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69310*/          OPC_RecordChild0, // #1 = $Vm
/* 69311*/          OPC_CheckChild0Type, MVT::v2f32,
/* 69313*/          OPC_RecordChild1, // #2 = $lane
/* 69314*/          OPC_MoveChild1,
/* 69315*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69318*/          OPC_MoveParent,
/* 69319*/          OPC_MoveParent,
/* 69320*/          OPC_RecordChild1, // #3 = $Vn
/* 69321*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69323*/          OPC_MoveParent,
/* 69324*/          OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69326*/          OPC_CheckType, MVT::v2f32,
/* 69328*/          OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69330*/          OPC_EmitConvertToTarget, 2,
/* 69332*/          OPC_EmitInteger, MVT::i32, 14, 
/* 69335*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69338*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfd), 0,
                        MVT::v2f32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                    // Src: (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2f32] }:$Vn)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                    // Dst: (VMLAslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69350*/        0, /*End of Scope*/
/* 69351*/      0, /*End of Scope*/
/* 69352*/    /*Scope*/ 98, /*->69451*/
/* 69353*/      OPC_MoveChild0,
/* 69354*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69357*/      OPC_Scope, 45, /*->69404*/ // 2 children in Scope
/* 69359*/        OPC_RecordChild0, // #0 = $Vn
/* 69360*/        OPC_MoveChild1,
/* 69361*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69364*/        OPC_RecordChild0, // #1 = $Vm
/* 69365*/        OPC_CheckChild0Type, MVT::v2f32,
/* 69367*/        OPC_RecordChild1, // #2 = $lane
/* 69368*/        OPC_MoveChild1,
/* 69369*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69372*/        OPC_MoveParent,
/* 69373*/        OPC_MoveParent,
/* 69374*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69376*/        OPC_MoveParent,
/* 69377*/        OPC_RecordChild1, // #3 = $src1
/* 69378*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69380*/        OPC_CheckType, MVT::v2f32,
/* 69382*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69384*/        OPC_EmitConvertToTarget, 2,
/* 69386*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69389*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69392*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfd), 0,
                      MVT::v2f32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (fadd:{ *:[v2f32] } (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>, DPR:{ *:[v2f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69404*/      /*Scope*/ 45, /*->69450*/
/* 69405*/        OPC_MoveChild0,
/* 69406*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69409*/        OPC_RecordChild0, // #0 = $Vm
/* 69410*/        OPC_CheckChild0Type, MVT::v2f32,
/* 69412*/        OPC_RecordChild1, // #1 = $lane
/* 69413*/        OPC_MoveChild1,
/* 69414*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69417*/        OPC_MoveParent,
/* 69418*/        OPC_MoveParent,
/* 69419*/        OPC_RecordChild1, // #2 = $Vn
/* 69420*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69422*/        OPC_MoveParent,
/* 69423*/        OPC_RecordChild1, // #3 = $src1
/* 69424*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69426*/        OPC_CheckType, MVT::v2f32,
/* 69428*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69430*/        OPC_EmitConvertToTarget, 1,
/* 69432*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69435*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69438*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfd), 0,
                      MVT::v2f32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v2f32] } (fmul:{ *:[v2f32] } (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2f32] }:$Vn)<<P:Predicate_fmul_su>>, DPR:{ *:[v2f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69450*/      0, /*End of Scope*/
/* 69451*/    /*Scope*/ 49, /*->69501*/
/* 69452*/      OPC_RecordChild0, // #0 = $src1
/* 69453*/      OPC_MoveChild1,
/* 69454*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69457*/      OPC_MoveChild0,
/* 69458*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69461*/      OPC_RecordChild0, // #1 = $Vm
/* 69462*/      OPC_CheckChild0Type, MVT::v2f32,
/* 69464*/      OPC_RecordChild1, // #2 = $lane
/* 69465*/      OPC_MoveChild1,
/* 69466*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69469*/      OPC_MoveParent,
/* 69470*/      OPC_MoveParent,
/* 69471*/      OPC_RecordChild1, // #3 = $Vn
/* 69472*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69474*/      OPC_MoveParent,
/* 69475*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69477*/      OPC_CheckType, MVT::v4f32,
/* 69479*/      OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69481*/      OPC_EmitConvertToTarget, 2,
/* 69483*/      OPC_EmitInteger, MVT::i32, 14, 
/* 69486*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69489*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                    MVT::v4f32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$Vn)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69501*/    /*Scope*/ 98, /*->69600*/
/* 69502*/      OPC_MoveChild0,
/* 69503*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69506*/      OPC_Scope, 45, /*->69553*/ // 2 children in Scope
/* 69508*/        OPC_RecordChild0, // #0 = $Vn
/* 69509*/        OPC_MoveChild1,
/* 69510*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69513*/        OPC_RecordChild0, // #1 = $Vm
/* 69514*/        OPC_CheckChild0Type, MVT::v2f32,
/* 69516*/        OPC_RecordChild1, // #2 = $lane
/* 69517*/        OPC_MoveChild1,
/* 69518*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69521*/        OPC_MoveParent,
/* 69522*/        OPC_MoveParent,
/* 69523*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69525*/        OPC_MoveParent,
/* 69526*/        OPC_RecordChild1, // #3 = $src1
/* 69527*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69529*/        OPC_CheckType, MVT::v4f32,
/* 69531*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69533*/        OPC_EmitConvertToTarget, 2,
/* 69535*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69538*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69541*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69553*/      /*Scope*/ 45, /*->69599*/
/* 69554*/        OPC_MoveChild0,
/* 69555*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69558*/        OPC_RecordChild0, // #0 = $Vm
/* 69559*/        OPC_CheckChild0Type, MVT::v2f32,
/* 69561*/        OPC_RecordChild1, // #1 = $lane
/* 69562*/        OPC_MoveChild1,
/* 69563*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69566*/        OPC_MoveParent,
/* 69567*/        OPC_MoveParent,
/* 69568*/        OPC_RecordChild1, // #2 = $Vn
/* 69569*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69571*/        OPC_MoveParent,
/* 69572*/        OPC_RecordChild1, // #3 = $src1
/* 69573*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69575*/        OPC_CheckType, MVT::v4f32,
/* 69577*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69579*/        OPC_EmitConvertToTarget, 1,
/* 69581*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69584*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69587*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$Vn)<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69599*/      0, /*End of Scope*/
/* 69600*/    /*Scope*/ 1|128,1/*129*/, /*->69731*/
/* 69602*/      OPC_RecordChild0, // #0 = $src1
/* 69603*/      OPC_MoveChild1,
/* 69604*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69607*/      OPC_Scope, 60, /*->69669*/ // 2 children in Scope
/* 69609*/        OPC_RecordChild0, // #1 = $src2
/* 69610*/        OPC_MoveChild1,
/* 69611*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69614*/        OPC_RecordChild0, // #2 = $src3
/* 69615*/        OPC_CheckChild0Type, MVT::v4f32,
/* 69617*/        OPC_RecordChild1, // #3 = $lane
/* 69618*/        OPC_MoveChild1,
/* 69619*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69622*/        OPC_MoveParent,
/* 69623*/        OPC_MoveParent,
/* 69624*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69626*/        OPC_MoveParent,
/* 69627*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69629*/        OPC_CheckType, MVT::v4f32,
/* 69631*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69633*/        OPC_EmitConvertToTarget, 3,
/* 69635*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 69638*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 69646*/        OPC_EmitConvertToTarget, 3,
/* 69648*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 69651*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69654*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69657*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                  // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src2, (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 69669*/      /*Scope*/ 60, /*->69730*/
/* 69670*/        OPC_MoveChild0,
/* 69671*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69674*/        OPC_RecordChild0, // #1 = $src3
/* 69675*/        OPC_CheckChild0Type, MVT::v4f32,
/* 69677*/        OPC_RecordChild1, // #2 = $lane
/* 69678*/        OPC_MoveChild1,
/* 69679*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69682*/        OPC_MoveParent,
/* 69683*/        OPC_MoveParent,
/* 69684*/        OPC_RecordChild1, // #3 = $src2
/* 69685*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69687*/        OPC_MoveParent,
/* 69688*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69690*/        OPC_CheckType, MVT::v4f32,
/* 69692*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69694*/        OPC_EmitConvertToTarget, 2,
/* 69696*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 69699*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 69707*/        OPC_EmitConvertToTarget, 2,
/* 69709*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 69712*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69715*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69718*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                  // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$src2)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 69730*/      0, /*End of Scope*/
/* 69731*/    /*Scope*/ 2|128,1/*130*/, /*->69863*/
/* 69733*/      OPC_MoveChild0,
/* 69734*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69737*/      OPC_Scope, 61, /*->69800*/ // 2 children in Scope
/* 69739*/        OPC_RecordChild0, // #0 = $src2
/* 69740*/        OPC_MoveChild1,
/* 69741*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69744*/        OPC_RecordChild0, // #1 = $src3
/* 69745*/        OPC_CheckChild0Type, MVT::v4f32,
/* 69747*/        OPC_RecordChild1, // #2 = $lane
/* 69748*/        OPC_MoveChild1,
/* 69749*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69752*/        OPC_MoveParent,
/* 69753*/        OPC_MoveParent,
/* 69754*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69756*/        OPC_MoveParent,
/* 69757*/        OPC_RecordChild1, // #3 = $src1
/* 69758*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69760*/        OPC_CheckType, MVT::v4f32,
/* 69762*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69764*/        OPC_EmitConvertToTarget, 2,
/* 69766*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 69769*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 69777*/        OPC_EmitConvertToTarget, 2,
/* 69779*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 69782*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69785*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69788*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src2, (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 69800*/      /*Scope*/ 61, /*->69862*/
/* 69801*/        OPC_MoveChild0,
/* 69802*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69805*/        OPC_RecordChild0, // #0 = $src3
/* 69806*/        OPC_CheckChild0Type, MVT::v4f32,
/* 69808*/        OPC_RecordChild1, // #1 = $lane
/* 69809*/        OPC_MoveChild1,
/* 69810*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69813*/        OPC_MoveParent,
/* 69814*/        OPC_MoveParent,
/* 69815*/        OPC_RecordChild1, // #2 = $src2
/* 69816*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 69818*/        OPC_MoveParent,
/* 69819*/        OPC_RecordChild1, // #3 = $src1
/* 69820*/        OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 69822*/        OPC_CheckType, MVT::v4f32,
/* 69824*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69826*/        OPC_EmitConvertToTarget, 1,
/* 69828*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 69831*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 5,  // Results = #6
/* 69839*/        OPC_EmitConvertToTarget, 1,
/* 69841*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 69844*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69847*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69850*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$src2)<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 14
                  // Dst: (VMLAslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 69862*/      0, /*End of Scope*/
/* 69863*/    /*Scope*/ 115, /*->69979*/
/* 69864*/      OPC_RecordChild0, // #0 = $src1
/* 69865*/      OPC_MoveChild1,
/* 69866*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69869*/      OPC_Scope, 66, /*->69937*/ // 2 children in Scope
/* 69871*/        OPC_RecordChild0, // #1 = $Vn
/* 69872*/        OPC_MoveChild1,
/* 69873*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69876*/        OPC_RecordChild0, // #2 = $Vm
/* 69877*/        OPC_CheckChild0Type, MVT::v4f16,
/* 69879*/        OPC_RecordChild1, // #3 = $lane
/* 69880*/        OPC_MoveChild1,
/* 69881*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69884*/        OPC_MoveParent,
/* 69885*/        OPC_MoveParent,
/* 69886*/        OPC_MoveParent,
/* 69887*/        OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->69912
/* 69890*/          OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69892*/          OPC_EmitConvertToTarget, 3,
/* 69894*/          OPC_EmitInteger, MVT::i32, 14, 
/* 69897*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69900*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhd), 0,
                        MVT::v4f16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLAslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69912*/        /*SwitchType*/ 22, MVT::v8f16,// ->69936
/* 69914*/          OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69916*/          OPC_EmitConvertToTarget, 3,
/* 69918*/          OPC_EmitInteger, MVT::i32, 14, 
/* 69921*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69924*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhq), 0,
                        MVT::v8f16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                    // Src: (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                    // Dst: (VMLAslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69936*/        0, // EndSwitchType
/* 69937*/      /*Scope*/ 40, /*->69978*/
/* 69938*/        OPC_MoveChild0,
/* 69939*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69942*/        OPC_RecordChild0, // #1 = $Vm
/* 69943*/        OPC_CheckChild0Type, MVT::v4f16,
/* 69945*/        OPC_RecordChild1, // #2 = $lane
/* 69946*/        OPC_MoveChild1,
/* 69947*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69950*/        OPC_MoveParent,
/* 69951*/        OPC_MoveParent,
/* 69952*/        OPC_RecordChild1, // #3 = $Vn
/* 69953*/        OPC_MoveParent,
/* 69954*/        OPC_CheckType, MVT::v4f16,
/* 69956*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 69958*/        OPC_EmitConvertToTarget, 2,
/* 69960*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69963*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69966*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhd), 0,
                      MVT::v4f16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4f16] }:$Vn)) - Complexity = 12
                  // Dst: (VMLAslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 69978*/      0, /*End of Scope*/
/* 69979*/    /*Scope*/ 90, /*->70070*/
/* 69980*/      OPC_MoveChild0,
/* 69981*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 69984*/      OPC_Scope, 41, /*->70027*/ // 2 children in Scope
/* 69986*/        OPC_RecordChild0, // #0 = $Vn
/* 69987*/        OPC_MoveChild1,
/* 69988*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 69991*/        OPC_RecordChild0, // #1 = $Vm
/* 69992*/        OPC_CheckChild0Type, MVT::v4f16,
/* 69994*/        OPC_RecordChild1, // #2 = $lane
/* 69995*/        OPC_MoveChild1,
/* 69996*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69999*/        OPC_MoveParent,
/* 70000*/        OPC_MoveParent,
/* 70001*/        OPC_MoveParent,
/* 70002*/        OPC_RecordChild1, // #3 = $src1
/* 70003*/        OPC_CheckType, MVT::v4f16,
/* 70005*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70007*/        OPC_EmitConvertToTarget, 2,
/* 70009*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70012*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70015*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhd), 0,
                      MVT::v4f16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v4f16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 70027*/      /*Scope*/ 41, /*->70069*/
/* 70028*/        OPC_MoveChild0,
/* 70029*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 70032*/        OPC_RecordChild0, // #0 = $Vm
/* 70033*/        OPC_CheckChild0Type, MVT::v4f16,
/* 70035*/        OPC_RecordChild1, // #1 = $lane
/* 70036*/        OPC_MoveChild1,
/* 70037*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70040*/        OPC_MoveParent,
/* 70041*/        OPC_MoveParent,
/* 70042*/        OPC_RecordChild1, // #2 = $Vn
/* 70043*/        OPC_MoveParent,
/* 70044*/        OPC_RecordChild1, // #3 = $src1
/* 70045*/        OPC_CheckType, MVT::v4f16,
/* 70047*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70049*/        OPC_EmitConvertToTarget, 1,
/* 70051*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70054*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70057*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhd), 0,
                      MVT::v4f16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4f16] }:$Vn), DPR:{ *:[v4f16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 70069*/      0, /*End of Scope*/
/* 70070*/    /*Scope*/ 45, /*->70116*/
/* 70071*/      OPC_RecordChild0, // #0 = $src1
/* 70072*/      OPC_MoveChild1,
/* 70073*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70076*/      OPC_MoveChild0,
/* 70077*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 70080*/      OPC_RecordChild0, // #1 = $Vm
/* 70081*/      OPC_CheckChild0Type, MVT::v4f16,
/* 70083*/      OPC_RecordChild1, // #2 = $lane
/* 70084*/      OPC_MoveChild1,
/* 70085*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70088*/      OPC_MoveParent,
/* 70089*/      OPC_MoveParent,
/* 70090*/      OPC_RecordChild1, // #3 = $Vn
/* 70091*/      OPC_MoveParent,
/* 70092*/      OPC_CheckType, MVT::v8f16,
/* 70094*/      OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70096*/      OPC_EmitConvertToTarget, 2,
/* 70098*/      OPC_EmitInteger, MVT::i32, 14, 
/* 70101*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70104*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhq), 0,
                    MVT::v8f16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8f16] }:$Vn)) - Complexity = 12
                // Dst: (VMLAslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 70116*/    /*Scope*/ 90, /*->70207*/
/* 70117*/      OPC_MoveChild0,
/* 70118*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70121*/      OPC_Scope, 41, /*->70164*/ // 2 children in Scope
/* 70123*/        OPC_RecordChild0, // #0 = $Vn
/* 70124*/        OPC_MoveChild1,
/* 70125*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 70128*/        OPC_RecordChild0, // #1 = $Vm
/* 70129*/        OPC_CheckChild0Type, MVT::v4f16,
/* 70131*/        OPC_RecordChild1, // #2 = $lane
/* 70132*/        OPC_MoveChild1,
/* 70133*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70136*/        OPC_MoveParent,
/* 70137*/        OPC_MoveParent,
/* 70138*/        OPC_MoveParent,
/* 70139*/        OPC_RecordChild1, // #3 = $src1
/* 70140*/        OPC_CheckType, MVT::v8f16,
/* 70142*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70144*/        OPC_EmitConvertToTarget, 2,
/* 70146*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70149*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70152*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhq), 0,
                      MVT::v8f16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v8f16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 70164*/      /*Scope*/ 41, /*->70206*/
/* 70165*/        OPC_MoveChild0,
/* 70166*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 70169*/        OPC_RecordChild0, // #0 = $Vm
/* 70170*/        OPC_CheckChild0Type, MVT::v4f16,
/* 70172*/        OPC_RecordChild1, // #1 = $lane
/* 70173*/        OPC_MoveChild1,
/* 70174*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70177*/        OPC_MoveParent,
/* 70178*/        OPC_MoveParent,
/* 70179*/        OPC_RecordChild1, // #2 = $Vn
/* 70180*/        OPC_MoveParent,
/* 70181*/        OPC_RecordChild1, // #3 = $src1
/* 70182*/        OPC_CheckType, MVT::v8f16,
/* 70184*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70186*/        OPC_EmitConvertToTarget, 1,
/* 70188*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70191*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70194*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhq), 0,
                      MVT::v8f16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8f16] }:$Vn), QPR:{ *:[v8f16] }:$src1) - Complexity = 12
                  // Dst: (VMLAslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 70206*/      0, /*End of Scope*/
/* 70207*/    /*Scope*/ 16|128,1/*144*/, /*->70353*/
/* 70209*/      OPC_RecordChild0, // #0 = $src1
/* 70210*/      OPC_MoveChild1,
/* 70211*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70214*/      OPC_RecordChild0, // #1 = $Vn
/* 70215*/      OPC_RecordChild1, // #2 = $Vm
/* 70216*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70218*/      OPC_MoveParent,
/* 70219*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 70221*/      OPC_SwitchType /*4 cases */, 42, MVT::v2f32,// ->70266
/* 70224*/        OPC_Scope, 19, /*->70245*/ // 2 children in Scope
/* 70226*/          OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70228*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70231*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70234*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VMLAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 70245*/        /*Scope*/ 19, /*->70265*/
/* 70246*/          OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70248*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70251*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70254*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 70265*/        0, /*End of Scope*/
/* 70266*/      /*SwitchType*/ 42, MVT::v4f32,// ->70310
/* 70268*/        OPC_Scope, 19, /*->70289*/ // 2 children in Scope
/* 70270*/          OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70272*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70275*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70278*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VMLAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 70289*/        /*Scope*/ 19, /*->70309*/
/* 70290*/          OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70292*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70295*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70298*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 70309*/        0, /*End of Scope*/
/* 70310*/      /*SwitchType*/ 19, MVT::v4f16,// ->70331
/* 70312*/        OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70314*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70317*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70320*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAhd), 0,
                      MVT::v4f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 70331*/      /*SwitchType*/ 19, MVT::v8f16,// ->70352
/* 70333*/        OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70335*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70338*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70341*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 70352*/      0, // EndSwitchType
/* 70353*/    /*Scope*/ 16|128,1/*144*/, /*->70499*/
/* 70355*/      OPC_MoveChild0,
/* 70356*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70359*/      OPC_RecordChild0, // #0 = $Vn
/* 70360*/      OPC_RecordChild1, // #1 = $Vm
/* 70361*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70363*/      OPC_MoveParent,
/* 70364*/      OPC_RecordChild1, // #2 = $src1
/* 70365*/      OPC_CheckPredicate, 86, // Predicate_fadd_mlx
/* 70367*/      OPC_SwitchType /*4 cases */, 42, MVT::v2f32,// ->70412
/* 70370*/        OPC_Scope, 19, /*->70391*/ // 2 children in Scope
/* 70372*/          OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70374*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70377*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70380*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[v2f32] } (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>, DPR:{ *:[v2f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VMLAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 70391*/        /*Scope*/ 19, /*->70411*/
/* 70392*/          OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70394*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70397*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70400*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[v2f32] } (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>, DPR:{ *:[v2f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 70411*/        0, /*End of Scope*/
/* 70412*/      /*SwitchType*/ 42, MVT::v4f32,// ->70456
/* 70414*/        OPC_Scope, 19, /*->70435*/ // 2 children in Scope
/* 70416*/          OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70418*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70421*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70424*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VMLAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 70435*/        /*Scope*/ 19, /*->70455*/
/* 70436*/          OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70438*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>, QPR:{ *:[v4f32] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                    // Dst: (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 70455*/        0, /*End of Scope*/
/* 70456*/      /*SwitchType*/ 19, MVT::v4f16,// ->70477
/* 70458*/        OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70460*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70463*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70466*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAhd), 0,
                      MVT::v4f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)<<P:Predicate_fmul_su>>, DPR:{ *:[v4f16] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 70477*/      /*SwitchType*/ 19, MVT::v8f16,// ->70498
/* 70479*/        OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 70481*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70484*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)<<P:Predicate_fmul_su>>, QPR:{ *:[v8f16] }:$src1)<<P:Predicate_fadd_mlx>> - Complexity = 8
                  // Dst: (VMLAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 70498*/      0, // EndSwitchType
/* 70499*/    /*Scope*/ 52, /*->70552*/
/* 70500*/      OPC_RecordChild0, // #0 = $src1
/* 70501*/      OPC_MoveChild1,
/* 70502*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70505*/      OPC_RecordChild0, // #1 = $Vn
/* 70506*/      OPC_RecordChild1, // #2 = $Vm
/* 70507*/      OPC_MoveParent,
/* 70508*/      OPC_SwitchType /*2 cases */, 19, MVT::v4f16,// ->70530
/* 70511*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70513*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70516*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70519*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhd), 0,
                      MVT::v4f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) - Complexity = 6
                  // Dst: (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 70530*/      /*SwitchType*/ 19, MVT::v8f16,// ->70551
/* 70532*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70534*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70537*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70540*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) - Complexity = 6
                  // Dst: (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 70551*/      0, // EndSwitchType
/* 70552*/    /*Scope*/ 52, /*->70605*/
/* 70553*/      OPC_MoveChild0,
/* 70554*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70557*/      OPC_RecordChild0, // #0 = $Vn
/* 70558*/      OPC_RecordChild1, // #1 = $Vm
/* 70559*/      OPC_MoveParent,
/* 70560*/      OPC_RecordChild1, // #2 = $src1
/* 70561*/      OPC_SwitchType /*2 cases */, 19, MVT::v4f16,// ->70583
/* 70564*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70566*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70569*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70572*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhd), 0,
                      MVT::v4f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm), DPR:{ *:[v4f16] }:$src1) - Complexity = 6
                  // Dst: (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 70583*/      /*SwitchType*/ 19, MVT::v8f16,// ->70604
/* 70585*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70587*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70590*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70593*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm), QPR:{ *:[v8f16] }:$src1) - Complexity = 6
                  // Dst: (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 70604*/      0, // EndSwitchType
/* 70605*/    /*Scope*/ 84, /*->70690*/
/* 70606*/      OPC_RecordChild0, // #0 = $Vn
/* 70607*/      OPC_RecordChild1, // #1 = $Vm
/* 70608*/      OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->70629
/* 70611*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 70613*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70616*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70619*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VADDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 70629*/      /*SwitchType*/ 18, MVT::v4f32,// ->70649
/* 70631*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 70633*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70636*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70639*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VADDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 70649*/      /*SwitchType*/ 18, MVT::v4f16,// ->70669
/* 70651*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 70653*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70656*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70659*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDhd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VADDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 70669*/      /*SwitchType*/ 18, MVT::v8f16,// ->70689
/* 70671*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 70673*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70676*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70679*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDhq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VADDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 70689*/      0, // EndSwitchType
/* 70690*/    0, /*End of Scope*/
/* 70691*/  /*SwitchOpcode*/ 70|128,13/*1734*/, TARGET_VAL(ISD::FSUB),// ->72429
/* 70695*/    OPC_Scope, 10|128,2/*266*/, /*->70964*/ // 6 children in Scope
/* 70698*/      OPC_MoveChild0,
/* 70699*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 70702*/      OPC_Scope, 101, /*->70805*/ // 3 children in Scope
/* 70704*/        OPC_MoveChild0,
/* 70705*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70708*/        OPC_RecordChild0, // #0 = $Dn
/* 70709*/        OPC_RecordChild1, // #1 = $Dm
/* 70710*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70712*/        OPC_MoveParent,
/* 70713*/        OPC_MoveParent,
/* 70714*/        OPC_RecordChild1, // #2 = $Ddin
/* 70715*/        OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 70717*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->70739
/* 70720*/          OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 70722*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70725*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70728*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f64] } (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>), DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VNMLAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 70739*/        /*SwitchType*/ 19, MVT::f32,// ->70760
/* 70741*/          OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 70743*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70746*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70749*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f32] } (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>), SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VNMLAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 70760*/        /*SwitchType*/ 42, MVT::f16,// ->70804
/* 70762*/          OPC_Scope, 19, /*->70783*/ // 2 children in Scope
/* 70764*/            OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 70766*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70769*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70772*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAH), 0,
                          MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fsub:{ *:[f16] } (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>), HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                      // Dst: (VNMLAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 70783*/          /*Scope*/ 19, /*->70803*/
/* 70784*/            OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 70786*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70789*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70792*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAH), 0,
                          MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fsub:{ *:[f16] } (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>), HPR:{ *:[f16] }:$dstin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                      // Dst: (VNMLAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 70803*/          0, /*End of Scope*/
/* 70804*/        0, // EndSwitchType
/* 70805*/      /*Scope*/ 78, /*->70884*/
/* 70806*/        OPC_RecordChild0, // #0 = $dstin
/* 70807*/        OPC_MoveParent,
/* 70808*/        OPC_MoveChild1,
/* 70809*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70812*/        OPC_RecordChild0, // #1 = $a
/* 70813*/        OPC_RecordChild1, // #2 = $b
/* 70814*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70816*/        OPC_MoveParent,
/* 70817*/        OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 70819*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->70841
/* 70822*/          OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 70824*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70827*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70830*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAD), 0,
                        MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fsub:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$dstin), (fmul:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VNMLAD:{ *:[f64] } DPR:{ *:[f64] }:$dstin, DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 70841*/        /*SwitchType*/ 19, MVT::f32,// ->70862
/* 70843*/          OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 70845*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70848*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70851*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAS), 0,
                        MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fsub:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$dstin), (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VNMLAS:{ *:[f32] } SPR:{ *:[f32] }:$dstin, SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 70862*/        /*SwitchType*/ 19, MVT::f16,// ->70883
/* 70864*/          OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 70866*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70869*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70872*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLAH), 0,
                        MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fsub:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$dstin), (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VNMLAH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 70883*/        0, // EndSwitchType
/* 70884*/      /*Scope*/ 78, /*->70963*/
/* 70885*/        OPC_MoveChild0,
/* 70886*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70889*/        OPC_RecordChild0, // #0 = $Dn
/* 70890*/        OPC_RecordChild1, // #1 = $Dm
/* 70891*/        OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70893*/        OPC_MoveParent,
/* 70894*/        OPC_MoveParent,
/* 70895*/        OPC_RecordChild1, // #2 = $Ddin
/* 70896*/        OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 70898*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->70920
/* 70901*/          OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70903*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70906*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70909*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f64] } (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>), DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 70920*/        /*SwitchType*/ 19, MVT::f32,// ->70941
/* 70922*/          OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70924*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70927*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70930*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f32] } (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>), SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 70941*/        /*SwitchType*/ 19, MVT::f16,// ->70962
/* 70943*/          OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 70945*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70948*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70951*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f16] } (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>), HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 11
                    // Dst: (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 70962*/        0, // EndSwitchType
/* 70963*/      0, /*End of Scope*/
/* 70964*/    /*Scope*/ 77, /*->71042*/
/* 70965*/      OPC_RecordChild0, // #0 = $dstin
/* 70966*/      OPC_MoveChild1,
/* 70967*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 70970*/      OPC_RecordChild0, // #1 = $a
/* 70971*/      OPC_RecordChild1, // #2 = $b
/* 70972*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 70974*/      OPC_MoveParent,
/* 70975*/      OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 70977*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->70999
/* 70980*/        OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 70982*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70985*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70988*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSD), 0,
                      MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f64] } DPR:{ *:[f64] }:$dstin, (fmul:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VMLSD:{ *:[f64] } DPR:{ *:[f64] }:$dstin, DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 70999*/      /*SwitchType*/ 19, MVT::f32,// ->71020
/* 71001*/        OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 71003*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71006*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71009*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSS), 0,
                      MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$dstin, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VMLSS:{ *:[f32] } SPR:{ *:[f32] }:$dstin, SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 71020*/      /*SwitchType*/ 19, MVT::f16,// ->71041
/* 71022*/        OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 71024*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71027*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71030*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSH), 0,
                      MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f16] } HPR:{ *:[f16] }:$dstin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VMLSH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 71041*/      0, // EndSwitchType
/* 71042*/    /*Scope*/ 100, /*->71143*/
/* 71043*/      OPC_MoveChild0,
/* 71044*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 71047*/      OPC_RecordChild0, // #0 = $Dn
/* 71048*/      OPC_RecordChild1, // #1 = $Dm
/* 71049*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71051*/      OPC_MoveParent,
/* 71052*/      OPC_RecordChild1, // #2 = $Ddin
/* 71053*/      OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71055*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->71077
/* 71058*/        OPC_CheckPatternPredicate, 86, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 71060*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71063*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71066*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLSD), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fsub:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>, DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VNMLSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 71077*/      /*SwitchType*/ 19, MVT::f32,// ->71098
/* 71079*/        OPC_CheckPatternPredicate, 88, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx())
/* 71081*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71084*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71087*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLSS), 0,
                      MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fsub:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>, SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VNMLSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 71098*/      /*SwitchType*/ 42, MVT::f16,// ->71142
/* 71100*/        OPC_Scope, 19, /*->71121*/ // 2 children in Scope
/* 71102*/          OPC_CheckPatternPredicate, 90, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 71104*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71107*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71110*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                    // Dst: (VNMLSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 71121*/        /*Scope*/ 19, /*->71141*/
/* 71122*/          OPC_CheckPatternPredicate, 92, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx())
/* 71124*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71127*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71130*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMLSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fsub:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$dstin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                    // Dst: (VNMLSH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 71141*/        0, /*End of Scope*/
/* 71142*/      0, // EndSwitchType
/* 71143*/    /*Scope*/ 77, /*->71221*/
/* 71144*/      OPC_RecordChild0, // #0 = $dstin
/* 71145*/      OPC_MoveChild1,
/* 71146*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 71149*/      OPC_RecordChild0, // #1 = $a
/* 71150*/      OPC_RecordChild1, // #2 = $b
/* 71151*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71153*/      OPC_MoveParent,
/* 71154*/      OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71156*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->71178
/* 71159*/        OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71161*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71164*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71167*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSD), 0,
                      MVT::f64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f64] } DPR:{ *:[f64] }:$dstin, (fmul:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$dstin, DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 71178*/      /*SwitchType*/ 19, MVT::f32,// ->71199
/* 71180*/        OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71182*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71185*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71188*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSS), 0,
                      MVT::f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$dstin, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$dstin, SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 71199*/      /*SwitchType*/ 19, MVT::f16,// ->71220
/* 71201*/        OPC_CheckPatternPredicate, 93, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71203*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71206*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71209*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSH), 0,
                      MVT::f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fsub:{ *:[f16] } HPR:{ *:[f16] }:$dstin, (fmul:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$dstin, HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b)
/* 71220*/      0, // EndSwitchType
/* 71221*/    /*Scope*/ 77, /*->71299*/
/* 71222*/      OPC_MoveChild0,
/* 71223*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 71226*/      OPC_RecordChild0, // #0 = $Dn
/* 71227*/      OPC_RecordChild1, // #1 = $Dm
/* 71228*/      OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71230*/      OPC_MoveParent,
/* 71231*/      OPC_RecordChild1, // #2 = $Ddin
/* 71232*/      OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71234*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->71256
/* 71237*/        OPC_CheckPatternPredicate, 87, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71239*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71242*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71245*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSD), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fsub:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)<<P:Predicate_fmul_su>>, DPR:{ *:[f64] }:$Ddin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 71256*/      /*SwitchType*/ 19, MVT::f32,// ->71277
/* 71258*/        OPC_CheckPatternPredicate, 89, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71260*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71263*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71266*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSS), 0,
                      MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fsub:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)<<P:Predicate_fmul_su>>, SPR:{ *:[f32] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 71277*/      /*SwitchType*/ 19, MVT::f16,// ->71298
/* 71279*/        OPC_CheckPatternPredicate, 91, // (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 71281*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71287*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSH), 0,
                      MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fsub:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)<<P:Predicate_fmul_su>>, HPR:{ *:[f16] }:$Sdin)<<P:Predicate_fsub_mlx>> - Complexity = 8
                  // Dst: (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 71298*/      0, // EndSwitchType
/* 71299*/    /*Scope*/ 103|128,8/*1127*/, /*->72428*/
/* 71301*/      OPC_RecordChild0, // #0 = $acc
/* 71302*/      OPC_Scope, 15|128,2/*271*/, /*->71576*/ // 4 children in Scope
/* 71305*/        OPC_MoveChild1,
/* 71306*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 71309*/        OPC_RecordChild0, // #1 = $a
/* 71310*/        OPC_RecordChild1, // #2 = $b
/* 71311*/        OPC_MoveParent,
/* 71312*/        OPC_CheckType, MVT::f32,
/* 71314*/        OPC_Scope, 0|128,1/*128*/, /*->71445*/ // 2 children in Scope
/* 71317*/          OPC_CheckPatternPredicate, 94, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 71319*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 71325*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71328*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 71336*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71339*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 71348*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 71354*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71357*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 71365*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71368*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/* 71377*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 71383*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71386*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 71394*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71397*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/* 71406*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71409*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71412*/          OPC_EmitNode1, TARGET_VAL(ARM::VMLSfd), 0,
                        MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 71423*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71426*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 71434*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71437*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 22, 23, 
                    // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 71445*/        /*Scope*/ 0|128,1/*128*/, /*->71575*/
/* 71447*/          OPC_CheckPatternPredicate, 95, // (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 71449*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #3
/* 71455*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71458*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 71466*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71469*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 71478*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #8
/* 71484*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71487*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 71495*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71498*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/* 71507*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #13
/* 71513*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71516*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 71524*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71527*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/* 71536*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71539*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71542*/          OPC_EmitNode1, TARGET_VAL(ARM::VFMSfd), 0,
                        MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/* 71553*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71556*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/* 71564*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71567*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 22, 23, 
                    // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 71575*/        0, /*End of Scope*/
/* 71576*/      /*Scope*/ 37|128,1/*165*/, /*->71743*/
/* 71578*/        OPC_RecordChild1, // #1 = $Dm
/* 71579*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->71600
/* 71582*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 71584*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71587*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71590*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBD), 0,
                        MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                    // Dst: (VSUBD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 71600*/        /*SwitchType*/ 120, MVT::f32,// ->71722
/* 71602*/          OPC_Scope, 18, /*->71622*/ // 2 children in Scope
/* 71604*/            OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 71606*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71609*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71612*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBS), 0,
                          MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                      // Dst: (VSUBS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 71622*/          /*Scope*/ 98, /*->71721*/
/* 71623*/            OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 71625*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 71631*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71634*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 71642*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71645*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 71654*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/* 71660*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71663*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 71671*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71674*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 71683*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71686*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71689*/            OPC_EmitNode1, TARGET_VAL(ARM::VSUBfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 71699*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 71702*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/* 71710*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 71713*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 16, 17, 
                      // Src: (fsub:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VSUBfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 71721*/          0, /*End of Scope*/
/* 71722*/        /*SwitchType*/ 18, MVT::f16,// ->71742
/* 71724*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 71726*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71732*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBH), 0,
                        MVT::f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                    // Dst: (VSUBH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 71742*/        0, // EndSwitchType
/* 71743*/      /*Scope*/ 86|128,4/*598*/, /*->72343*/
/* 71745*/        OPC_MoveChild1,
/* 71746*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/* 71749*/        OPC_Scope, 70, /*->71821*/ // 7 children in Scope
/* 71751*/          OPC_RecordChild0, // #1 = $Vn
/* 71752*/          OPC_MoveChild1,
/* 71753*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 71756*/          OPC_RecordChild0, // #2 = $Vm
/* 71757*/          OPC_CheckChild0Type, MVT::v2f32,
/* 71759*/          OPC_RecordChild1, // #3 = $lane
/* 71760*/          OPC_MoveChild1,
/* 71761*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71764*/          OPC_MoveParent,
/* 71765*/          OPC_MoveParent,
/* 71766*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71768*/          OPC_MoveParent,
/* 71769*/          OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71771*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->71796
/* 71774*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71776*/            OPC_EmitConvertToTarget, 3,
/* 71778*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71781*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71784*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfd), 0,
                          MVT::v2f32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                      // Dst: (VMLSslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 71796*/          /*SwitchType*/ 22, MVT::v4f32,// ->71820
/* 71798*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71800*/            OPC_EmitConvertToTarget, 3,
/* 71802*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71805*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71808*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfq), 0,
                          MVT::v4f32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                      // Dst: (VMLSslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 71820*/          0, // EndSwitchType
/* 71821*/        /*Scope*/ 70, /*->71892*/
/* 71822*/          OPC_MoveChild0,
/* 71823*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 71826*/          OPC_RecordChild0, // #1 = $Vm
/* 71827*/          OPC_CheckChild0Type, MVT::v2f32,
/* 71829*/          OPC_RecordChild1, // #2 = $lane
/* 71830*/          OPC_MoveChild1,
/* 71831*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71834*/          OPC_MoveParent,
/* 71835*/          OPC_MoveParent,
/* 71836*/          OPC_RecordChild1, // #3 = $Vn
/* 71837*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71839*/          OPC_MoveParent,
/* 71840*/          OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71842*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->71867
/* 71845*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71847*/            OPC_EmitConvertToTarget, 2,
/* 71849*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71852*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71855*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfd), 0,
                          MVT::v2f32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2f32] }:$Vn)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                      // Dst: (VMLSslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 71867*/          /*SwitchType*/ 22, MVT::v4f32,// ->71891
/* 71869*/            OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71871*/            OPC_EmitConvertToTarget, 2,
/* 71873*/            OPC_EmitInteger, MVT::i32, 14, 
/* 71876*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71879*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfq), 0,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$Vn)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                      // Dst: (VMLSslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 71891*/          0, // EndSwitchType
/* 71892*/        /*Scope*/ 60, /*->71953*/
/* 71893*/          OPC_RecordChild0, // #1 = $src2
/* 71894*/          OPC_MoveChild1,
/* 71895*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 71898*/          OPC_RecordChild0, // #2 = $src3
/* 71899*/          OPC_CheckChild0Type, MVT::v4f32,
/* 71901*/          OPC_RecordChild1, // #3 = $lane
/* 71902*/          OPC_MoveChild1,
/* 71903*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71906*/          OPC_MoveParent,
/* 71907*/          OPC_MoveParent,
/* 71908*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71910*/          OPC_MoveParent,
/* 71911*/          OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71913*/          OPC_CheckType, MVT::v4f32,
/* 71915*/          OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71917*/          OPC_EmitConvertToTarget, 3,
/* 71919*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 71922*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 71930*/          OPC_EmitConvertToTarget, 3,
/* 71932*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 71935*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71938*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71941*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfq), 0,
                        MVT::v4f32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src2, (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane))<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                    // Dst: (VMLSslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 71953*/        /*Scope*/ 60, /*->72014*/
/* 71954*/          OPC_MoveChild0,
/* 71955*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 71958*/          OPC_RecordChild0, // #1 = $src3
/* 71959*/          OPC_CheckChild0Type, MVT::v4f32,
/* 71961*/          OPC_RecordChild1, // #2 = $lane
/* 71962*/          OPC_MoveChild1,
/* 71963*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71966*/          OPC_MoveParent,
/* 71967*/          OPC_MoveParent,
/* 71968*/          OPC_RecordChild1, // #3 = $src2
/* 71969*/          OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 71971*/          OPC_MoveParent,
/* 71972*/          OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 71974*/          OPC_CheckType, MVT::v4f32,
/* 71976*/          OPC_CheckPatternPredicate, 96, // (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 71978*/          OPC_EmitConvertToTarget, 2,
/* 71980*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 71983*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 71991*/          OPC_EmitConvertToTarget, 2,
/* 71993*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 71996*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71999*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72002*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslfq), 0,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                    // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$src2)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 14
                    // Dst: (VMLSslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$src2, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src3, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 72014*/        /*Scope*/ 66, /*->72081*/
/* 72015*/          OPC_RecordChild0, // #1 = $Vn
/* 72016*/          OPC_MoveChild1,
/* 72017*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 72020*/          OPC_RecordChild0, // #2 = $Vm
/* 72021*/          OPC_CheckChild0Type, MVT::v4f16,
/* 72023*/          OPC_RecordChild1, // #3 = $lane
/* 72024*/          OPC_MoveChild1,
/* 72025*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72028*/          OPC_MoveParent,
/* 72029*/          OPC_MoveParent,
/* 72030*/          OPC_MoveParent,
/* 72031*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->72056
/* 72034*/            OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72036*/            OPC_EmitConvertToTarget, 3,
/* 72038*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72041*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72044*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslhd), 0,
                          MVT::v4f16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                      // Dst: (VMLSslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 72056*/          /*SwitchType*/ 22, MVT::v8f16,// ->72080
/* 72058*/            OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72060*/            OPC_EmitConvertToTarget, 3,
/* 72062*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72065*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72068*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslhq), 0,
                          MVT::v8f16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 12
                      // Dst: (VMLSslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 72080*/          0, // EndSwitchType
/* 72081*/        /*Scope*/ 66, /*->72148*/
/* 72082*/          OPC_MoveChild0,
/* 72083*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 72086*/          OPC_RecordChild0, // #1 = $Vm
/* 72087*/          OPC_CheckChild0Type, MVT::v4f16,
/* 72089*/          OPC_RecordChild1, // #2 = $lane
/* 72090*/          OPC_MoveChild1,
/* 72091*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72094*/          OPC_MoveParent,
/* 72095*/          OPC_MoveParent,
/* 72096*/          OPC_RecordChild1, // #3 = $Vn
/* 72097*/          OPC_MoveParent,
/* 72098*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->72123
/* 72101*/            OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72103*/            OPC_EmitConvertToTarget, 2,
/* 72105*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72108*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72111*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslhd), 0,
                          MVT::v4f16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4f16] }:$Vn)) - Complexity = 12
                      // Dst: (VMLSslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 72123*/          /*SwitchType*/ 22, MVT::v8f16,// ->72147
/* 72125*/            OPC_CheckPatternPredicate, 97, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72127*/            OPC_EmitConvertToTarget, 2,
/* 72129*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72132*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72135*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSslhq), 0,
                          MVT::v8f16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8f16] }:$Vn)) - Complexity = 12
                      // Dst: (VMLSslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 72147*/          0, // EndSwitchType
/* 72148*/        /*Scope*/ 64|128,1/*192*/, /*->72342*/
/* 72150*/          OPC_RecordChild0, // #1 = $Vn
/* 72151*/          OPC_RecordChild1, // #2 = $Vm
/* 72152*/          OPC_Scope, 95, /*->72249*/ // 2 children in Scope
/* 72154*/            OPC_CheckPredicate, 56, // Predicate_fmul_su
/* 72156*/            OPC_MoveParent,
/* 72157*/            OPC_CheckPredicate, 86, // Predicate_fsub_mlx
/* 72159*/            OPC_SwitchType /*2 cases */, 42, MVT::v2f32,// ->72204
/* 72162*/              OPC_Scope, 19, /*->72183*/ // 2 children in Scope
/* 72164*/                OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72166*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72169*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72172*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSfd), 0,
                              MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                          // Dst: (VMLSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 72183*/              /*Scope*/ 19, /*->72203*/
/* 72184*/                OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 72186*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72189*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72192*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSfd), 0,
                              MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                          // Dst: (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 72203*/              0, /*End of Scope*/
/* 72204*/            /*SwitchType*/ 42, MVT::v4f32,// ->72248
/* 72206*/              OPC_Scope, 19, /*->72227*/ // 2 children in Scope
/* 72208*/                OPC_CheckPatternPredicate, 98, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72210*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72213*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72216*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLSfq), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                          // Dst: (VMLSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 72227*/              /*Scope*/ 19, /*->72247*/
/* 72228*/                OPC_CheckPatternPredicate, 99, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 72230*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72233*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72236*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSfq), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)<<P:Predicate_fmul_su>>)<<P:Predicate_fsub_mlx>> - Complexity = 8
                          // Dst: (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 72247*/              0, /*End of Scope*/
/* 72248*/            0, // EndSwitchType
/* 72249*/          /*Scope*/ 91, /*->72341*/
/* 72250*/            OPC_MoveParent,
/* 72251*/            OPC_SwitchType /*2 cases */, 42, MVT::v4f16,// ->72296
/* 72254*/              OPC_Scope, 19, /*->72275*/ // 2 children in Scope
/* 72256*/                OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72258*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72261*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72264*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLShd), 0,
                              MVT::v4f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) - Complexity = 6
                          // Dst: (VMLShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 72275*/              /*Scope*/ 19, /*->72295*/
/* 72276*/                OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 72278*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72281*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72284*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMShd), 0,
                              MVT::v4f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) - Complexity = 6
                          // Dst: (VFMShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 72295*/              0, /*End of Scope*/
/* 72296*/            /*SwitchType*/ 42, MVT::v8f16,// ->72340
/* 72298*/              OPC_Scope, 19, /*->72319*/ // 2 children in Scope
/* 72300*/                OPC_CheckPatternPredicate, 100, // (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx())
/* 72302*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72305*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72308*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLShq), 0,
                              MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) - Complexity = 6
                          // Dst: (VMLShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 72319*/              /*Scope*/ 19, /*->72339*/
/* 72320*/                OPC_CheckPatternPredicate, 101, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin())
/* 72322*/                OPC_EmitInteger, MVT::i32, 14, 
/* 72325*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72328*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMShq), 0,
                              MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) - Complexity = 6
                          // Dst: (VFMShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 72339*/              0, /*End of Scope*/
/* 72340*/            0, // EndSwitchType
/* 72341*/          0, /*End of Scope*/
/* 72342*/        0, /*End of Scope*/
/* 72343*/      /*Scope*/ 83, /*->72427*/
/* 72344*/        OPC_RecordChild1, // #1 = $Vm
/* 72345*/        OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->72366
/* 72348*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 72350*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72353*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72356*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBfd), 0,
                        MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                    // Dst: (VSUBfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 72366*/        /*SwitchType*/ 18, MVT::v4f32,// ->72386
/* 72368*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 72370*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72373*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72376*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBfq), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                    // Dst: (VSUBfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 72386*/        /*SwitchType*/ 18, MVT::v4f16,// ->72406
/* 72388*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 72390*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72393*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72396*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBhd), 0,
                        MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                    // Dst: (VSUBhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 72406*/        /*SwitchType*/ 18, MVT::v8f16,// ->72426
/* 72408*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 72410*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72413*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72416*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBhq), 0,
                        MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                    // Dst: (VSUBhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 72426*/        0, // EndSwitchType
/* 72427*/      0, /*End of Scope*/
/* 72428*/    0, /*End of Scope*/
/* 72429*/  /*SwitchOpcode*/ 112|128,2/*368*/, TARGET_VAL(ISD::FMA),// ->72801
/* 72433*/    OPC_Scope, 106, /*->72541*/ // 4 children in Scope
/* 72435*/      OPC_MoveChild0,
/* 72436*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72439*/      OPC_RecordChild0, // #0 = $Dn
/* 72440*/      OPC_MoveParent,
/* 72441*/      OPC_RecordChild1, // #1 = $Dm
/* 72442*/      OPC_Scope, 50, /*->72494*/ // 2 children in Scope
/* 72444*/        OPC_MoveChild2,
/* 72445*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72448*/        OPC_RecordChild0, // #2 = $Ddin
/* 72449*/        OPC_MoveParent,
/* 72450*/        OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72472
/* 72453*/          OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72455*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72458*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72461*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) - Complexity = 9
                    // Dst: (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72472*/        /*SwitchType*/ 19, MVT::f32,// ->72493
/* 72474*/          OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72476*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72479*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72482*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) - Complexity = 9
                    // Dst: (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72493*/        0, // EndSwitchType
/* 72494*/      /*Scope*/ 45, /*->72540*/
/* 72495*/        OPC_RecordChild2, // #2 = $Ddin
/* 72496*/        OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72518
/* 72499*/          OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72501*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72504*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72507*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) - Complexity = 6
                    // Dst: (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72518*/        /*SwitchType*/ 19, MVT::f32,// ->72539
/* 72520*/          OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72522*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72525*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72528*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) - Complexity = 6
                    // Dst: (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72539*/        0, // EndSwitchType
/* 72540*/      0, /*End of Scope*/
/* 72541*/    /*Scope*/ 28|128,1/*156*/, /*->72699*/
/* 72543*/      OPC_RecordChild0, // #0 = $Dn
/* 72544*/      OPC_Scope, 51, /*->72597*/ // 2 children in Scope
/* 72546*/        OPC_MoveChild1,
/* 72547*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72550*/        OPC_RecordChild0, // #1 = $Dm
/* 72551*/        OPC_MoveParent,
/* 72552*/        OPC_RecordChild2, // #2 = $Ddin
/* 72553*/        OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72575
/* 72556*/          OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72558*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72561*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72564*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSD), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm), DPR:{ *:[f64] }:$Ddin) - Complexity = 6
                    // Dst: (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72575*/        /*SwitchType*/ 19, MVT::f32,// ->72596
/* 72577*/          OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72579*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72582*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72585*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSS), 0,
                        MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm), SPR:{ *:[f32] }:$Sdin) - Complexity = 6
                    // Dst: (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72596*/        0, // EndSwitchType
/* 72597*/      /*Scope*/ 100, /*->72698*/
/* 72598*/        OPC_RecordChild1, // #1 = $Dm
/* 72599*/        OPC_Scope, 50, /*->72651*/ // 2 children in Scope
/* 72601*/          OPC_MoveChild2,
/* 72602*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72605*/          OPC_RecordChild0, // #2 = $Ddin
/* 72606*/          OPC_MoveParent,
/* 72607*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72629
/* 72610*/            OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72612*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72615*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72618*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSD), 0,
                          MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) - Complexity = 6
                      // Dst: (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72629*/          /*SwitchType*/ 19, MVT::f32,// ->72650
/* 72631*/            OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72633*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72636*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72639*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSS), 0,
                          MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) - Complexity = 6
                      // Dst: (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72650*/          0, // EndSwitchType
/* 72651*/        /*Scope*/ 45, /*->72697*/
/* 72652*/          OPC_RecordChild2, // #2 = $Ddin
/* 72653*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72675
/* 72656*/            OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72658*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72661*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72664*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAD), 0,
                          MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) - Complexity = 3
                      // Dst: (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72675*/          /*SwitchType*/ 19, MVT::f32,// ->72696
/* 72677*/            OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72679*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72682*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72685*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAS), 0,
                          MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) - Complexity = 3
                      // Dst: (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72696*/          0, // EndSwitchType
/* 72697*/        0, /*End of Scope*/
/* 72698*/      0, /*End of Scope*/
/* 72699*/    /*Scope*/ 52, /*->72752*/
/* 72700*/      OPC_MoveChild0,
/* 72701*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72704*/      OPC_RecordChild0, // #0 = $Vn
/* 72705*/      OPC_MoveParent,
/* 72706*/      OPC_RecordChild1, // #1 = $Vm
/* 72707*/      OPC_RecordChild2, // #2 = $src1
/* 72708*/      OPC_SwitchType /*2 cases */, 19, MVT::v2f32,// ->72730
/* 72711*/        OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72713*/        OPC_EmitInteger, MVT::i32, 14, 
/* 72716*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72719*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSfd), 0,
                      MVT::v2f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) - Complexity = 6
                  // Dst: (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 72730*/      /*SwitchType*/ 19, MVT::v4f32,// ->72751
/* 72732*/        OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72734*/        OPC_EmitInteger, MVT::i32, 14, 
/* 72737*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72740*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) - Complexity = 6
                  // Dst: (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 72751*/      0, // EndSwitchType
/* 72752*/    /*Scope*/ 47, /*->72800*/
/* 72753*/      OPC_RecordChild0, // #0 = $Vn
/* 72754*/      OPC_RecordChild1, // #1 = $Vm
/* 72755*/      OPC_RecordChild2, // #2 = $src1
/* 72756*/      OPC_SwitchType /*2 cases */, 19, MVT::v2f32,// ->72778
/* 72759*/        OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72761*/        OPC_EmitInteger, MVT::i32, 14, 
/* 72764*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72767*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfd), 0,
                      MVT::v2f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) - Complexity = 3
                  // Dst: (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 72778*/      /*SwitchType*/ 19, MVT::v4f32,// ->72799
/* 72780*/        OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72782*/        OPC_EmitInteger, MVT::i32, 14, 
/* 72785*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72788*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) - Complexity = 3
                  // Dst: (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 72799*/      0, // EndSwitchType
/* 72800*/    0, /*End of Scope*/
/* 72801*/  /*SwitchOpcode*/ 38|128,4/*550*/, TARGET_VAL(ISD::FNEG),// ->73355
/* 72805*/    OPC_Scope, 80|128,2/*336*/, /*->73144*/ // 2 children in Scope
/* 72808*/      OPC_MoveChild0,
/* 72809*/      OPC_SwitchOpcode /*3 cases */, 33|128,1/*161*/, TARGET_VAL(ISD::FMA),// ->72975
/* 72814*/        OPC_Scope, 53, /*->72869*/ // 2 children in Scope
/* 72816*/          OPC_MoveChild0,
/* 72817*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72820*/          OPC_RecordChild0, // #0 = $Dn
/* 72821*/          OPC_MoveParent,
/* 72822*/          OPC_RecordChild1, // #1 = $Dm
/* 72823*/          OPC_RecordChild2, // #2 = $Ddin
/* 72824*/          OPC_MoveParent,
/* 72825*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72847
/* 72828*/            OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72830*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72833*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72836*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSD), 0,
                          MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) - Complexity = 9
                      // Dst: (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72847*/          /*SwitchType*/ 19, MVT::f32,// ->72868
/* 72849*/            OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72851*/            OPC_EmitInteger, MVT::i32, 14, 
/* 72854*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72857*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSS), 0,
                          MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) - Complexity = 9
                      // Dst: (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72868*/          0, // EndSwitchType
/* 72869*/        /*Scope*/ 104, /*->72974*/
/* 72870*/          OPC_RecordChild0, // #0 = $Dn
/* 72871*/          OPC_Scope, 52, /*->72925*/ // 2 children in Scope
/* 72873*/            OPC_MoveChild1,
/* 72874*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 72877*/            OPC_RecordChild0, // #1 = $Dm
/* 72878*/            OPC_MoveParent,
/* 72879*/            OPC_RecordChild2, // #2 = $Ddin
/* 72880*/            OPC_MoveParent,
/* 72881*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72903
/* 72884*/              OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72886*/              OPC_EmitInteger, MVT::i32, 14, 
/* 72889*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72892*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSD), 0,
                            MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm), DPR:{ *:[f64] }:$Ddin)) - Complexity = 9
                        // Dst: (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72903*/            /*SwitchType*/ 19, MVT::f32,// ->72924
/* 72905*/              OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72907*/              OPC_EmitInteger, MVT::i32, 14, 
/* 72910*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72913*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSS), 0,
                            MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm), SPR:{ *:[f32] }:$Sdin)) - Complexity = 9
                        // Dst: (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72924*/            0, // EndSwitchType
/* 72925*/          /*Scope*/ 47, /*->72973*/
/* 72926*/            OPC_RecordChild1, // #1 = $Dm
/* 72927*/            OPC_RecordChild2, // #2 = $Ddin
/* 72928*/            OPC_MoveParent,
/* 72929*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->72951
/* 72932*/              OPC_CheckPatternPredicate, 102, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4())
/* 72934*/              OPC_EmitInteger, MVT::i32, 14, 
/* 72937*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72940*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAD), 0,
                            MVT::f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) - Complexity = 6
                        // Dst: (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 72951*/            /*SwitchType*/ 19, MVT::f32,// ->72972
/* 72953*/              OPC_CheckPatternPredicate, 103, // (Subtarget->hasVFP4())
/* 72955*/              OPC_EmitInteger, MVT::i32, 14, 
/* 72958*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72961*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAS), 0,
                            MVT::f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) - Complexity = 6
                        // Dst: (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 72972*/            0, // EndSwitchType
/* 72973*/          0, /*End of Scope*/
/* 72974*/        0, /*End of Scope*/
/* 72975*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::FMUL),// ->73043
/* 72978*/        OPC_RecordChild0, // #0 = $Dn
/* 72979*/        OPC_RecordChild1, // #1 = $Dm
/* 72980*/        OPC_MoveParent,
/* 72981*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->73002
/* 72984*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 72986*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72989*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72992*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULD), 0,
                        MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)) - Complexity = 6
                    // Dst: (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 73002*/        /*SwitchType*/ 18, MVT::f32,// ->73022
/* 73004*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 73006*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73012*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULS), 0,
                        MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)) - Complexity = 6
                    // Dst: (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 73022*/        /*SwitchType*/ 18, MVT::f16,// ->73042
/* 73024*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 73026*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73029*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73032*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULH), 0,
                        MVT::f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)) - Complexity = 6
                    // Dst: (VNMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 73042*/        0, // EndSwitchType
/* 73043*/      /*SwitchOpcode*/ 97, TARGET_VAL(ARMISD::VMOVDRR),// ->73143
/* 73046*/        OPC_RecordChild0, // #0 = $Rl
/* 73047*/        OPC_RecordChild1, // #1 = $Rh
/* 73048*/        OPC_MoveParent,
/* 73049*/        OPC_Scope, 45, /*->73096*/ // 2 children in Scope
/* 73051*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73053*/          OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/* 73060*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73063*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73066*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73069*/          OPC_EmitNode1, TARGET_VAL(ARM::EORri), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5,  // Results = #6
/* 73080*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73083*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73086*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::f64, 4/*#Ops*/, 0, 6, 7, 8, 
                    // Src: (fneg:{ *:[f64] } (arm_fmdrr:{ *:[f64] } GPR:{ *:[i32] }:$Rl, GPR:{ *:[i32] }:$Rh)) - Complexity = 6
                    // Dst: (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$Rl, (EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rh, 2147483648:{ *:[i32] }))
/* 73096*/        /*Scope*/ 45, /*->73142*/
/* 73097*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73099*/          OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/* 73106*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73109*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73112*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73115*/          OPC_EmitNode1, TARGET_VAL(ARM::t2EORri), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5,  // Results = #6
/* 73126*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73129*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73132*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::f64, 4/*#Ops*/, 0, 6, 7, 8, 
                    // Src: (fneg:{ *:[f64] } (arm_fmdrr:{ *:[f64] } GPR:{ *:[i32] }:$Rl, GPR:{ *:[i32] }:$Rh)) - Complexity = 6
                    // Dst: (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$Rl, (t2EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rh, 2147483648:{ *:[i32] }))
/* 73142*/        0, /*End of Scope*/
/* 73143*/      0, // EndSwitchOpcode
/* 73144*/    /*Scope*/ 80|128,1/*208*/, /*->73354*/
/* 73146*/      OPC_RecordChild0, // #0 = $Dm
/* 73147*/      OPC_SwitchType /*7 cases */, 17, MVT::f64,// ->73167
/* 73150*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 73152*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73155*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73158*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGD), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                  // Dst: (VNEGD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 73167*/      /*SwitchType*/ 89, MVT::f32,// ->73258
/* 73169*/        OPC_Scope, 17, /*->73188*/ // 2 children in Scope
/* 73171*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 73173*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73176*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73179*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGS), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                    // Dst: (VNEGS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 73188*/        /*Scope*/ 68, /*->73257*/
/* 73189*/          OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 73191*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 73197*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 73200*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 73208*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 73211*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 73220*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73223*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73226*/          OPC_EmitNode1, TARGET_VAL(ARM::VNEGfd), 0,
                        MVT::f64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 73235*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 73238*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 73246*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 73249*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 10, 11, 
                    // Src: (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VNEGfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 73257*/        0, /*End of Scope*/
/* 73258*/      /*SwitchType*/ 17, MVT::f16,// ->73277
/* 73260*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 73262*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73265*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73268*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGH), 0,
                      MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                  // Dst: (VNEGH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/* 73277*/      /*SwitchType*/ 17, MVT::v2f32,// ->73296
/* 73279*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73281*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73287*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VNEGfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 73296*/      /*SwitchType*/ 17, MVT::v4f32,// ->73315
/* 73298*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73300*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73303*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73306*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGf32q), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VNEGf32q:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 73315*/      /*SwitchType*/ 17, MVT::v4f16,// ->73334
/* 73317*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73319*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73322*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73325*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGhd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VNEGhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 73334*/      /*SwitchType*/ 17, MVT::v8f16,// ->73353
/* 73336*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73338*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73341*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73344*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGhq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fneg:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VNEGhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 73353*/      0, // EndSwitchType
/* 73354*/    0, /*End of Scope*/
/* 73355*/  /*SwitchOpcode*/ 2|128,7/*898*/, TARGET_VAL(ISD::FMUL),// ->74257
/* 73359*/    OPC_Scope, 49, /*->73410*/ // 8 children in Scope
/* 73361*/      OPC_MoveChild0,
/* 73362*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 73365*/      OPC_RecordChild0, // #0 = $a
/* 73366*/      OPC_MoveParent,
/* 73367*/      OPC_RecordChild1, // #1 = $b
/* 73368*/      OPC_SwitchType /*2 cases */, 18, MVT::f64,// ->73389
/* 73371*/        OPC_CheckPatternPredicate, 104, // (!Subtarget->isFPOnlySP()) && (!TM.Options.HonorSignDependentRoundingFPMath())
/* 73373*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73379*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULD), 0,
                      MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a), DPR:{ *:[f64] }:$b) - Complexity = 6
                  // Dst: (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 73389*/      /*SwitchType*/ 18, MVT::f32,// ->73409
/* 73391*/        OPC_CheckPatternPredicate, 105, // (!TM.Options.HonorSignDependentRoundingFPMath())
/* 73393*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73396*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73399*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULS), 0,
                      MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a), SPR:{ *:[f32] }:$b) - Complexity = 6
                  // Dst: (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 73409*/      0, // EndSwitchType
/* 73410*/    /*Scope*/ 87|128,2/*343*/, /*->73755*/
/* 73412*/      OPC_RecordChild0, // #0 = $b
/* 73413*/      OPC_Scope, 48, /*->73463*/ // 3 children in Scope
/* 73415*/        OPC_MoveChild1,
/* 73416*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 73419*/        OPC_RecordChild0, // #1 = $a
/* 73420*/        OPC_MoveParent,
/* 73421*/        OPC_SwitchType /*2 cases */, 18, MVT::f64,// ->73442
/* 73424*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->isFPOnlySP()) && (!TM.Options.HonorSignDependentRoundingFPMath())
/* 73426*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73429*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73432*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULD), 0,
                        MVT::f64, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (fmul:{ *:[f64] } DPR:{ *:[f64] }:$b, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a)) - Complexity = 6
                    // Dst: (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
/* 73442*/        /*SwitchType*/ 18, MVT::f32,// ->73462
/* 73444*/          OPC_CheckPatternPredicate, 105, // (!TM.Options.HonorSignDependentRoundingFPMath())
/* 73446*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73449*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73452*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNMULS), 0,
                        MVT::f32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (fmul:{ *:[f32] } SPR:{ *:[f32] }:$b, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a)) - Complexity = 6
                    // Dst: (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
/* 73462*/        0, // EndSwitchType
/* 73463*/      /*Scope*/ 37|128,1/*165*/, /*->73630*/
/* 73465*/        OPC_RecordChild1, // #1 = $Dm
/* 73466*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->73487
/* 73469*/          OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 73471*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73474*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73477*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULD), 0,
                        MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                    // Dst: (VMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 73487*/        /*SwitchType*/ 120, MVT::f32,// ->73609
/* 73489*/          OPC_Scope, 18, /*->73509*/ // 2 children in Scope
/* 73491*/            OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 73493*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73496*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73499*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULS), 0,
                          MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                      // Dst: (VMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 73509*/          /*Scope*/ 98, /*->73608*/
/* 73510*/            OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 73512*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 73518*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 73521*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 73529*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 73532*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 73541*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/* 73547*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 73550*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73558*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 73561*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 73570*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73573*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73576*/            OPC_EmitNode1, TARGET_VAL(ARM::VMULfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 73586*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 73589*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/* 73597*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 73600*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 16, 17, 
                      // Src: (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMULfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 73608*/          0, /*End of Scope*/
/* 73609*/        /*SwitchType*/ 18, MVT::f16,// ->73629
/* 73611*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 73613*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73616*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73619*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULH), 0,
                        MVT::f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                    // Dst: (VMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 73629*/        0, // EndSwitchType
/* 73630*/      /*Scope*/ 123, /*->73754*/
/* 73631*/        OPC_MoveChild1,
/* 73632*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 73635*/        OPC_RecordChild0, // #1 = $Vm
/* 73636*/        OPC_Scope, 57, /*->73695*/ // 2 children in Scope
/* 73638*/          OPC_CheckChild0Type, MVT::v2f32,
/* 73640*/          OPC_RecordChild1, // #2 = $lane
/* 73641*/          OPC_MoveChild1,
/* 73642*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73645*/          OPC_MoveParent,
/* 73646*/          OPC_MoveParent,
/* 73647*/          OPC_SwitchType /*2 cases */, 21, MVT::v2f32,// ->73671
/* 73650*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73652*/            OPC_EmitConvertToTarget, 2,
/* 73654*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73657*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73660*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                          MVT::v2f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73671*/          /*SwitchType*/ 21, MVT::v4f32,// ->73694
/* 73673*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73675*/            OPC_EmitConvertToTarget, 2,
/* 73677*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73680*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73683*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                          MVT::v4f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73694*/          0, // EndSwitchType
/* 73695*/        /*Scope*/ 57, /*->73753*/
/* 73696*/          OPC_CheckChild0Type, MVT::v4f16,
/* 73698*/          OPC_RecordChild1, // #2 = $lane
/* 73699*/          OPC_MoveChild1,
/* 73700*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73703*/          OPC_MoveParent,
/* 73704*/          OPC_MoveParent,
/* 73705*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f16,// ->73729
/* 73708*/            OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73710*/            OPC_EmitConvertToTarget, 2,
/* 73712*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73715*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73718*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                          MVT::v4f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73729*/          /*SwitchType*/ 21, MVT::v8f16,// ->73752
/* 73731*/            OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73733*/            OPC_EmitConvertToTarget, 2,
/* 73735*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73738*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73741*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                          MVT::v8f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73752*/          0, // EndSwitchType
/* 73753*/        0, /*End of Scope*/
/* 73754*/      0, /*End of Scope*/
/* 73755*/    /*Scope*/ 125, /*->73881*/
/* 73756*/      OPC_MoveChild0,
/* 73757*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 73760*/      OPC_RecordChild0, // #0 = $Vm
/* 73761*/      OPC_Scope, 58, /*->73821*/ // 2 children in Scope
/* 73763*/        OPC_CheckChild0Type, MVT::v2f32,
/* 73765*/        OPC_RecordChild1, // #1 = $lane
/* 73766*/        OPC_MoveChild1,
/* 73767*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73770*/        OPC_MoveParent,
/* 73771*/        OPC_MoveParent,
/* 73772*/        OPC_RecordChild1, // #2 = $Vn
/* 73773*/        OPC_SwitchType /*2 cases */, 21, MVT::v2f32,// ->73797
/* 73776*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73778*/          OPC_EmitConvertToTarget, 1,
/* 73780*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73783*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73786*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v2f32] } (NEONvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2f32] }:$Vn) - Complexity = 9
                    // Dst: (VMULslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73797*/        /*SwitchType*/ 21, MVT::v4f32,// ->73820
/* 73799*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 73801*/          OPC_EmitConvertToTarget, 1,
/* 73803*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73806*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73809*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$Vn) - Complexity = 9
                    // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73820*/        0, // EndSwitchType
/* 73821*/      /*Scope*/ 58, /*->73880*/
/* 73822*/        OPC_CheckChild0Type, MVT::v4f16,
/* 73824*/        OPC_RecordChild1, // #1 = $lane
/* 73825*/        OPC_MoveChild1,
/* 73826*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73829*/        OPC_MoveParent,
/* 73830*/        OPC_MoveParent,
/* 73831*/        OPC_RecordChild1, // #2 = $Vn
/* 73832*/        OPC_SwitchType /*2 cases */, 21, MVT::v4f16,// ->73856
/* 73835*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73837*/          OPC_EmitConvertToTarget, 1,
/* 73839*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73842*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73845*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                        MVT::v4f16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v4f16] } (NEONvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4f16] }:$Vn) - Complexity = 9
                    // Dst: (VMULslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73856*/        /*SwitchType*/ 21, MVT::v8f16,// ->73879
/* 73858*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73860*/          OPC_EmitConvertToTarget, 1,
/* 73862*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73865*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73868*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                        MVT::v8f16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v8f16] } (NEONvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8f16] }:$Vn) - Complexity = 9
                    // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 73879*/        0, // EndSwitchType
/* 73880*/      0, /*End of Scope*/
/* 73881*/    /*Scope*/ 52, /*->73934*/
/* 73882*/      OPC_RecordChild0, // #0 = $src1
/* 73883*/      OPC_MoveChild1,
/* 73884*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 73887*/      OPC_RecordChild0, // #1 = $src2
/* 73888*/      OPC_CheckChild0Type, MVT::v4f32,
/* 73890*/      OPC_RecordChild1, // #2 = $lane
/* 73891*/      OPC_MoveChild1,
/* 73892*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73895*/      OPC_MoveParent,
/* 73896*/      OPC_MoveParent,
/* 73897*/      OPC_CheckType, MVT::v4f32,
/* 73899*/      OPC_EmitConvertToTarget, 2,
/* 73901*/      OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 73904*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 73912*/      OPC_EmitConvertToTarget, 2,
/* 73914*/      OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 73917*/      OPC_EmitInteger, MVT::i32, 14, 
/* 73920*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73923*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                    MVT::v4f32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 73934*/    /*Scope*/ 52, /*->73987*/
/* 73935*/      OPC_MoveChild0,
/* 73936*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 73939*/      OPC_RecordChild0, // #0 = $src2
/* 73940*/      OPC_CheckChild0Type, MVT::v4f32,
/* 73942*/      OPC_RecordChild1, // #1 = $lane
/* 73943*/      OPC_MoveChild1,
/* 73944*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 73947*/      OPC_MoveParent,
/* 73948*/      OPC_MoveParent,
/* 73949*/      OPC_RecordChild1, // #2 = $src1
/* 73950*/      OPC_CheckType, MVT::v4f32,
/* 73952*/      OPC_EmitConvertToTarget, 1,
/* 73954*/      OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 73957*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 73965*/      OPC_EmitConvertToTarget, 1,
/* 73967*/      OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 73970*/      OPC_EmitInteger, MVT::i32, 14, 
/* 73973*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73976*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                    MVT::v4f32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                // Src: (fmul:{ *:[v4f32] } (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4f32] }:$src1) - Complexity = 9
                // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src2, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 73987*/    /*Scope*/ 91, /*->74079*/
/* 73988*/      OPC_RecordChild0, // #0 = $Rn
/* 73989*/      OPC_MoveChild1,
/* 73990*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 73993*/      OPC_RecordChild0, // #1 = $Rm
/* 73994*/      OPC_CheckChild0Type, MVT::f32,
/* 73996*/      OPC_MoveParent,
/* 73997*/      OPC_SwitchType /*2 cases */, 38, MVT::v2f32,// ->74038
/* 74000*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 74006*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74009*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 74018*/        OPC_EmitInteger, MVT::i32, 0, 
/* 74021*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74024*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74027*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                      MVT::v2f32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                  // Src: (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, (NEONvdup:{ *:[v2f32] } SPR:{ *:[f32] }:$Rm)) - Complexity = 6
                  // Dst: (VMULslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 74038*/      /*SwitchType*/ 38, MVT::v4f32,// ->74078
/* 74040*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 74046*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74049*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 74058*/        OPC_EmitInteger, MVT::i32, 0, 
/* 74061*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74064*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74067*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                  // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, (NEONvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$Rm)) - Complexity = 6
                  // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 74078*/      0, // EndSwitchType
/* 74079*/    /*Scope*/ 91, /*->74171*/
/* 74080*/      OPC_MoveChild0,
/* 74081*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 74084*/      OPC_RecordChild0, // #0 = $Rm
/* 74085*/      OPC_CheckChild0Type, MVT::f32,
/* 74087*/      OPC_MoveParent,
/* 74088*/      OPC_RecordChild1, // #1 = $Rn
/* 74089*/      OPC_SwitchType /*2 cases */, 38, MVT::v2f32,// ->74130
/* 74092*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 74098*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74101*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 74110*/        OPC_EmitInteger, MVT::i32, 0, 
/* 74113*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74116*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74119*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                      MVT::v2f32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                  // Src: (fmul:{ *:[v2f32] } (NEONvdup:{ *:[v2f32] } SPR:{ *:[f32] }:$Rm), DPR:{ *:[v2f32] }:$Rn) - Complexity = 6
                  // Dst: (VMULslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 74130*/      /*SwitchType*/ 38, MVT::v4f32,// ->74170
/* 74132*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 74138*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74141*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 74150*/        OPC_EmitInteger, MVT::i32, 0, 
/* 74153*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74156*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74159*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                  // Src: (fmul:{ *:[v4f32] } (NEONvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$Rm), QPR:{ *:[v4f32] }:$Rn) - Complexity = 6
                  // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 74170*/      0, // EndSwitchType
/* 74171*/    /*Scope*/ 84, /*->74256*/
/* 74172*/      OPC_RecordChild0, // #0 = $Vn
/* 74173*/      OPC_RecordChild1, // #1 = $Vm
/* 74174*/      OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->74195
/* 74177*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 74179*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74182*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74185*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VMULfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 74195*/      /*SwitchType*/ 18, MVT::v4f32,// ->74215
/* 74197*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 74199*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74202*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74205*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VMULfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 74215*/      /*SwitchType*/ 18, MVT::v4f16,// ->74235
/* 74217*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74219*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74222*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74225*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULhd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VMULhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 74235*/      /*SwitchType*/ 18, MVT::v8f16,// ->74255
/* 74237*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74239*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74242*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74245*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULhq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VMULhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 74255*/      0, // EndSwitchType
/* 74256*/    0, /*End of Scope*/
/* 74257*/  /*SwitchOpcode*/ 31|128,2/*287*/, TARGET_VAL(ISD::FABS),// ->74548
/* 74261*/    OPC_Scope, 93, /*->74356*/ // 2 children in Scope
/* 74263*/      OPC_MoveChild0,
/* 74264*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVDRR),
/* 74267*/      OPC_RecordChild0, // #0 = $Rl
/* 74268*/      OPC_RecordChild1, // #1 = $Rh
/* 74269*/      OPC_MoveParent,
/* 74270*/      OPC_Scope, 41, /*->74313*/ // 2 children in Scope
/* 74272*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 74274*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,7/*2147483647*/, 
/* 74281*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74287*/        OPC_EmitNode1, TARGET_VAL(ARM::BFC), 0,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 74297*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74300*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74303*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                      MVT::f64, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (fabs:{ *:[f64] } (arm_fmdrr:{ *:[f64] } GPR:{ *:[i32] }:$Rl, GPR:{ *:[i32] }:$Rh)) - Complexity = 6
                  // Dst: (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$Rl, (BFC:{ *:[i32] } GPR:{ *:[i32] }:$Rh, 2147483647:{ *:[i32] }))
/* 74313*/      /*Scope*/ 41, /*->74355*/
/* 74314*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/* 74316*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,7/*2147483647*/, 
/* 74323*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74329*/        OPC_EmitNode1, TARGET_VAL(ARM::t2BFC), 0,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 74339*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74342*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74345*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                      MVT::f64, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (fabs:{ *:[f64] } (arm_fmdrr:{ *:[f64] } GPR:{ *:[i32] }:$Rl, GPR:{ *:[i32] }:$Rh)) - Complexity = 6
                  // Dst: (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$Rl, (t2BFC:{ *:[i32] } GPR:{ *:[i32] }:$Rh, 2147483647:{ *:[i32] }))
/* 74355*/      0, /*End of Scope*/
/* 74356*/    /*Scope*/ 61|128,1/*189*/, /*->74547*/
/* 74358*/      OPC_RecordChild0, // #0 = $Dm
/* 74359*/      OPC_SwitchType /*6 cases */, 17, MVT::f64,// ->74379
/* 74362*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 74364*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74367*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74370*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSD), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                  // Dst: (VABSD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 74379*/      /*SwitchType*/ 89, MVT::f32,// ->74470
/* 74381*/        OPC_Scope, 17, /*->74400*/ // 2 children in Scope
/* 74383*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2())
/* 74385*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74388*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74391*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSS), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fabs:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                    // Dst: (VABSS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 74400*/        /*Scope*/ 68, /*->74469*/
/* 74401*/          OPC_CheckPatternPredicate, 70, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/* 74403*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 74409*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 74412*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 74420*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74423*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 74432*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74435*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74438*/          OPC_EmitNode1, TARGET_VAL(ARM::VABSfd), 0,
                        MVT::f64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 74447*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 74450*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/* 74458*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 74461*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 10, 11, 
                    // Src: (fabs:{ *:[f32] } SPR:{ *:[f32] }:$a) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VABSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 74469*/        0, /*End of Scope*/
/* 74470*/      /*SwitchType*/ 17, MVT::v2f32,// ->74489
/* 74472*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 74474*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74477*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74480*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VABSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 74489*/      /*SwitchType*/ 17, MVT::v4f32,// ->74508
/* 74491*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 74493*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74496*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74499*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSfq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VABSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 74508*/      /*SwitchType*/ 17, MVT::v4f16,// ->74527
/* 74510*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74512*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74515*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74518*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABShd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VABShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 74527*/      /*SwitchType*/ 17, MVT::v8f16,// ->74546
/* 74529*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74531*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74534*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74537*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABShq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VABShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 74546*/      0, // EndSwitchType
/* 74547*/    0, /*End of Scope*/
/* 74548*/  /*SwitchOpcode*/ 81, TARGET_VAL(ISD::ConstantFP),// ->74632
/* 74551*/    OPC_RecordNode, // #0 = $imm
/* 74552*/    OPC_SwitchType /*3 cases */, 24, MVT::f64,// ->74579
/* 74555*/      OPC_CheckPredicate, 87, // Predicate_vfp_f64imm
/* 74557*/      OPC_CheckPatternPredicate, 106, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP3())
/* 74559*/      OPC_EmitConvertToTarget, 0,
/* 74561*/      OPC_EmitNodeXForm, 21, 1, // anonymous_3783
/* 74564*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74567*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74570*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTD), 0,
                    MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f64] })<<P:Predicate_vfp_f64imm>><<X:anonymous_3783>>:$imm - Complexity = 4
                // Dst: (FCONSTD:{ *:[f64] } (anonymous_3783:{ *:[f64] } (fpimm:{ *:[f64] }):$imm))
/* 74579*/    /*SwitchType*/ 24, MVT::f32,// ->74605
/* 74581*/      OPC_CheckPredicate, 88, // Predicate_vfp_f32imm
/* 74583*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasVFP3())
/* 74585*/      OPC_EmitConvertToTarget, 0,
/* 74587*/      OPC_EmitNodeXForm, 22, 1, // anonymous_3782
/* 74590*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74593*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74596*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTS), 0,
                    MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f32] })<<P:Predicate_vfp_f32imm>><<X:anonymous_3782>>:$imm - Complexity = 4
                // Dst: (FCONSTS:{ *:[f32] } (anonymous_3782:{ *:[f32] } (fpimm:{ *:[f32] }):$imm))
/* 74605*/    /*SwitchType*/ 24, MVT::f16,// ->74631
/* 74607*/      OPC_CheckPredicate, 89, // Predicate_vfp_f16imm
/* 74609*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74611*/      OPC_EmitConvertToTarget, 0,
/* 74613*/      OPC_EmitNodeXForm, 23, 1, // anonymous_3781
/* 74616*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74619*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74622*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTH), 0,
                    MVT::f16, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f16] })<<P:Predicate_vfp_f16imm>><<X:anonymous_3781>>:$imm - Complexity = 4
                // Dst: (FCONSTH:{ *:[f16] } (anonymous_3781:{ *:[f16] } (fpimm:{ *:[f16] }):$imm))
/* 74631*/    0, // EndSwitchType
/* 74632*/  /*SwitchOpcode*/ 64, TARGET_VAL(ISD::FDIV),// ->74699
/* 74635*/    OPC_RecordChild0, // #0 = $Dn
/* 74636*/    OPC_RecordChild1, // #1 = $Dm
/* 74637*/    OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->74658
/* 74640*/      OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 74642*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74645*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74648*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDIVD), 0,
                    MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fdiv:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VDIVD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 74658*/    /*SwitchType*/ 18, MVT::f32,// ->74678
/* 74660*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 74662*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74665*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74668*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDIVS), 0,
                    MVT::f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fdiv:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VDIVS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 74678*/    /*SwitchType*/ 18, MVT::f16,// ->74698
/* 74680*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74682*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74685*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74688*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDIVH), 0,
                    MVT::f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fdiv:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VDIVH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 74698*/    0, // EndSwitchType
/* 74699*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FMAXNUM),// ->74790
/* 74702*/    OPC_RecordChild0, // #0 = $Sn
/* 74703*/    OPC_RecordChild1, // #1 = $Sm
/* 74704*/    OPC_SwitchType /*7 cases */, 10, MVT::f16,// ->74717
/* 74707*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74709*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMH), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VMAXNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 74717*/    /*SwitchType*/ 10, MVT::f32,// ->74729
/* 74719*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 74721*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VMAXNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 74729*/    /*SwitchType*/ 10, MVT::f64,// ->74741
/* 74731*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 74733*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMD), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VMAXNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 74741*/    /*SwitchType*/ 10, MVT::v2f32,// ->74753
/* 74743*/      OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74745*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMNDf), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 74753*/    /*SwitchType*/ 10, MVT::v4f32,// ->74765
/* 74755*/      OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74757*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMNQf), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 74765*/    /*SwitchType*/ 10, MVT::v4f16,// ->74777
/* 74767*/      OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74769*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMNDh), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 74777*/    /*SwitchType*/ 10, MVT::v8f16,// ->74789
/* 74779*/      OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74781*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXNMNQh), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 74789*/    0, // EndSwitchType
/* 74790*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FMINNUM),// ->74881
/* 74793*/    OPC_RecordChild0, // #0 = $Sn
/* 74794*/    OPC_RecordChild1, // #1 = $Sm
/* 74795*/    OPC_SwitchType /*7 cases */, 10, MVT::f16,// ->74808
/* 74798*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74800*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMH), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VMINNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/* 74808*/    /*SwitchType*/ 10, MVT::f32,// ->74820
/* 74810*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 74812*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VMINNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/* 74820*/    /*SwitchType*/ 10, MVT::f64,// ->74832
/* 74822*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 74824*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMD), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VMINNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/* 74832*/    /*SwitchType*/ 10, MVT::v2f32,// ->74844
/* 74834*/      OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74836*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMNDf), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMINNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 74844*/    /*SwitchType*/ 10, MVT::v4f32,// ->74856
/* 74846*/      OPC_CheckPatternPredicate, 39, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74848*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMNQf), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMINNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 74856*/    /*SwitchType*/ 10, MVT::v4f16,// ->74868
/* 74858*/      OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74860*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMNDh), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMINNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 74868*/    /*SwitchType*/ 10, MVT::v8f16,// ->74880
/* 74870*/      OPC_CheckPatternPredicate, 40, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 74872*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINNMNQh), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMINNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 74880*/    0, // EndSwitchType
/* 74881*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FP_EXTEND),// ->74972
/* 74884*/    OPC_RecordChild0, // #0 = $Sm
/* 74885*/    OPC_SwitchType /*2 cases */, 53, MVT::f64,// ->74941
/* 74888*/      OPC_Scope, 19, /*->74909*/ // 2 children in Scope
/* 74890*/        OPC_CheckChild0Type, MVT::f32,
/* 74892*/        OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 74894*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74897*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74900*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTDS), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fpextend:{ *:[f64] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                  // Dst: (VCVTDS:{ *:[f64] } SPR:{ *:[f32] }:$Sm)
/* 74909*/      /*Scope*/ 30, /*->74940*/
/* 74910*/        OPC_CheckChild0Type, MVT::f16,
/* 74912*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74914*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 74917*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 74925*/        OPC_EmitInteger, MVT::i32, 14, 
/* 74928*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74931*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTBHD), 0,
                      MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (fpextend:{ *:[f64] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                  // Dst: (VCVTBHD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
/* 74940*/      0, /*End of Scope*/
/* 74941*/    /*SwitchType*/ 28, MVT::f32,// ->74971
/* 74943*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 74945*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 74948*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 74956*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74959*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74962*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTBHS), 0,
                    MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpextend:{ *:[f32] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VCVTBHS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
/* 74971*/    0, // EndSwitchType
/* 74972*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FP_ROUND),// ->75063
/* 74975*/    OPC_RecordChild0, // #0 = $Dm
/* 74976*/    OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->74996
/* 74979*/      OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 74981*/      OPC_EmitInteger, MVT::i32, 14, 
/* 74984*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74987*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTSD), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fpround:{ *:[f32] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VCVTSD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
/* 74996*/    /*SwitchType*/ 64, MVT::f16,// ->75062
/* 74998*/      OPC_Scope, 30, /*->75030*/ // 2 children in Scope
/* 75000*/        OPC_CheckChild0Type, MVT::f32,
/* 75002*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 75004*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75007*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75010*/        OPC_EmitNode1, TARGET_VAL(ARM::VCVTBSH), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 75019*/        OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/* 75022*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f16, 2/*#Ops*/, 3, 4, 
                  // Src: (fpround:{ *:[f16] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBSH:{ *:[f32] } SPR:{ *:[f32] }:$Sm), HPR:{ *:[i32] })
/* 75030*/      /*Scope*/ 30, /*->75061*/
/* 75031*/        OPC_CheckChild0Type, MVT::f64,
/* 75033*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 75035*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75038*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75041*/        OPC_EmitNode1, TARGET_VAL(ARM::VCVTBDH), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 75050*/        OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/* 75053*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f16, 2/*#Ops*/, 3, 4, 
                  // Src: (fpround:{ *:[f16] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBDH:{ *:[f32] } DPR:{ *:[f64] }:$Dm), HPR:{ *:[i32] })
/* 75061*/      0, /*End of Scope*/
/* 75062*/    0, // EndSwitchType
/* 75063*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::FTRUNC),// ->75107
/* 75066*/    OPC_RecordChild0, // #0 = $Sm
/* 75067*/    OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->75087
/* 75070*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75072*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75075*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75078*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ftrunc:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTZS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75087*/    /*SwitchType*/ 17, MVT::f64,// ->75106
/* 75089*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75091*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75094*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75097*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZD), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ftrunc:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTZD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75106*/    0, // EndSwitchType
/* 75107*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::FNEARBYINT),// ->75151
/* 75110*/    OPC_RecordChild0, // #0 = $Sm
/* 75111*/    OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->75131
/* 75114*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75116*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75119*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75122*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTRS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fnearbyint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75131*/    /*SwitchType*/ 17, MVT::f64,// ->75150
/* 75133*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75135*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75138*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75141*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTRD), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fnearbyint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTRD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75150*/    0, // EndSwitchType
/* 75151*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::FRINT),// ->75195
/* 75154*/    OPC_RecordChild0, // #0 = $Sm
/* 75155*/    OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->75175
/* 75158*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75160*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75163*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75166*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (frint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTXS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75175*/    /*SwitchType*/ 17, MVT::f64,// ->75194
/* 75177*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75179*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75182*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75185*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXD), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (frint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTXD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75194*/    0, // EndSwitchType
/* 75195*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::FROUND),// ->75223
/* 75198*/    OPC_RecordChild0, // #0 = $Sm
/* 75199*/    OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->75211
/* 75202*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75204*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTAS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTAS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75211*/    /*SwitchType*/ 9, MVT::f64,// ->75222
/* 75213*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75215*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTAD), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTAD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75222*/    0, // EndSwitchType
/* 75223*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::FCEIL),// ->75251
/* 75226*/    OPC_RecordChild0, // #0 = $Sm
/* 75227*/    OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->75239
/* 75230*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75232*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTPS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75239*/    /*SwitchType*/ 9, MVT::f64,// ->75250
/* 75241*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75243*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPD), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTPD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75250*/    0, // EndSwitchType
/* 75251*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::FFLOOR),// ->75279
/* 75254*/    OPC_RecordChild0, // #0 = $Sm
/* 75255*/    OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->75267
/* 75258*/      OPC_CheckPatternPredicate, 37, // (Subtarget->hasFPARMv8())
/* 75260*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VRINTMS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75267*/    /*SwitchType*/ 9, MVT::f64,// ->75278
/* 75269*/      OPC_CheckPatternPredicate, 38, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8())
/* 75271*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMD), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VRINTMD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75278*/    0, // EndSwitchType
/* 75279*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::FSQRT),// ->75323
/* 75282*/    OPC_RecordChild0, // #0 = $Dm
/* 75283*/    OPC_SwitchType /*2 cases */, 17, MVT::f64,// ->75303
/* 75286*/      OPC_CheckPatternPredicate, 15, // (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2())
/* 75288*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75291*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75294*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSQRTD), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fsqrt:{ *:[f64] } DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VSQRTD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 75303*/    /*SwitchType*/ 17, MVT::f32,// ->75322
/* 75305*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 75307*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75310*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75313*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSQRTS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fsqrt:{ *:[f32] } SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VSQRTS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 75322*/    0, // EndSwitchType
/* 75323*/  /*SwitchOpcode*/ 51, TARGET_VAL(ARMISD::VMOVSR),// ->75377
/* 75326*/    OPC_RecordChild0, // #0 = $Rt
/* 75327*/    OPC_Scope, 17, /*->75346*/ // 2 children in Scope
/* 75329*/      OPC_CheckPatternPredicate, 79, // (Subtarget->hasVFP2()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
/* 75331*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75334*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75337*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVSR), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_vmovsr:{ *:[f32] } GPR:{ *:[i32] }:$Rt) - Complexity = 3
                // Dst: (VMOVSR:{ *:[f32] } GPR:{ *:[i32] }:$Rt)
/* 75346*/    /*Scope*/ 29, /*->75376*/
/* 75347*/      OPC_CheckPatternPredicate, 80, // (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON())
/* 75349*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75352*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75355*/      OPC_EmitNode1, TARGET_VAL(ARM::VMOVDRR), 0,
                    MVT::f64, 4/*#Ops*/, 0, 0, 1, 2,  // Results = #3
/* 75365*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75368*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 3, 4, 
                // Src: (arm_vmovsr:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$a), ssub_0:{ *:[i32] })
/* 75376*/    0, /*End of Scope*/
/* 75377*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVDRR),// ->75400
/* 75380*/    OPC_RecordChild0, // #0 = $Rt
/* 75381*/    OPC_RecordChild1, // #1 = $Rt2
/* 75382*/    OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 75384*/    OPC_EmitInteger, MVT::i32, 14, 
/* 75387*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75390*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                  MVT::f64, 4/*#Ops*/, 0, 1, 2, 3, 
              // Src: (arm_fmdrr:{ *:[f64] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2) - Complexity = 3
              // Dst: (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2)
/* 75400*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVhr),// ->75423
/* 75403*/    OPC_RecordChild0, // #0 = $Rt
/* 75404*/    OPC_CheckType, MVT::f16,
/* 75406*/    OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 75408*/    OPC_EmitInteger, MVT::i32, 14, 
/* 75411*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75414*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVHR), 0,
                  MVT::f16, 3/*#Ops*/, 0, 1, 2, 
              // Src: (arm_vmovhr:{ *:[f16] } GPR:{ *:[i32] }:$Rt) - Complexity = 3
              // Dst: (VMOVHR:{ *:[f16] } GPR:{ *:[i32] }:$Rt)
/* 75423*/  /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FP16_TO_FP),// ->75489
/* 75426*/    OPC_RecordChild0, // #0 = $a
/* 75427*/    OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->75458
/* 75430*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFP16())
/* 75432*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 75435*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 75443*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75446*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75449*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTBHS), 0,
                    MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (f16_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) - Complexity = 3
                // Dst: (VCVTBHS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 75458*/    /*SwitchType*/ 28, MVT::f64,// ->75488
/* 75460*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFP16())
/* 75462*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 75465*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 75473*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75476*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75479*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTBHD), 0,
                    MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (f16_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) - Complexity = 3
                // Dst: (VCVTBHD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
/* 75488*/    0, // EndSwitchType
/* 75489*/  /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(ISD::FMAXNAN),// ->75777
/* 75493*/    OPC_RecordChild0, // #0 = $a
/* 75494*/    OPC_RecordChild1, // #1 = $b
/* 75495*/    OPC_SwitchType /*6 cases */, 98, MVT::f16,// ->75596
/* 75498*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 75500*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #2
/* 75506*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75509*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 2, 3,  // Results = #4
/* 75517*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75520*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 75529*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #7
/* 75535*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75538*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 7, 8,  // Results = #9
/* 75546*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75549*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 75558*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75561*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75564*/      OPC_EmitNode1, TARGET_VAL(ARM::VMAXhd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 75574*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75577*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 14, 15,  // Results = #16
/* 75585*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75588*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f16, 2/*#Ops*/, 16, 17, 
                // Src: (fmaxnan:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMAXhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 75596*/    /*SwitchType*/ 98, MVT::f32,// ->75696
/* 75598*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75600*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 75606*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75609*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 75617*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75620*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 75629*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #7
/* 75635*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75638*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 75646*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75649*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 75658*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75661*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75664*/      OPC_EmitNode1, TARGET_VAL(ARM::VMAXfd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 75674*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75677*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/* 75685*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75688*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 16, 17, 
                // Src: (fmaxnan:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMAXfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 75696*/    /*SwitchType*/ 18, MVT::v2f32,// ->75716
/* 75698*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75700*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75703*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75706*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXfd), 0,
                    MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaxnan:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 75716*/    /*SwitchType*/ 18, MVT::v4f32,// ->75736
/* 75718*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75720*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75723*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75726*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXfq), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaxnan:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 75736*/    /*SwitchType*/ 18, MVT::v4f16,// ->75756
/* 75738*/      OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75740*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75743*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75746*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXhd), 0,
                    MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaxnan:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 75756*/    /*SwitchType*/ 18, MVT::v8f16,// ->75776
/* 75758*/      OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75760*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75763*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75766*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXhq), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaxnan:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 75776*/    0, // EndSwitchType
/* 75777*/  /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(ISD::FMINNAN),// ->76065
/* 75781*/    OPC_RecordChild0, // #0 = $a
/* 75782*/    OPC_RecordChild1, // #1 = $b
/* 75783*/    OPC_SwitchType /*6 cases */, 98, MVT::f16,// ->75884
/* 75786*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasFullFP16())
/* 75788*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #2
/* 75794*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75797*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 2, 3,  // Results = #4
/* 75805*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75808*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 75817*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #7
/* 75823*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75826*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 7, 8,  // Results = #9
/* 75834*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75837*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 75846*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75849*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75852*/      OPC_EmitNode1, TARGET_VAL(ARM::VMINhd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 75862*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75865*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 14, 15,  // Results = #16
/* 75873*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75876*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f16, 2/*#Ops*/, 16, 17, 
                // Src: (fminnan:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMINhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 75884*/    /*SwitchType*/ 98, MVT::f32,// ->75984
/* 75886*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75888*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #2
/* 75894*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75897*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 75905*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75908*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 75917*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #7
/* 75923*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75926*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 75934*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75937*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 75946*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75949*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75952*/      OPC_EmitNode1, TARGET_VAL(ARM::VMINfd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/* 75962*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 75965*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/* 75973*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 75976*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 16, 17, 
                // Src: (fminnan:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMINfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
/* 75984*/    /*SwitchType*/ 18, MVT::v2f32,// ->76004
/* 75986*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75988*/      OPC_EmitInteger, MVT::i32, 14, 
/* 75991*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75994*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINfd), 0,
                    MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminnan:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMINfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 76004*/    /*SwitchType*/ 18, MVT::v4f32,// ->76024
/* 76006*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76008*/      OPC_EmitInteger, MVT::i32, 14, 
/* 76011*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76014*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINfq), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminnan:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMINfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 76024*/    /*SwitchType*/ 18, MVT::v4f16,// ->76044
/* 76026*/      OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76028*/      OPC_EmitInteger, MVT::i32, 14, 
/* 76031*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76034*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINhd), 0,
                    MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminnan:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMINhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 76044*/    /*SwitchType*/ 18, MVT::v8f16,// ->76064
/* 76046*/      OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76048*/      OPC_EmitInteger, MVT::i32, 14, 
/* 76051*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76054*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINhq), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminnan:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMINhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 76064*/    0, // EndSwitchType
/* 76065*/  /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VMOVIMM),// ->76263
/* 76069*/    OPC_Scope, 29, /*->76100*/ // 2 children in Scope
/* 76071*/      OPC_MoveChild0,
/* 76072*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 76075*/      OPC_MoveParent,
/* 76076*/      OPC_CheckPredicate, 79, // Predicate_NEONimmAllZerosV
/* 76078*/      OPC_SwitchType /*2 cases */, 8, MVT::v2i32,// ->76089
/* 76081*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasZeroCycleZeroing())
/* 76083*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVD0), 0,
                      MVT::v2i32, 0/*#Ops*/, 
                  // Src: (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>> - Complexity = 57
                  // Dst: (VMOVD0:{ *:[v2i32] })
/* 76089*/      /*SwitchType*/ 8, MVT::v4i32,// ->76099
/* 76091*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasZeroCycleZeroing())
/* 76093*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVQ0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>> - Complexity = 57
                  // Dst: (VMOVQ0:{ *:[v4i32] })
/* 76099*/      0, // EndSwitchType
/* 76100*/    /*Scope*/ 32|128,1/*160*/, /*->76262*/
/* 76102*/      OPC_RecordChild0, // #0 = $SIMM
/* 76103*/      OPC_MoveChild0,
/* 76104*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 76107*/      OPC_MoveParent,
/* 76108*/      OPC_SwitchType /*8 cases */, 17, MVT::v8i8,// ->76128
/* 76111*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76113*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76116*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76119*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv8i8:{ *:[v8i8] } (timm:{ *:[i32] }):$SIMM)
/* 76128*/      /*SwitchType*/ 17, MVT::v16i8,// ->76147
/* 76130*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76132*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76135*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76138*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv16i8:{ *:[v16i8] } (timm:{ *:[i32] }):$SIMM)
/* 76147*/      /*SwitchType*/ 17, MVT::v4i16,// ->76166
/* 76149*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76151*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76154*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76157*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM)
/* 76166*/      /*SwitchType*/ 17, MVT::v8i16,// ->76185
/* 76168*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76170*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76173*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76176*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM)
/* 76185*/      /*SwitchType*/ 17, MVT::v2i32,// ->76204
/* 76187*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76189*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76192*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76195*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM)
/* 76204*/      /*SwitchType*/ 17, MVT::v4i32,// ->76223
/* 76206*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76208*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76211*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76214*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM)
/* 76223*/      /*SwitchType*/ 17, MVT::v1i64,// ->76242
/* 76225*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76227*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76230*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv1i64), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v1i64] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv1i64:{ *:[v1i64] } (timm:{ *:[i32] }):$SIMM)
/* 76242*/      /*SwitchType*/ 17, MVT::v2i64,// ->76261
/* 76244*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76246*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76249*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76252*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvmovImm:{ *:[v2i64] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv2i64:{ *:[v2i64] } (timm:{ *:[i32] }):$SIMM)
/* 76261*/      0, // EndSwitchType
/* 76262*/    0, /*End of Scope*/
/* 76263*/  /*SwitchOpcode*/ 40|128,5/*680*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->76947
/* 76267*/    OPC_RecordChild0, // #0 = $src
/* 76268*/    OPC_Scope, 126|128,1/*254*/, /*->76525*/ // 4 children in Scope
/* 76271*/      OPC_MoveChild1,
/* 76272*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76275*/      OPC_RecordMemRef,
/* 76276*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 76277*/      OPC_CheckFoldableChainNode,
/* 76278*/      OPC_RecordChild1, // #2 = $Rn
/* 76279*/      OPC_CheckChild1Type, MVT::i32,
/* 76281*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 76283*/      OPC_CheckType, MVT::i32,
/* 76285*/      OPC_Scope, 80, /*->76367*/ // 4 children in Scope
/* 76287*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 76289*/        OPC_Scope, 37, /*->76328*/ // 2 children in Scope
/* 76291*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 76293*/          OPC_MoveParent,
/* 76294*/          OPC_RecordChild2, // #3 = $lane
/* 76295*/          OPC_MoveChild2,
/* 76296*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76299*/          OPC_MoveParent,
/* 76300*/          OPC_CheckType, MVT::v8i8,
/* 76302*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76304*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/* 76307*/          OPC_EmitMergeInputChains1_1,
/* 76308*/          OPC_EmitConvertToTarget, 3,
/* 76310*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76313*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76316*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNd8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i8, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src, (ld:{ *:[i32] } addrmode6:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNd8:{ *:[v8i8] } addrmode6:{ *:[i32] }:$Rn, DPR:{ *:[v8i8] }:$src, (imm:{ *:[i32] }):$lane)
/* 76328*/        /*Scope*/ 37, /*->76366*/
/* 76329*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 76331*/          OPC_MoveParent,
/* 76332*/          OPC_RecordChild2, // #3 = $lane
/* 76333*/          OPC_MoveChild2,
/* 76334*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76337*/          OPC_MoveParent,
/* 76338*/          OPC_CheckType, MVT::v4i16,
/* 76340*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76342*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/* 76345*/          OPC_EmitMergeInputChains1_1,
/* 76346*/          OPC_EmitConvertToTarget, 3,
/* 76348*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76351*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76354*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i16, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src, (ld:{ *:[i32] } addrmode6:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNd16:{ *:[v4i16] } addrmode6:{ *:[i32] }:$Rn, DPR:{ *:[v4i16] }:$src, (imm:{ *:[i32] }):$lane)
/* 76366*/        0, /*End of Scope*/
/* 76367*/      /*Scope*/ 37, /*->76405*/
/* 76368*/        OPC_CheckPredicate, 57, // Predicate_load
/* 76370*/        OPC_MoveParent,
/* 76371*/        OPC_RecordChild2, // #3 = $lane
/* 76372*/        OPC_MoveChild2,
/* 76373*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76376*/        OPC_MoveParent,
/* 76377*/        OPC_CheckType, MVT::v2i32,
/* 76379*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76381*/        OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/* 76384*/        OPC_EmitMergeInputChains1_1,
/* 76385*/        OPC_EmitConvertToTarget, 3,
/* 76387*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76390*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76393*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i32, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                  // Src: (vector_insert:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src, (ld:{ *:[i32] } addrmode6oneL32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                  // Dst: (VLD1LNd32:{ *:[v2i32] } addrmode6oneL32:{ *:[i32] }:$Rn, DPR:{ *:[v2i32] }:$src, (imm:{ *:[i32] }):$lane)
/* 76405*/      /*Scope*/ 80, /*->76486*/
/* 76406*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 76408*/        OPC_Scope, 37, /*->76447*/ // 2 children in Scope
/* 76410*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 76412*/          OPC_MoveParent,
/* 76413*/          OPC_RecordChild2, // #3 = $lane
/* 76414*/          OPC_MoveChild2,
/* 76415*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76418*/          OPC_MoveParent,
/* 76419*/          OPC_CheckType, MVT::v16i8,
/* 76421*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76423*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #4 #5
/* 76426*/          OPC_EmitMergeInputChains1_1,
/* 76427*/          OPC_EmitConvertToTarget, 3,
/* 76429*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76432*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNq8Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, (ld:{ *:[i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNq8Pseudo:{ *:[v16i8] } addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane)
/* 76447*/        /*Scope*/ 37, /*->76485*/
/* 76448*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 76450*/          OPC_MoveParent,
/* 76451*/          OPC_RecordChild2, // #3 = $lane
/* 76452*/          OPC_MoveChild2,
/* 76453*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76456*/          OPC_MoveParent,
/* 76457*/          OPC_CheckType, MVT::v8i16,
/* 76459*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76461*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #4 #5
/* 76464*/          OPC_EmitMergeInputChains1_1,
/* 76465*/          OPC_EmitConvertToTarget, 3,
/* 76467*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76470*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76473*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNq16Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src, (ld:{ *:[i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNq16Pseudo:{ *:[v8i16] } addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane)
/* 76485*/        0, /*End of Scope*/
/* 76486*/      /*Scope*/ 37, /*->76524*/
/* 76487*/        OPC_CheckPredicate, 57, // Predicate_load
/* 76489*/        OPC_MoveParent,
/* 76490*/        OPC_RecordChild2, // #3 = $lane
/* 76491*/        OPC_MoveChild2,
/* 76492*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76495*/        OPC_MoveParent,
/* 76496*/        OPC_CheckType, MVT::v4i32,
/* 76498*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76500*/        OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #4 #5
/* 76503*/        OPC_EmitMergeInputChains1_1,
/* 76504*/        OPC_EmitConvertToTarget, 3,
/* 76506*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76512*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNq32Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                  // Src: (vector_insert:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, (ld:{ *:[i32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                  // Dst: (VLD1LNq32Pseudo:{ *:[v4i32] } addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane)
/* 76524*/      0, /*End of Scope*/
/* 76525*/    /*Scope*/ 5|128,2/*261*/, /*->76788*/
/* 76527*/      OPC_RecordChild1, // #1 = $R
/* 76528*/      OPC_Scope, 56, /*->76586*/ // 4 children in Scope
/* 76530*/        OPC_CheckChild1Type, MVT::i32,
/* 76532*/        OPC_RecordChild2, // #2 = $lane
/* 76533*/        OPC_MoveChild2,
/* 76534*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76537*/        OPC_MoveParent,
/* 76538*/        OPC_SwitchType /*2 cases */, 21, MVT::v8i8,// ->76562
/* 76541*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76543*/          OPC_EmitConvertToTarget, 2,
/* 76545*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76548*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76551*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (vector_insert:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (VSETLNi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane)
/* 76562*/        /*SwitchType*/ 21, MVT::v4i16,// ->76585
/* 76564*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76566*/          OPC_EmitConvertToTarget, 2,
/* 76568*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76571*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76574*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (vector_insert:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (VSETLNi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane)
/* 76585*/        0, // EndSwitchType
/* 76586*/      /*Scope*/ 29, /*->76616*/
/* 76587*/        OPC_RecordChild2, // #2 = $lane
/* 76588*/        OPC_MoveChild2,
/* 76589*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76592*/        OPC_MoveParent,
/* 76593*/        OPC_CheckType, MVT::v2i32,
/* 76595*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasVFP2())
/* 76597*/        OPC_EmitConvertToTarget, 2,
/* 76599*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76602*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76605*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi32), 0,
                      MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (insertelt:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (VSETLNi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane)
/* 76616*/      /*Scope*/ 112, /*->76729*/
/* 76617*/        OPC_CheckChild1Type, MVT::i32,
/* 76619*/        OPC_RecordChild2, // #2 = $lane
/* 76620*/        OPC_MoveChild2,
/* 76621*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76624*/        OPC_MoveParent,
/* 76625*/        OPC_SwitchType /*2 cases */, 49, MVT::v16i8,// ->76677
/* 76628*/          OPC_EmitConvertToTarget, 2,
/* 76630*/          OPC_EmitNodeXForm, 14, 3, // DSubReg_i8_reg
/* 76633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 4,  // Results = #5
/* 76641*/          OPC_EmitConvertToTarget, 2,
/* 76643*/          OPC_EmitNodeXForm, 15, 6, // SubReg_i8_lane
/* 76646*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76649*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76652*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi8), 0,
                        MVT::v8i8, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/* 76663*/          OPC_EmitConvertToTarget, 2,
/* 76665*/          OPC_EmitNodeXForm, 14, 11, // DSubReg_i8_reg
/* 76668*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 10, 12, 
                    // Src: (vector_insert:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, GPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (VSETLNi8:{ *:[v8i8] } (EXTRACT_SUBREG:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src1, (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), GPR:{ *:[i32] }:$src2, (SubReg_i8_lane:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/* 76677*/        /*SwitchType*/ 49, MVT::v8i16,// ->76728
/* 76679*/          OPC_EmitConvertToTarget, 2,
/* 76681*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 76684*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 76692*/          OPC_EmitConvertToTarget, 2,
/* 76694*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 76697*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76700*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76703*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi16), 0,
                        MVT::v4i16, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/* 76714*/          OPC_EmitConvertToTarget, 2,
/* 76716*/          OPC_EmitNodeXForm, 5, 11, // DSubReg_i16_reg
/* 76719*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 10, 12, 
                    // Src: (vector_insert:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, GPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (VSETLNi16:{ *:[v4i16] } (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src1, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), GPR:{ *:[i32] }:$src2, (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/* 76728*/        0, // EndSwitchType
/* 76729*/      /*Scope*/ 57, /*->76787*/
/* 76730*/        OPC_RecordChild2, // #2 = $lane
/* 76731*/        OPC_MoveChild2,
/* 76732*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76735*/        OPC_MoveParent,
/* 76736*/        OPC_CheckType, MVT::v4i32,
/* 76738*/        OPC_EmitConvertToTarget, 2,
/* 76740*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 76743*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 76751*/        OPC_EmitConvertToTarget, 2,
/* 76753*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 76756*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76759*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76762*/        OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi32), 0,
                      MVT::v2i32, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/* 76773*/        OPC_EmitConvertToTarget, 2,
/* 76775*/        OPC_EmitNodeXForm, 7, 11, // DSubReg_i32_reg
/* 76778*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 10, 12, 
                  // Src: (insertelt:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, GPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (INSERT_SUBREG:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (VSETLNi32:{ *:[v2i32] } (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src1, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), GPR:{ *:[i32] }:$src2, (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/* 76787*/      0, /*End of Scope*/
/* 76788*/    /*Scope*/ 77, /*->76866*/
/* 76789*/      OPC_MoveChild1,
/* 76790*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76793*/      OPC_RecordMemRef,
/* 76794*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 76795*/      OPC_CheckFoldableChainNode,
/* 76796*/      OPC_RecordChild1, // #2 = $addr
/* 76797*/      OPC_CheckChild1Type, MVT::i32,
/* 76799*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 76801*/      OPC_CheckPredicate, 57, // Predicate_load
/* 76803*/      OPC_CheckType, MVT::f32,
/* 76805*/      OPC_MoveParent,
/* 76806*/      OPC_RecordChild2, // #3 = $lane
/* 76807*/      OPC_MoveChild2,
/* 76808*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76811*/      OPC_MoveParent,
/* 76812*/      OPC_SwitchType /*2 cases */, 24, MVT::v2f32,// ->76839
/* 76815*/        OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #4 #5
/* 76818*/        OPC_EmitMergeInputChains1_1,
/* 76819*/        OPC_EmitConvertToTarget, 3,
/* 76821*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76824*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76827*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f32, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                  // Src: (vector_insert:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src, (ld:{ *:[f32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                  // Dst: (VLD1LNd32:{ *:[v2f32] } addrmode6:{ *:[i32] }:$addr, DPR:{ *:[v2f32] }:$src, (imm:{ *:[i32] }):$lane)
/* 76839*/      /*SwitchType*/ 24, MVT::v4f32,// ->76865
/* 76841*/        OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrMode6:$addr #4 #5
/* 76844*/        OPC_EmitMergeInputChains1_1,
/* 76845*/        OPC_EmitConvertToTarget, 3,
/* 76847*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76850*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76853*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNq32Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                  // Src: (vector_insert:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src, (ld:{ *:[f32] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                  // Dst: (VLD1LNq32Pseudo:{ *:[v4f32] } addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$lane)
/* 76865*/      0, // EndSwitchType
/* 76866*/    /*Scope*/ 79, /*->76946*/
/* 76867*/      OPC_RecordChild1, // #1 = $src2
/* 76868*/      OPC_RecordChild2, // #2 = $src3
/* 76869*/      OPC_MoveChild2,
/* 76870*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76873*/      OPC_MoveParent,
/* 76874*/      OPC_SwitchType /*3 cases */, 14, MVT::v2f64,// ->76891
/* 76877*/        OPC_EmitConvertToTarget, 2,
/* 76879*/        OPC_EmitNodeXForm, 17, 3, // DSubReg_f64_reg
/* 76882*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (insertelt:{ *:[v2f64] } QPR:{ *:[v2f64] }:$src1, DPR:{ *:[f64] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (INSERT_SUBREG:{ *:[v2f64] } QPR:{ *:[v2f64] }:$src1, DPR:{ *:[f64] }:$src2, (DSubReg_f64_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src3))
/* 76891*/      /*SwitchType*/ 25, MVT::v2f32,// ->76918
/* 76893*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/* 76896*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76904*/        OPC_EmitConvertToTarget, 2,
/* 76906*/        OPC_EmitNodeXForm, 16, 5, // SSubReg_f32_reg
/* 76909*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 4, 1, 6, 
                  // Src: (insertelt:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, SPR:{ *:[f32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$src2, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src3))
/* 76918*/      /*SwitchType*/ 25, MVT::v4f32,// ->76945
/* 76920*/        OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/* 76923*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76931*/        OPC_EmitConvertToTarget, 2,
/* 76933*/        OPC_EmitNodeXForm, 16, 5, // SSubReg_f32_reg
/* 76936*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f32, 3/*#Ops*/, 4, 1, 6, 
                  // Src: (insertelt:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, SPR:{ *:[f32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (INSERT_SUBREG:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$src2, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$src3))
/* 76945*/      0, // EndSwitchType
/* 76946*/    0, /*End of Scope*/
/* 76947*/  /*SwitchOpcode*/ 47|128,4/*559*/, TARGET_VAL(ARMISD::VDUP),// ->77510
/* 76951*/    OPC_Scope, 65|128,1/*193*/, /*->77147*/ // 4 children in Scope
/* 76954*/      OPC_MoveChild0,
/* 76955*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76958*/      OPC_RecordMemRef,
/* 76959*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 76960*/      OPC_RecordChild1, // #1 = $Rn
/* 76961*/      OPC_CheckChild1Type, MVT::i32,
/* 76963*/      OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 76965*/      OPC_CheckType, MVT::i32,
/* 76967*/      OPC_Scope, 60, /*->77029*/ // 4 children in Scope
/* 76969*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 76971*/        OPC_Scope, 27, /*->77000*/ // 2 children in Scope
/* 76973*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 76975*/          OPC_MoveParent,
/* 76976*/          OPC_CheckType, MVT::v8i8,
/* 76978*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76980*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 76983*/          OPC_EmitMergeInputChains1_0,
/* 76984*/          OPC_EmitInteger, MVT::i32, 14, 
/* 76987*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76990*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i8, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v8i8] } (ld:{ *:[i32] } addrmode6dupalignNone:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                    // Dst: (VLD1DUPd8:{ *:[v8i8] } addrmode6dupalignNone:{ *:[i32] }:$Rn)
/* 77000*/        /*Scope*/ 27, /*->77028*/
/* 77001*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 77003*/          OPC_MoveParent,
/* 77004*/          OPC_CheckType, MVT::v4i16,
/* 77006*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77008*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 77011*/          OPC_EmitMergeInputChains1_0,
/* 77012*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77015*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77018*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v4i16] } (ld:{ *:[i32] } addrmode6dupalign16:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                    // Dst: (VLD1DUPd16:{ *:[v4i16] } addrmode6dupalign16:{ *:[i32] }:$Rn)
/* 77028*/        0, /*End of Scope*/
/* 77029*/      /*Scope*/ 27, /*->77057*/
/* 77030*/        OPC_CheckPredicate, 57, // Predicate_load
/* 77032*/        OPC_MoveParent,
/* 77033*/        OPC_CheckType, MVT::v2i32,
/* 77035*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77037*/        OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 77040*/        OPC_EmitMergeInputChains1_0,
/* 77041*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77044*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77047*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (NEONvdup:{ *:[v2i32] } (ld:{ *:[i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                  // Dst: (VLD1DUPd32:{ *:[v2i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)
/* 77057*/      /*Scope*/ 60, /*->77118*/
/* 77058*/        OPC_CheckPredicate, 31, // Predicate_extload
/* 77060*/        OPC_Scope, 27, /*->77089*/ // 2 children in Scope
/* 77062*/          OPC_CheckPredicate, 59, // Predicate_extloadi8
/* 77064*/          OPC_MoveParent,
/* 77065*/          OPC_CheckType, MVT::v16i8,
/* 77067*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77069*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 77072*/          OPC_EmitMergeInputChains1_0,
/* 77073*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77076*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77079*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v16i8] } (ld:{ *:[i32] } addrmode6dupalignNone:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                    // Dst: (VLD1DUPq8:{ *:[v16i8] } addrmode6dupalignNone:{ *:[i32] }:$Rn)
/* 77089*/        /*Scope*/ 27, /*->77117*/
/* 77090*/          OPC_CheckPredicate, 32, // Predicate_extloadi16
/* 77092*/          OPC_MoveParent,
/* 77093*/          OPC_CheckType, MVT::v8i16,
/* 77095*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77097*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 77100*/          OPC_EmitMergeInputChains1_0,
/* 77101*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77104*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77107*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v8i16] } (ld:{ *:[i32] } addrmode6dupalign16:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                    // Dst: (VLD1DUPq16:{ *:[v8i16] } addrmode6dupalign16:{ *:[i32] }:$Rn)
/* 77117*/        0, /*End of Scope*/
/* 77118*/      /*Scope*/ 27, /*->77146*/
/* 77119*/        OPC_CheckPredicate, 57, // Predicate_load
/* 77121*/        OPC_MoveParent,
/* 77122*/        OPC_CheckType, MVT::v4i32,
/* 77124*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77126*/        OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/* 77129*/        OPC_EmitMergeInputChains1_0,
/* 77130*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77133*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77136*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (NEONvdup:{ *:[v4i32] } (ld:{ *:[i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                  // Dst: (VLD1DUPq32:{ *:[v4i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)
/* 77146*/      0, /*End of Scope*/
/* 77147*/    /*Scope*/ 13|128,1/*141*/, /*->77290*/
/* 77149*/      OPC_RecordChild0, // #0 = $R
/* 77150*/      OPC_CheckChild0Type, MVT::i32,
/* 77152*/      OPC_SwitchType /*6 cases */, 17, MVT::v8i8,// ->77172
/* 77155*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77157*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77160*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77163*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP8d), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvdup:{ *:[v8i8] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP8d:{ *:[v8i8] } GPR:{ *:[i32] }:$R)
/* 77172*/      /*SwitchType*/ 17, MVT::v4i16,// ->77191
/* 77174*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77176*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77179*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77182*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP16d), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvdup:{ *:[v4i16] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP16d:{ *:[v4i16] } GPR:{ *:[i32] }:$R)
/* 77191*/      /*SwitchType*/ 39, MVT::v2i32,// ->77232
/* 77193*/        OPC_Scope, 17, /*->77212*/ // 2 children in Scope
/* 77195*/          OPC_CheckPatternPredicate, 109, // (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON())
/* 77197*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77200*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77203*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32d), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (NEONvdup:{ *:[v2i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VDUP32d:{ *:[v2i32] } GPR:{ *:[i32] }:$R)
/* 77212*/        /*Scope*/ 18, /*->77231*/
/* 77213*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32())
/* 77215*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77218*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77221*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 0, 1, 2, 
                    // Src: (NEONvdup:{ *:[v2i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VMOVDRR:{ *:[v2i32] } GPR:{ *:[i32] }:$R, GPR:{ *:[i32] }:$R)
/* 77231*/        0, /*End of Scope*/
/* 77232*/      /*SwitchType*/ 17, MVT::v16i8,// ->77251
/* 77234*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77236*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77239*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77242*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP8q), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP8q:{ *:[v16i8] } GPR:{ *:[i32] }:$R)
/* 77251*/      /*SwitchType*/ 17, MVT::v8i16,// ->77270
/* 77253*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77255*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77258*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77261*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP16q), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP16q:{ *:[v8i16] } GPR:{ *:[i32] }:$R)
/* 77270*/      /*SwitchType*/ 17, MVT::v4i32,// ->77289
/* 77272*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77274*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77277*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77280*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32q), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP32q:{ *:[v4i32] } GPR:{ *:[i32] }:$R)
/* 77289*/      0, // EndSwitchType
/* 77290*/    /*Scope*/ 5|128,1/*133*/, /*->77425*/
/* 77292*/      OPC_MoveChild0,
/* 77293*/      OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->77355
/* 77297*/        OPC_RecordMemRef,
/* 77298*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77299*/        OPC_RecordChild1, // #1 = $addr
/* 77300*/        OPC_CheckChild1Type, MVT::i32,
/* 77302*/        OPC_CheckPredicate, 30, // Predicate_unindexedload
/* 77304*/        OPC_CheckPredicate, 57, // Predicate_load
/* 77306*/        OPC_CheckType, MVT::f32,
/* 77308*/        OPC_MoveParent,
/* 77309*/        OPC_SwitchType /*2 cases */, 20, MVT::v2f32,// ->77332
/* 77312*/          OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77315*/          OPC_EmitMergeInputChains1_0,
/* 77316*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77319*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77322*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v2f32] } (ld:{ *:[f32] } addrmode6dup:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (VLD1DUPd32:{ *:[v2f32] } addrmode6:{ *:[i32] }:$addr)
/* 77332*/        /*SwitchType*/ 20, MVT::v4f32,// ->77354
/* 77334*/          OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77337*/          OPC_EmitMergeInputChains1_0,
/* 77338*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77341*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77344*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (NEONvdup:{ *:[v4f32] } (ld:{ *:[f32] } addrmode6dup:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (VLD1DUPq32:{ *:[v4f32] } addrmode6:{ *:[i32] }:$addr)
/* 77354*/        0, // EndSwitchType
/* 77355*/      /*SwitchOpcode*/ 66, TARGET_VAL(ISD::BITCAST),// ->77424
/* 77358*/        OPC_RecordChild0, // #0 = $R
/* 77359*/        OPC_CheckChild0Type, MVT::i32,
/* 77361*/        OPC_CheckType, MVT::f32,
/* 77363*/        OPC_MoveParent,
/* 77364*/        OPC_SwitchType /*2 cases */, 39, MVT::v2f32,// ->77406
/* 77367*/          OPC_Scope, 17, /*->77386*/ // 2 children in Scope
/* 77369*/            OPC_CheckPatternPredicate, 109, // (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON())
/* 77371*/            OPC_EmitInteger, MVT::i32, 14, 
/* 77374*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77377*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32d), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (NEONvdup:{ *:[v2f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                      // Dst: (VDUP32d:{ *:[v2f32] } GPR:{ *:[i32] }:$R)
/* 77386*/          /*Scope*/ 18, /*->77405*/
/* 77387*/            OPC_CheckPatternPredicate, 110, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32())
/* 77389*/            OPC_EmitInteger, MVT::i32, 14, 
/* 77392*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77395*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                          MVT::v2f32, 4/*#Ops*/, 0, 0, 1, 2, 
                      // Src: (NEONvdup:{ *:[v2f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                      // Dst: (VMOVDRR:{ *:[v2f32] } GPR:{ *:[i32] }:$R, GPR:{ *:[i32] }:$R)
/* 77405*/          0, /*End of Scope*/
/* 77406*/        /*SwitchType*/ 15, MVT::v4f32,// ->77423
/* 77408*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77411*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77414*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32q), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (NEONvdup:{ *:[v4f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                    // Dst: (VDUP32q:{ *:[v4f32] } GPR:{ *:[i32] }:$R)
/* 77423*/        0, // EndSwitchType
/* 77424*/      0, // EndSwitchOpcode
/* 77425*/    /*Scope*/ 83, /*->77509*/
/* 77426*/      OPC_RecordChild0, // #0 = $src
/* 77427*/      OPC_CheckChild0Type, MVT::f32,
/* 77429*/      OPC_SwitchType /*2 cases */, 37, MVT::v2f32,// ->77469
/* 77432*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 77438*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 77441*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 77450*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77453*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77456*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77459*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                      MVT::v2f32, 4/*#Ops*/, 3, 4, 5, 6, 
                  // Src: (NEONvdup:{ *:[v2f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (VDUPLN32d:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 77469*/      /*SwitchType*/ 37, MVT::v4f32,// ->77508
/* 77471*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 77477*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 77480*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 77489*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77492*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77495*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77498*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4f32, 4/*#Ops*/, 3, 4, 5, 6, 
                  // Src: (NEONvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (VDUPLN32q:{ *:[v4f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/* 77508*/      0, // EndSwitchType
/* 77509*/    0, /*End of Scope*/
/* 77510*/  /*SwitchOpcode*/ 39|128,3/*423*/, TARGET_VAL(ISD::TRUNCATE),// ->77937
/* 77514*/    OPC_Scope, 98|128,2/*354*/, /*->77871*/ // 2 children in Scope
/* 77517*/      OPC_MoveChild0,
/* 77518*/      OPC_SwitchOpcode /*2 cases */, 123|128,1/*251*/, TARGET_VAL(ARMISD::VSHRu),// ->77774
/* 77523*/        OPC_Scope, 31|128,1/*159*/, /*->77685*/ // 2 children in Scope
/* 77526*/          OPC_MoveChild0,
/* 77527*/          OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::ADD),// ->77606
/* 77531*/            OPC_RecordChild0, // #0 = $Vn
/* 77532*/            OPC_RecordChild1, // #1 = $Vm
/* 77533*/            OPC_MoveParent,
/* 77534*/            OPC_Scope, 23, /*->77559*/ // 3 children in Scope
/* 77536*/              OPC_CheckChild1Integer, 8, 
/* 77538*/              OPC_CheckType, MVT::v8i16,
/* 77540*/              OPC_MoveParent,
/* 77541*/              OPC_CheckType, MVT::v8i8,
/* 77543*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77546*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77549*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv8i8), 0,
                            MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v8i8] } (NEONvshru:{ *:[v8i16] } (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 77559*/            /*Scope*/ 23, /*->77583*/
/* 77560*/              OPC_CheckChild1Integer, 16, 
/* 77562*/              OPC_CheckType, MVT::v4i32,
/* 77564*/              OPC_MoveParent,
/* 77565*/              OPC_CheckType, MVT::v4i16,
/* 77567*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77570*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77573*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv4i16), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v4i16] } (NEONvshru:{ *:[v4i32] } (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 77583*/            /*Scope*/ 21, /*->77605*/
/* 77584*/              OPC_CheckChild1Integer, 32, 
/* 77586*/              OPC_MoveParent,
/* 77587*/              OPC_CheckType, MVT::v2i32,
/* 77589*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77592*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77595*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv2i32), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v2i32] } (NEONvshru:{ *:[v2i64] } (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 77605*/            0, /*End of Scope*/
/* 77606*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::SUB),// ->77684
/* 77609*/            OPC_RecordChild0, // #0 = $Vn
/* 77610*/            OPC_RecordChild1, // #1 = $Vm
/* 77611*/            OPC_MoveParent,
/* 77612*/            OPC_Scope, 23, /*->77637*/ // 3 children in Scope
/* 77614*/              OPC_CheckChild1Integer, 8, 
/* 77616*/              OPC_CheckType, MVT::v8i16,
/* 77618*/              OPC_MoveParent,
/* 77619*/              OPC_CheckType, MVT::v8i8,
/* 77621*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77624*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77627*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv8i8), 0,
                            MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v8i8] } (NEONvshru:{ *:[v8i16] } (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 77637*/            /*Scope*/ 23, /*->77661*/
/* 77638*/              OPC_CheckChild1Integer, 16, 
/* 77640*/              OPC_CheckType, MVT::v4i32,
/* 77642*/              OPC_MoveParent,
/* 77643*/              OPC_CheckType, MVT::v4i16,
/* 77645*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77648*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77651*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv4i16), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v4i16] } (NEONvshru:{ *:[v4i32] } (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 77661*/            /*Scope*/ 21, /*->77683*/
/* 77662*/              OPC_CheckChild1Integer, 32, 
/* 77664*/              OPC_MoveParent,
/* 77665*/              OPC_CheckType, MVT::v2i32,
/* 77667*/              OPC_EmitInteger, MVT::i32, 14, 
/* 77670*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77673*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv2i32), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v2i32] } (NEONvshru:{ *:[v2i64] } (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 77683*/            0, /*End of Scope*/
/* 77684*/          0, // EndSwitchOpcode
/* 77685*/        /*Scope*/ 87, /*->77773*/
/* 77686*/          OPC_RecordChild0, // #0 = $Vn
/* 77687*/          OPC_RecordChild1, // #1 = $amt
/* 77688*/          OPC_MoveChild1,
/* 77689*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 77692*/          OPC_Scope, 26, /*->77720*/ // 3 children in Scope
/* 77694*/            OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 77696*/            OPC_MoveParent,
/* 77697*/            OPC_CheckType, MVT::v8i16,
/* 77699*/            OPC_MoveParent,
/* 77700*/            OPC_CheckType, MVT::v8i8,
/* 77702*/            OPC_EmitConvertToTarget, 1,
/* 77704*/            OPC_EmitInteger, MVT::i32, 14, 
/* 77707*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77710*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv8i8), 0,
                          MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v8i8] } (NEONvshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$amt)) - Complexity = 10
                      // Dst: (VSHRNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$amt)
/* 77720*/          /*Scope*/ 26, /*->77747*/
/* 77721*/            OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 77723*/            OPC_MoveParent,
/* 77724*/            OPC_CheckType, MVT::v4i32,
/* 77726*/            OPC_MoveParent,
/* 77727*/            OPC_CheckType, MVT::v4i16,
/* 77729*/            OPC_EmitConvertToTarget, 1,
/* 77731*/            OPC_EmitInteger, MVT::i32, 14, 
/* 77734*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77737*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv4i16), 0,
                          MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v4i16] } (NEONvshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$amt)) - Complexity = 10
                      // Dst: (VSHRNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$amt)
/* 77747*/          /*Scope*/ 24, /*->77772*/
/* 77748*/            OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 77750*/            OPC_MoveParent,
/* 77751*/            OPC_MoveParent,
/* 77752*/            OPC_CheckType, MVT::v2i32,
/* 77754*/            OPC_EmitConvertToTarget, 1,
/* 77756*/            OPC_EmitInteger, MVT::i32, 14, 
/* 77759*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77762*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv2i32), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v2i32] } (NEONvshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$amt)) - Complexity = 10
                      // Dst: (VSHRNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$amt)
/* 77772*/          0, /*End of Scope*/
/* 77773*/        0, /*End of Scope*/
/* 77774*/      /*SwitchOpcode*/ 93, TARGET_VAL(ARMISD::VSHRs),// ->77870
/* 77777*/        OPC_RecordChild0, // #0 = $Vm
/* 77778*/        OPC_RecordChild1, // #1 = $SIMM
/* 77779*/        OPC_MoveChild1,
/* 77780*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 77783*/        OPC_Scope, 28, /*->77813*/ // 3 children in Scope
/* 77785*/          OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 77787*/          OPC_MoveParent,
/* 77788*/          OPC_CheckType, MVT::v8i16,
/* 77790*/          OPC_MoveParent,
/* 77791*/          OPC_CheckType, MVT::v8i8,
/* 77793*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77795*/          OPC_EmitConvertToTarget, 1,
/* 77797*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77800*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77803*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv8i8), 0,
                        MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v8i8] } (NEONvshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 77813*/        /*Scope*/ 28, /*->77842*/
/* 77814*/          OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 77816*/          OPC_MoveParent,
/* 77817*/          OPC_CheckType, MVT::v4i32,
/* 77819*/          OPC_MoveParent,
/* 77820*/          OPC_CheckType, MVT::v4i16,
/* 77822*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77824*/          OPC_EmitConvertToTarget, 1,
/* 77826*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77829*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77832*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v4i16] } (NEONvshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 77842*/        /*Scope*/ 26, /*->77869*/
/* 77843*/          OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 77845*/          OPC_MoveParent,
/* 77846*/          OPC_MoveParent,
/* 77847*/          OPC_CheckType, MVT::v2i32,
/* 77849*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77851*/          OPC_EmitConvertToTarget, 1,
/* 77853*/          OPC_EmitInteger, MVT::i32, 14, 
/* 77856*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77859*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v2i32] } (NEONvshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 77869*/        0, /*End of Scope*/
/* 77870*/      0, // EndSwitchOpcode
/* 77871*/    /*Scope*/ 64, /*->77936*/
/* 77872*/      OPC_RecordChild0, // #0 = $Vm
/* 77873*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->77895
/* 77876*/        OPC_CheckChild0Type, MVT::v8i16,
/* 77878*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77880*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77883*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77886*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVNv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (trunc:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VMOVNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 77895*/      /*SwitchType*/ 19, MVT::v4i16,// ->77916
/* 77897*/        OPC_CheckChild0Type, MVT::v4i32,
/* 77899*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77901*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77904*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77907*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVNv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (trunc:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VMOVNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 77916*/      /*SwitchType*/ 17, MVT::v2i32,// ->77935
/* 77918*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 77920*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77923*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77926*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVNv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (trunc:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                  // Dst: (VMOVNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 77935*/      0, // EndSwitchType
/* 77936*/    0, /*End of Scope*/
/* 77937*/  /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::ABS),// ->78117
/* 77941*/    OPC_Scope, 55, /*->77998*/ // 2 children in Scope
/* 77943*/      OPC_MoveChild0,
/* 77944*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 77947*/      OPC_MoveChild0,
/* 77948*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 77951*/      OPC_RecordChild0, // #0 = $opA
/* 77952*/      OPC_MoveParent,
/* 77953*/      OPC_MoveChild1,
/* 77954*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 77957*/      OPC_RecordChild0, // #1 = $opB
/* 77958*/      OPC_MoveParent,
/* 77959*/      OPC_MoveParent,
/* 77960*/      OPC_SwitchType /*2 cases */, 16, MVT::v8i16,// ->77979
/* 77963*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77966*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77969*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (abs:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opB))) - Complexity = 12
                  // Dst: (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opA, DPR:{ *:[v8i8] }:$opB)
/* 77979*/      /*SwitchType*/ 16, MVT::v4i32,// ->77997
/* 77981*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77984*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77987*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (abs:{ *:[v4i32] } (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opA), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opB))) - Complexity = 12
                  // Dst: (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opA, DPR:{ *:[v4i16] }:$opB)
/* 77997*/      0, // EndSwitchType
/* 77998*/    /*Scope*/ 117, /*->78116*/
/* 77999*/      OPC_RecordChild0, // #0 = $Vm
/* 78000*/      OPC_SwitchType /*6 cases */, 17, MVT::v8i8,// ->78020
/* 78003*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78005*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78008*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78011*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 78020*/      /*SwitchType*/ 17, MVT::v4i16,// ->78039
/* 78022*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78024*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78027*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78030*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 78039*/      /*SwitchType*/ 17, MVT::v2i32,// ->78058
/* 78041*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78043*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78046*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78049*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 78058*/      /*SwitchType*/ 17, MVT::v16i8,// ->78077
/* 78060*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78062*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78065*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78068*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 78077*/      /*SwitchType*/ 17, MVT::v8i16,// ->78096
/* 78079*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78081*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78084*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78087*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 78096*/      /*SwitchType*/ 17, MVT::v4i32,// ->78115
/* 78098*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78100*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78106*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (abs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 78115*/      0, // EndSwitchType
/* 78116*/    0, /*End of Scope*/
/* 78117*/  /*SwitchOpcode*/ 119|128,1/*247*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->78368
/* 78121*/    OPC_Scope, 54|128,1/*182*/, /*->78306*/ // 2 children in Scope
/* 78124*/      OPC_MoveChild0,
/* 78125*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 78128*/      OPC_Scope, 87, /*->78217*/ // 2 children in Scope
/* 78130*/        OPC_CheckChild0Integer, 120|128,7/*1016*/, 
/* 78133*/        OPC_RecordChild1, // #0 = $Vn
/* 78134*/        OPC_Scope, 26, /*->78162*/ // 3 children in Scope
/* 78136*/          OPC_CheckChild1Type, MVT::v8i8,
/* 78138*/          OPC_RecordChild2, // #1 = $Vm
/* 78139*/          OPC_CheckChild2Type, MVT::v8i8,
/* 78141*/          OPC_MoveParent,
/* 78142*/          OPC_CheckType, MVT::v8i16,
/* 78144*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78146*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78149*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78152*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1016:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 78162*/        /*Scope*/ 26, /*->78189*/
/* 78163*/          OPC_CheckChild1Type, MVT::v4i16,
/* 78165*/          OPC_RecordChild2, // #1 = $Vm
/* 78166*/          OPC_CheckChild2Type, MVT::v4i16,
/* 78168*/          OPC_MoveParent,
/* 78169*/          OPC_CheckType, MVT::v4i32,
/* 78171*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78173*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78176*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78179*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1016:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 78189*/        /*Scope*/ 26, /*->78216*/
/* 78190*/          OPC_CheckChild1Type, MVT::v2i32,
/* 78192*/          OPC_RecordChild2, // #1 = $Vm
/* 78193*/          OPC_CheckChild2Type, MVT::v2i32,
/* 78195*/          OPC_MoveParent,
/* 78196*/          OPC_CheckType, MVT::v2i64,
/* 78198*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78200*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78203*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78206*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1016:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 78216*/        0, /*End of Scope*/
/* 78217*/      /*Scope*/ 87, /*->78305*/
/* 78218*/        OPC_CheckChild0Integer, 121|128,7/*1017*/, 
/* 78221*/        OPC_RecordChild1, // #0 = $Vn
/* 78222*/        OPC_Scope, 26, /*->78250*/ // 3 children in Scope
/* 78224*/          OPC_CheckChild1Type, MVT::v8i8,
/* 78226*/          OPC_RecordChild2, // #1 = $Vm
/* 78227*/          OPC_CheckChild2Type, MVT::v8i8,
/* 78229*/          OPC_MoveParent,
/* 78230*/          OPC_CheckType, MVT::v8i16,
/* 78232*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78234*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78237*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78240*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1017:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 78250*/        /*Scope*/ 26, /*->78277*/
/* 78251*/          OPC_CheckChild1Type, MVT::v4i16,
/* 78253*/          OPC_RecordChild2, // #1 = $Vm
/* 78254*/          OPC_CheckChild2Type, MVT::v4i16,
/* 78256*/          OPC_MoveParent,
/* 78257*/          OPC_CheckType, MVT::v4i32,
/* 78259*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78261*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78264*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78267*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1017:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 78277*/        /*Scope*/ 26, /*->78304*/
/* 78278*/          OPC_CheckChild1Type, MVT::v2i32,
/* 78280*/          OPC_RecordChild2, // #1 = $Vm
/* 78281*/          OPC_CheckChild2Type, MVT::v2i32,
/* 78283*/          OPC_MoveParent,
/* 78284*/          OPC_CheckType, MVT::v2i64,
/* 78286*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78288*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78291*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78294*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1017:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 78304*/        0, /*End of Scope*/
/* 78305*/      0, /*End of Scope*/
/* 78306*/    /*Scope*/ 60, /*->78367*/
/* 78307*/      OPC_RecordChild0, // #0 = $Vm
/* 78308*/      OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->78328
/* 78311*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78313*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78316*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78319*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
/* 78328*/      /*SwitchType*/ 17, MVT::v4i32,// ->78347
/* 78330*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78332*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78335*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78338*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
/* 78347*/      /*SwitchType*/ 17, MVT::v2i64,// ->78366
/* 78349*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78351*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78354*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78357*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
/* 78366*/      0, // EndSwitchType
/* 78367*/    0, /*End of Scope*/
/* 78368*/  /*SwitchOpcode*/ 90|128,4/*602*/, TARGET_VAL(ARMISD::VSHL),// ->78974
/* 78372*/    OPC_Scope, 27|128,3/*411*/, /*->78786*/ // 2 children in Scope
/* 78375*/      OPC_MoveChild0,
/* 78376*/      OPC_SwitchOpcode /*3 cases */, 34|128,1/*162*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->78543
/* 78381*/        OPC_RecordChild0, // #0 = $Rn
/* 78382*/        OPC_MoveParent,
/* 78383*/        OPC_Scope, 23, /*->78408*/ // 4 children in Scope
/* 78385*/          OPC_CheckChild1Integer, 8, 
/* 78387*/          OPC_CheckType, MVT::v8i16,
/* 78389*/          OPC_EmitInteger, MVT::i32, 8, 
/* 78392*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78395*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78398*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/* 78408*/        /*Scope*/ 23, /*->78432*/
/* 78409*/          OPC_CheckChild1Integer, 16, 
/* 78411*/          OPC_CheckType, MVT::v4i32,
/* 78413*/          OPC_EmitInteger, MVT::i32, 16, 
/* 78416*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78419*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78422*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/* 78432*/        /*Scope*/ 23, /*->78456*/
/* 78433*/          OPC_CheckChild1Integer, 32, 
/* 78435*/          OPC_CheckType, MVT::v2i64,
/* 78437*/          OPC_EmitInteger, MVT::i32, 32, 
/* 78440*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78446*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/* 78456*/        /*Scope*/ 85, /*->78542*/
/* 78457*/          OPC_RecordChild1, // #1 = $SIMM
/* 78458*/          OPC_MoveChild1,
/* 78459*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78462*/          OPC_Scope, 25, /*->78489*/ // 3 children in Scope
/* 78464*/            OPC_CheckPredicate, 92, // Predicate_imm1_7
/* 78466*/            OPC_MoveParent,
/* 78467*/            OPC_CheckType, MVT::v8i16,
/* 78469*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78471*/            OPC_EmitConvertToTarget, 1,
/* 78473*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78476*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78479*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_7>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78489*/          /*Scope*/ 25, /*->78515*/
/* 78490*/            OPC_CheckPredicate, 2, // Predicate_imm1_15
/* 78492*/            OPC_MoveParent,
/* 78493*/            OPC_CheckType, MVT::v4i32,
/* 78495*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78497*/            OPC_EmitConvertToTarget, 1,
/* 78499*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78502*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78505*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78515*/          /*Scope*/ 25, /*->78541*/
/* 78516*/            OPC_CheckPredicate, 81, // Predicate_imm1_31
/* 78518*/            OPC_MoveParent,
/* 78519*/            OPC_CheckType, MVT::v2i64,
/* 78521*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78523*/            OPC_EmitConvertToTarget, 1,
/* 78525*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78528*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78531*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv2i64), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78541*/          0, /*End of Scope*/
/* 78542*/        0, /*End of Scope*/
/* 78543*/      /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->78709
/* 78547*/        OPC_RecordChild0, // #0 = $Rn
/* 78548*/        OPC_MoveParent,
/* 78549*/        OPC_Scope, 23, /*->78574*/ // 4 children in Scope
/* 78551*/          OPC_CheckChild1Integer, 8, 
/* 78553*/          OPC_CheckType, MVT::v8i16,
/* 78555*/          OPC_EmitInteger, MVT::i32, 8, 
/* 78558*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78561*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78564*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/* 78574*/        /*Scope*/ 23, /*->78598*/
/* 78575*/          OPC_CheckChild1Integer, 16, 
/* 78577*/          OPC_CheckType, MVT::v4i32,
/* 78579*/          OPC_EmitInteger, MVT::i32, 16, 
/* 78582*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78585*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78588*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/* 78598*/        /*Scope*/ 23, /*->78622*/
/* 78599*/          OPC_CheckChild1Integer, 32, 
/* 78601*/          OPC_CheckType, MVT::v2i64,
/* 78603*/          OPC_EmitInteger, MVT::i32, 32, 
/* 78606*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78609*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78612*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/* 78622*/        /*Scope*/ 85, /*->78708*/
/* 78623*/          OPC_RecordChild1, // #1 = $SIMM
/* 78624*/          OPC_MoveChild1,
/* 78625*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78628*/          OPC_Scope, 25, /*->78655*/ // 3 children in Scope
/* 78630*/            OPC_CheckPredicate, 92, // Predicate_imm1_7
/* 78632*/            OPC_MoveParent,
/* 78633*/            OPC_CheckType, MVT::v8i16,
/* 78635*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78637*/            OPC_EmitConvertToTarget, 1,
/* 78639*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78642*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78645*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_7>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78655*/          /*Scope*/ 25, /*->78681*/
/* 78656*/            OPC_CheckPredicate, 2, // Predicate_imm1_15
/* 78658*/            OPC_MoveParent,
/* 78659*/            OPC_CheckType, MVT::v4i32,
/* 78661*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78663*/            OPC_EmitConvertToTarget, 1,
/* 78665*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78668*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78671*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78681*/          /*Scope*/ 25, /*->78707*/
/* 78682*/            OPC_CheckPredicate, 81, // Predicate_imm1_31
/* 78684*/            OPC_MoveParent,
/* 78685*/            OPC_CheckType, MVT::v2i64,
/* 78687*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78689*/            OPC_EmitConvertToTarget, 1,
/* 78691*/            OPC_EmitInteger, MVT::i32, 14, 
/* 78694*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78697*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv2i64), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (NEONvshl:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$SIMM) - Complexity = 10
                      // Dst: (VSHLLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78707*/          0, /*End of Scope*/
/* 78708*/        0, /*End of Scope*/
/* 78709*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ANY_EXTEND),// ->78785
/* 78712*/        OPC_RecordChild0, // #0 = $Rn
/* 78713*/        OPC_MoveParent,
/* 78714*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i16,// ->78738
/* 78717*/          OPC_CheckChild1Integer, 8, 
/* 78719*/          OPC_EmitInteger, MVT::i32, 8, 
/* 78722*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78725*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78728*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/* 78738*/        /*SwitchType*/ 21, MVT::v4i32,// ->78761
/* 78740*/          OPC_CheckChild1Integer, 16, 
/* 78742*/          OPC_EmitInteger, MVT::i32, 16, 
/* 78745*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78748*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78751*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/* 78761*/        /*SwitchType*/ 21, MVT::v2i64,// ->78784
/* 78763*/          OPC_CheckChild1Integer, 32, 
/* 78765*/          OPC_EmitInteger, MVT::i32, 32, 
/* 78768*/          OPC_EmitInteger, MVT::i32, 14, 
/* 78771*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78774*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (NEONvshl:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/* 78784*/        0, // EndSwitchType
/* 78785*/      0, // EndSwitchOpcode
/* 78786*/    /*Scope*/ 57|128,1/*185*/, /*->78973*/
/* 78788*/      OPC_RecordChild0, // #0 = $Vm
/* 78789*/      OPC_RecordChild1, // #1 = $SIMM
/* 78790*/      OPC_MoveChild1,
/* 78791*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78794*/      OPC_MoveParent,
/* 78795*/      OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->78818
/* 78798*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78800*/        OPC_EmitConvertToTarget, 1,
/* 78802*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78805*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78808*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78818*/      /*SwitchType*/ 20, MVT::v4i16,// ->78840
/* 78820*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78822*/        OPC_EmitConvertToTarget, 1,
/* 78824*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78827*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78830*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78840*/      /*SwitchType*/ 20, MVT::v2i32,// ->78862
/* 78842*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78844*/        OPC_EmitConvertToTarget, 1,
/* 78846*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78849*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78852*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78862*/      /*SwitchType*/ 20, MVT::v1i64,// ->78884
/* 78864*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78866*/        OPC_EmitConvertToTarget, 1,
/* 78868*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78871*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78874*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78884*/      /*SwitchType*/ 20, MVT::v16i8,// ->78906
/* 78886*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78888*/        OPC_EmitConvertToTarget, 1,
/* 78890*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78893*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78896*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78906*/      /*SwitchType*/ 20, MVT::v8i16,// ->78928
/* 78908*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78910*/        OPC_EmitConvertToTarget, 1,
/* 78912*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78915*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78918*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78928*/      /*SwitchType*/ 20, MVT::v4i32,// ->78950
/* 78930*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78932*/        OPC_EmitConvertToTarget, 1,
/* 78934*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78937*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78940*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78950*/      /*SwitchType*/ 20, MVT::v2i64,// ->78972
/* 78952*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 78954*/        OPC_EmitConvertToTarget, 1,
/* 78956*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78959*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78962*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvshl:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHLiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 78972*/      0, // EndSwitchType
/* 78973*/    0, /*End of Scope*/
/* 78974*/  /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->79110
/* 78978*/    OPC_MoveChild0,
/* 78979*/    OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 78982*/    OPC_MoveParent,
/* 78983*/    OPC_RecordChild1, // #0 = $src
/* 78984*/    OPC_CheckChild2Integer, 0, 
/* 78986*/    OPC_CheckChild2Type, MVT::i32,
/* 78988*/    OPC_SwitchType /*6 cases */, 18, MVT::v2i64,// ->79009
/* 78991*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 78997*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79000*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v2i64] } (undef:{ *:[v2i64] }), DPR:{ *:[v1i64] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), DPR:{ *:[v1i64] }:$src, dsub_0:{ *:[i32] })
/* 79009*/    /*SwitchType*/ 18, MVT::v4i32,// ->79029
/* 79011*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 79017*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79020*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v4i32] } (undef:{ *:[v4i32] }), DPR:{ *:[v2i32] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), DPR:{ *:[v2i32] }:$src, dsub_0:{ *:[i32] })
/* 79029*/    /*SwitchType*/ 18, MVT::v8i16,// ->79049
/* 79031*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 79037*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79040*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), DPR:{ *:[v4i16] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), DPR:{ *:[v4i16] }:$src, dsub_0:{ *:[i32] })
/* 79049*/    /*SwitchType*/ 18, MVT::v16i8,// ->79069
/* 79051*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 79057*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79060*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), DPR:{ *:[v8i8] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), DPR:{ *:[v8i8] }:$src, dsub_0:{ *:[i32] })
/* 79069*/    /*SwitchType*/ 18, MVT::v4f32,// ->79089
/* 79071*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 79077*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79080*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), DPR:{ *:[v2f32] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), DPR:{ *:[v2f32] }:$src, dsub_0:{ *:[i32] })
/* 79089*/    /*SwitchType*/ 18, MVT::v8f16,// ->79109
/* 79091*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f16, 0/*#Ops*/,  // Results = #1
/* 79097*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79100*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f16, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:{ *:[v8f16] } (undef:{ *:[v8f16] }), DPR:{ *:[v4f16] }:$src, 0:{ *:[i32] }) - Complexity = 11
                // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), DPR:{ *:[v4f16] }:$src, dsub_0:{ *:[i32] })
/* 79109*/    0, // EndSwitchType
/* 79110*/  /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ARMISD::VMULLs),// ->79271
/* 79114*/    OPC_RecordChild0, // #0 = $Vn
/* 79115*/    OPC_Scope, 64, /*->79181*/ // 3 children in Scope
/* 79117*/      OPC_CheckChild0Type, MVT::v4i16,
/* 79119*/      OPC_Scope, 37, /*->79158*/ // 2 children in Scope
/* 79121*/        OPC_MoveChild1,
/* 79122*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 79125*/        OPC_RecordChild0, // #1 = $Vm
/* 79126*/        OPC_CheckChild0Type, MVT::v4i16,
/* 79128*/        OPC_RecordChild1, // #2 = $lane
/* 79129*/        OPC_MoveChild1,
/* 79130*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79133*/        OPC_MoveParent,
/* 79134*/        OPC_MoveParent,
/* 79135*/        OPC_CheckType, MVT::v4i32,
/* 79137*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79139*/        OPC_EmitConvertToTarget, 2,
/* 79141*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79144*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79147*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLslsv4i16), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLslsv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 79158*/      /*Scope*/ 21, /*->79180*/
/* 79159*/        OPC_RecordChild1, // #1 = $Vm
/* 79160*/        OPC_CheckType, MVT::v4i32,
/* 79162*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79164*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79167*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79170*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VMULLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 79180*/      0, /*End of Scope*/
/* 79181*/    /*Scope*/ 64, /*->79246*/
/* 79182*/      OPC_CheckChild0Type, MVT::v2i32,
/* 79184*/      OPC_Scope, 37, /*->79223*/ // 2 children in Scope
/* 79186*/        OPC_MoveChild1,
/* 79187*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 79190*/        OPC_RecordChild0, // #1 = $Vm
/* 79191*/        OPC_CheckChild0Type, MVT::v2i32,
/* 79193*/        OPC_RecordChild1, // #2 = $lane
/* 79194*/        OPC_MoveChild1,
/* 79195*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79198*/        OPC_MoveParent,
/* 79199*/        OPC_MoveParent,
/* 79200*/        OPC_CheckType, MVT::v2i64,
/* 79202*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79204*/        OPC_EmitConvertToTarget, 2,
/* 79206*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79212*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLslsv2i32), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLslsv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 79223*/      /*Scope*/ 21, /*->79245*/
/* 79224*/        OPC_RecordChild1, // #1 = $Vm
/* 79225*/        OPC_CheckType, MVT::v2i64,
/* 79227*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79229*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79232*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79235*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VMULLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 79245*/      0, /*End of Scope*/
/* 79246*/    /*Scope*/ 23, /*->79270*/
/* 79247*/      OPC_CheckChild0Type, MVT::v8i8,
/* 79249*/      OPC_RecordChild1, // #1 = $Vm
/* 79250*/      OPC_CheckType, MVT::v8i16,
/* 79252*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79254*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79257*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79260*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvmulls:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMULLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 79270*/    0, /*End of Scope*/
/* 79271*/  /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ARMISD::VMULLu),// ->79432
/* 79275*/    OPC_RecordChild0, // #0 = $Vn
/* 79276*/    OPC_Scope, 64, /*->79342*/ // 3 children in Scope
/* 79278*/      OPC_CheckChild0Type, MVT::v4i16,
/* 79280*/      OPC_Scope, 37, /*->79319*/ // 2 children in Scope
/* 79282*/        OPC_MoveChild1,
/* 79283*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 79286*/        OPC_RecordChild0, // #1 = $Vm
/* 79287*/        OPC_CheckChild0Type, MVT::v4i16,
/* 79289*/        OPC_RecordChild1, // #2 = $lane
/* 79290*/        OPC_MoveChild1,
/* 79291*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79294*/        OPC_MoveParent,
/* 79295*/        OPC_MoveParent,
/* 79296*/        OPC_CheckType, MVT::v4i32,
/* 79298*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79300*/        OPC_EmitConvertToTarget, 2,
/* 79302*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79305*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79308*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsluv4i16), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (NEONvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLsluv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 79319*/      /*Scope*/ 21, /*->79341*/
/* 79320*/        OPC_RecordChild1, // #1 = $Vm
/* 79321*/        OPC_CheckType, MVT::v4i32,
/* 79323*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79325*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79328*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79331*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VMULLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 79341*/      0, /*End of Scope*/
/* 79342*/    /*Scope*/ 64, /*->79407*/
/* 79343*/      OPC_CheckChild0Type, MVT::v2i32,
/* 79345*/      OPC_Scope, 37, /*->79384*/ // 2 children in Scope
/* 79347*/        OPC_MoveChild1,
/* 79348*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 79351*/        OPC_RecordChild0, // #1 = $Vm
/* 79352*/        OPC_CheckChild0Type, MVT::v2i32,
/* 79354*/        OPC_RecordChild1, // #2 = $lane
/* 79355*/        OPC_MoveChild1,
/* 79356*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79359*/        OPC_MoveParent,
/* 79360*/        OPC_MoveParent,
/* 79361*/        OPC_CheckType, MVT::v2i64,
/* 79363*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79365*/        OPC_EmitConvertToTarget, 2,
/* 79367*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79370*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79373*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsluv2i32), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (NEONvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLsluv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 79384*/      /*Scope*/ 21, /*->79406*/
/* 79385*/        OPC_RecordChild1, // #1 = $Vm
/* 79386*/        OPC_CheckType, MVT::v2i64,
/* 79388*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79390*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79393*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79396*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VMULLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 79406*/      0, /*End of Scope*/
/* 79407*/    /*Scope*/ 23, /*->79431*/
/* 79408*/      OPC_CheckChild0Type, MVT::v8i8,
/* 79410*/      OPC_RecordChild1, // #1 = $Vm
/* 79411*/      OPC_CheckType, MVT::v8i16,
/* 79413*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79415*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79418*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79421*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvmullu:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMULLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 79431*/    0, /*End of Scope*/
/* 79432*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VRSHRN),// ->79537
/* 79435*/    OPC_RecordChild0, // #0 = $Vm
/* 79436*/    OPC_Scope, 32, /*->79470*/ // 3 children in Scope
/* 79438*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79440*/      OPC_RecordChild1, // #1 = $SIMM
/* 79441*/      OPC_MoveChild1,
/* 79442*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79445*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79447*/      OPC_MoveParent,
/* 79448*/      OPC_CheckType, MVT::v8i8,
/* 79450*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79452*/      OPC_EmitConvertToTarget, 1,
/* 79454*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79457*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79460*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrn:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79470*/    /*Scope*/ 32, /*->79503*/
/* 79471*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79473*/      OPC_RecordChild1, // #1 = $SIMM
/* 79474*/      OPC_MoveChild1,
/* 79475*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79478*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 79480*/      OPC_MoveParent,
/* 79481*/      OPC_CheckType, MVT::v4i16,
/* 79483*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79485*/      OPC_EmitConvertToTarget, 1,
/* 79487*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79490*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79493*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrn:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79503*/    /*Scope*/ 32, /*->79536*/
/* 79504*/      OPC_CheckChild0Type, MVT::v2i64,
/* 79506*/      OPC_RecordChild1, // #1 = $SIMM
/* 79507*/      OPC_MoveChild1,
/* 79508*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79511*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 79513*/      OPC_MoveParent,
/* 79514*/      OPC_CheckType, MVT::v2i32,
/* 79516*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79518*/      OPC_EmitConvertToTarget, 1,
/* 79520*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79523*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79526*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrn:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79536*/    0, /*End of Scope*/
/* 79537*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNs),// ->79642
/* 79540*/    OPC_RecordChild0, // #0 = $Vm
/* 79541*/    OPC_Scope, 32, /*->79575*/ // 3 children in Scope
/* 79543*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79545*/      OPC_RecordChild1, // #1 = $SIMM
/* 79546*/      OPC_MoveChild1,
/* 79547*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79550*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79552*/      OPC_MoveParent,
/* 79553*/      OPC_CheckType, MVT::v8i8,
/* 79555*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79557*/      OPC_EmitConvertToTarget, 1,
/* 79559*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79562*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79565*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrns:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79575*/    /*Scope*/ 32, /*->79608*/
/* 79576*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79578*/      OPC_RecordChild1, // #1 = $SIMM
/* 79579*/      OPC_MoveChild1,
/* 79580*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79583*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 79585*/      OPC_MoveParent,
/* 79586*/      OPC_CheckType, MVT::v4i16,
/* 79588*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79590*/      OPC_EmitConvertToTarget, 1,
/* 79592*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79595*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79598*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrns:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79608*/    /*Scope*/ 32, /*->79641*/
/* 79609*/      OPC_CheckChild0Type, MVT::v2i64,
/* 79611*/      OPC_RecordChild1, // #1 = $SIMM
/* 79612*/      OPC_MoveChild1,
/* 79613*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79616*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 79618*/      OPC_MoveParent,
/* 79619*/      OPC_CheckType, MVT::v2i32,
/* 79621*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79623*/      OPC_EmitConvertToTarget, 1,
/* 79625*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79628*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79631*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrns:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79641*/    0, /*End of Scope*/
/* 79642*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNu),// ->79747
/* 79645*/    OPC_RecordChild0, // #0 = $Vm
/* 79646*/    OPC_Scope, 32, /*->79680*/ // 3 children in Scope
/* 79648*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79650*/      OPC_RecordChild1, // #1 = $SIMM
/* 79651*/      OPC_MoveChild1,
/* 79652*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79655*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79657*/      OPC_MoveParent,
/* 79658*/      OPC_CheckType, MVT::v8i8,
/* 79660*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79662*/      OPC_EmitConvertToTarget, 1,
/* 79664*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79667*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79670*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnu:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79680*/    /*Scope*/ 32, /*->79713*/
/* 79681*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79683*/      OPC_RecordChild1, // #1 = $SIMM
/* 79684*/      OPC_MoveChild1,
/* 79685*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79688*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 79690*/      OPC_MoveParent,
/* 79691*/      OPC_CheckType, MVT::v4i16,
/* 79693*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79695*/      OPC_EmitConvertToTarget, 1,
/* 79697*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79700*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79703*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnu:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79713*/    /*Scope*/ 32, /*->79746*/
/* 79714*/      OPC_CheckChild0Type, MVT::v2i64,
/* 79716*/      OPC_RecordChild1, // #1 = $SIMM
/* 79717*/      OPC_MoveChild1,
/* 79718*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79721*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 79723*/      OPC_MoveParent,
/* 79724*/      OPC_CheckType, MVT::v2i32,
/* 79726*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79728*/      OPC_EmitConvertToTarget, 1,
/* 79730*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79733*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79736*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnu:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79746*/    0, /*End of Scope*/
/* 79747*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNsu),// ->79852
/* 79750*/    OPC_RecordChild0, // #0 = $Vm
/* 79751*/    OPC_Scope, 32, /*->79785*/ // 3 children in Scope
/* 79753*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79755*/      OPC_RecordChild1, // #1 = $SIMM
/* 79756*/      OPC_MoveChild1,
/* 79757*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79760*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79762*/      OPC_MoveParent,
/* 79763*/      OPC_CheckType, MVT::v8i8,
/* 79765*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79767*/      OPC_EmitConvertToTarget, 1,
/* 79769*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79772*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79775*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsu:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79785*/    /*Scope*/ 32, /*->79818*/
/* 79786*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79788*/      OPC_RecordChild1, // #1 = $SIMM
/* 79789*/      OPC_MoveChild1,
/* 79790*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79793*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 79795*/      OPC_MoveParent,
/* 79796*/      OPC_CheckType, MVT::v4i16,
/* 79798*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79800*/      OPC_EmitConvertToTarget, 1,
/* 79802*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79805*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79808*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsu:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79818*/    /*Scope*/ 32, /*->79851*/
/* 79819*/      OPC_CheckChild0Type, MVT::v2i64,
/* 79821*/      OPC_RecordChild1, // #1 = $SIMM
/* 79822*/      OPC_MoveChild1,
/* 79823*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79826*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 79828*/      OPC_MoveParent,
/* 79829*/      OPC_CheckType, MVT::v2i32,
/* 79831*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79833*/      OPC_EmitConvertToTarget, 1,
/* 79835*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79838*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79841*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsu:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79851*/    0, /*End of Scope*/
/* 79852*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNs),// ->79957
/* 79855*/    OPC_RecordChild0, // #0 = $Vm
/* 79856*/    OPC_Scope, 32, /*->79890*/ // 3 children in Scope
/* 79858*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79860*/      OPC_RecordChild1, // #1 = $SIMM
/* 79861*/      OPC_MoveChild1,
/* 79862*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79865*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79867*/      OPC_MoveParent,
/* 79868*/      OPC_CheckType, MVT::v8i8,
/* 79870*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79872*/      OPC_EmitConvertToTarget, 1,
/* 79874*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79877*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79880*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrns:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79890*/    /*Scope*/ 32, /*->79923*/
/* 79891*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79893*/      OPC_RecordChild1, // #1 = $SIMM
/* 79894*/      OPC_MoveChild1,
/* 79895*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79898*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 79900*/      OPC_MoveParent,
/* 79901*/      OPC_CheckType, MVT::v4i16,
/* 79903*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79905*/      OPC_EmitConvertToTarget, 1,
/* 79907*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79910*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79913*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrns:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79923*/    /*Scope*/ 32, /*->79956*/
/* 79924*/      OPC_CheckChild0Type, MVT::v2i64,
/* 79926*/      OPC_RecordChild1, // #1 = $SIMM
/* 79927*/      OPC_MoveChild1,
/* 79928*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79931*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 79933*/      OPC_MoveParent,
/* 79934*/      OPC_CheckType, MVT::v2i32,
/* 79936*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79938*/      OPC_EmitConvertToTarget, 1,
/* 79940*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79943*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79946*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrns:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79956*/    0, /*End of Scope*/
/* 79957*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNu),// ->80062
/* 79960*/    OPC_RecordChild0, // #0 = $Vm
/* 79961*/    OPC_Scope, 32, /*->79995*/ // 3 children in Scope
/* 79963*/      OPC_CheckChild0Type, MVT::v8i16,
/* 79965*/      OPC_RecordChild1, // #1 = $SIMM
/* 79966*/      OPC_MoveChild1,
/* 79967*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79970*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 79972*/      OPC_MoveParent,
/* 79973*/      OPC_CheckType, MVT::v8i8,
/* 79975*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 79977*/      OPC_EmitConvertToTarget, 1,
/* 79979*/      OPC_EmitInteger, MVT::i32, 14, 
/* 79982*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79985*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnu:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 79995*/    /*Scope*/ 32, /*->80028*/
/* 79996*/      OPC_CheckChild0Type, MVT::v4i32,
/* 79998*/      OPC_RecordChild1, // #1 = $SIMM
/* 79999*/      OPC_MoveChild1,
/* 80000*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80003*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 80005*/      OPC_MoveParent,
/* 80006*/      OPC_CheckType, MVT::v4i16,
/* 80008*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80010*/      OPC_EmitConvertToTarget, 1,
/* 80012*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80015*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80018*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnu:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80028*/    /*Scope*/ 32, /*->80061*/
/* 80029*/      OPC_CheckChild0Type, MVT::v2i64,
/* 80031*/      OPC_RecordChild1, // #1 = $SIMM
/* 80032*/      OPC_MoveChild1,
/* 80033*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80036*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 80038*/      OPC_MoveParent,
/* 80039*/      OPC_CheckType, MVT::v2i32,
/* 80041*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80043*/      OPC_EmitConvertToTarget, 1,
/* 80045*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80048*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80051*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnu:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80061*/    0, /*End of Scope*/
/* 80062*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNsu),// ->80167
/* 80065*/    OPC_RecordChild0, // #0 = $Vm
/* 80066*/    OPC_Scope, 32, /*->80100*/ // 3 children in Scope
/* 80068*/      OPC_CheckChild0Type, MVT::v8i16,
/* 80070*/      OPC_RecordChild1, // #1 = $SIMM
/* 80071*/      OPC_MoveChild1,
/* 80072*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80075*/      OPC_CheckPredicate, 90, // Predicate_shr_imm8
/* 80077*/      OPC_MoveParent,
/* 80078*/      OPC_CheckType, MVT::v8i8,
/* 80080*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80082*/      OPC_EmitConvertToTarget, 1,
/* 80084*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80087*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80090*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsu:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80100*/    /*Scope*/ 32, /*->80133*/
/* 80101*/      OPC_CheckChild0Type, MVT::v4i32,
/* 80103*/      OPC_RecordChild1, // #1 = $SIMM
/* 80104*/      OPC_MoveChild1,
/* 80105*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80108*/      OPC_CheckPredicate, 91, // Predicate_shr_imm16
/* 80110*/      OPC_MoveParent,
/* 80111*/      OPC_CheckType, MVT::v4i16,
/* 80113*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80115*/      OPC_EmitConvertToTarget, 1,
/* 80117*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80120*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80123*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsu:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80133*/    /*Scope*/ 32, /*->80166*/
/* 80134*/      OPC_CheckChild0Type, MVT::v2i64,
/* 80136*/      OPC_RecordChild1, // #1 = $SIMM
/* 80137*/      OPC_MoveChild1,
/* 80138*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80141*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 80143*/      OPC_MoveParent,
/* 80144*/      OPC_CheckType, MVT::v2i32,
/* 80146*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80148*/      OPC_EmitConvertToTarget, 1,
/* 80150*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80153*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80156*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsu:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80166*/    0, /*End of Scope*/
/* 80167*/  /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ARMISD::VDUPLANE),// ->80585
/* 80171*/    OPC_RecordChild0, // #0 = $Vm
/* 80172*/    OPC_Scope, 59, /*->80233*/ // 8 children in Scope
/* 80174*/      OPC_CheckChild0Type, MVT::v8i8,
/* 80176*/      OPC_RecordChild1, // #1 = $lane
/* 80177*/      OPC_MoveChild1,
/* 80178*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80181*/      OPC_Scope, 25, /*->80208*/ // 2 children in Scope
/* 80183*/        OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 80185*/        OPC_MoveParent,
/* 80186*/        OPC_CheckType, MVT::v16i8,
/* 80188*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80190*/        OPC_EmitConvertToTarget, 1,
/* 80192*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80195*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80198*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8q), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN8q:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80208*/      /*Scope*/ 23, /*->80232*/
/* 80209*/        OPC_MoveParent,
/* 80210*/        OPC_CheckType, MVT::v8i8,
/* 80212*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80214*/        OPC_EmitConvertToTarget, 1,
/* 80216*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80219*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80222*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8d), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN8d:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80232*/      0, /*End of Scope*/
/* 80233*/    /*Scope*/ 59, /*->80293*/
/* 80234*/      OPC_CheckChild0Type, MVT::v4i16,
/* 80236*/      OPC_RecordChild1, // #1 = $lane
/* 80237*/      OPC_MoveChild1,
/* 80238*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80241*/      OPC_Scope, 25, /*->80268*/ // 2 children in Scope
/* 80243*/        OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 80245*/        OPC_MoveParent,
/* 80246*/        OPC_CheckType, MVT::v8i16,
/* 80248*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80250*/        OPC_EmitConvertToTarget, 1,
/* 80252*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80255*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80258*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN16q:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80268*/      /*Scope*/ 23, /*->80292*/
/* 80269*/        OPC_MoveParent,
/* 80270*/        OPC_CheckType, MVT::v4i16,
/* 80272*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80274*/        OPC_EmitConvertToTarget, 1,
/* 80276*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80279*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80282*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16d), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN16d:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80292*/      0, /*End of Scope*/
/* 80293*/    /*Scope*/ 59, /*->80353*/
/* 80294*/      OPC_CheckChild0Type, MVT::v2i32,
/* 80296*/      OPC_RecordChild1, // #1 = $lane
/* 80297*/      OPC_MoveChild1,
/* 80298*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80301*/      OPC_Scope, 25, /*->80328*/ // 2 children in Scope
/* 80303*/        OPC_CheckPredicate, 55, // Predicate_VectorIndex32
/* 80305*/        OPC_MoveParent,
/* 80306*/        OPC_CheckType, MVT::v4i32,
/* 80308*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80310*/        OPC_EmitConvertToTarget, 1,
/* 80312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN32q:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80328*/      /*Scope*/ 23, /*->80352*/
/* 80329*/        OPC_MoveParent,
/* 80330*/        OPC_CheckType, MVT::v2i32,
/* 80332*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80334*/        OPC_EmitConvertToTarget, 1,
/* 80336*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80339*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80342*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32d:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80352*/      0, /*End of Scope*/
/* 80353*/    /*Scope*/ 44, /*->80398*/
/* 80354*/      OPC_CheckChild0Type, MVT::v16i8,
/* 80356*/      OPC_RecordChild1, // #1 = $lane
/* 80357*/      OPC_MoveChild1,
/* 80358*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80361*/      OPC_MoveParent,
/* 80362*/      OPC_CheckType, MVT::v16i8,
/* 80364*/      OPC_EmitConvertToTarget, 1,
/* 80366*/      OPC_EmitNodeXForm, 14, 2, // DSubReg_i8_reg
/* 80369*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/* 80377*/      OPC_EmitConvertToTarget, 1,
/* 80379*/      OPC_EmitNodeXForm, 15, 5, // SubReg_i8_lane
/* 80382*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80385*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80388*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8q), 0,
                    MVT::v16i8, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvduplane:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VDUPLN8q:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src, (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i8_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 80398*/    /*Scope*/ 44, /*->80443*/
/* 80399*/      OPC_CheckChild0Type, MVT::v8i16,
/* 80401*/      OPC_RecordChild1, // #1 = $lane
/* 80402*/      OPC_MoveChild1,
/* 80403*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80406*/      OPC_MoveParent,
/* 80407*/      OPC_CheckType, MVT::v8i16,
/* 80409*/      OPC_EmitConvertToTarget, 1,
/* 80411*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/* 80414*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 80422*/      OPC_EmitConvertToTarget, 1,
/* 80424*/      OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/* 80427*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80430*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80433*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                    MVT::v8i16, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VDUPLN16q:{ *:[v8i16] } (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 80443*/    /*Scope*/ 44, /*->80488*/
/* 80444*/      OPC_CheckChild0Type, MVT::v4i32,
/* 80446*/      OPC_RecordChild1, // #1 = $lane
/* 80447*/      OPC_MoveChild1,
/* 80448*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80451*/      OPC_MoveParent,
/* 80452*/      OPC_CheckType, MVT::v4i32,
/* 80454*/      OPC_EmitConvertToTarget, 1,
/* 80456*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/* 80459*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 80467*/      OPC_EmitConvertToTarget, 1,
/* 80469*/      OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/* 80472*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80475*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80478*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                    MVT::v4i32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VDUPLN32q:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 80488*/    /*Scope*/ 50, /*->80539*/
/* 80489*/      OPC_CheckChild0Type, MVT::v2f32,
/* 80491*/      OPC_RecordChild1, // #1 = $lane
/* 80492*/      OPC_MoveChild1,
/* 80493*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80496*/      OPC_MoveParent,
/* 80497*/      OPC_SwitchType /*2 cases */, 18, MVT::v2f32,// ->80518
/* 80500*/        OPC_EmitConvertToTarget, 1,
/* 80502*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80505*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80508*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32d:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80518*/      /*SwitchType*/ 18, MVT::v4f32,// ->80538
/* 80520*/        OPC_EmitConvertToTarget, 1,
/* 80522*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80525*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80528*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (NEONvduplane:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32q:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 80538*/      0, // EndSwitchType
/* 80539*/    /*Scope*/ 44, /*->80584*/
/* 80540*/      OPC_CheckChild0Type, MVT::v4f32,
/* 80542*/      OPC_RecordChild1, // #1 = $lane
/* 80543*/      OPC_MoveChild1,
/* 80544*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80547*/      OPC_MoveParent,
/* 80548*/      OPC_CheckType, MVT::v4f32,
/* 80550*/      OPC_EmitConvertToTarget, 1,
/* 80552*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/* 80555*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 80563*/      OPC_EmitConvertToTarget, 1,
/* 80565*/      OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/* 80568*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80571*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80574*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                    MVT::v4f32, 4/*#Ops*/, 4, 6, 7, 8, 
                // Src: (NEONvduplane:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VDUPLN32q:{ *:[v4f32] } (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i32_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/* 80584*/    0, /*End of Scope*/
/* 80585*/  /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VORRIMM),// ->80677
/* 80588*/    OPC_RecordChild0, // #0 = $src
/* 80589*/    OPC_RecordChild1, // #1 = $SIMM
/* 80590*/    OPC_MoveChild1,
/* 80591*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 80594*/    OPC_MoveParent,
/* 80595*/    OPC_SwitchType /*4 cases */, 18, MVT::v4i16,// ->80616
/* 80598*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80600*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80603*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80606*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvorrImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VORRiv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM, DPR:{ *:[v4i16] }:$src)
/* 80616*/    /*SwitchType*/ 18, MVT::v2i32,// ->80636
/* 80618*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80620*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80623*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80626*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvorrImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VORRiv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM, DPR:{ *:[v2i32] }:$src)
/* 80636*/    /*SwitchType*/ 18, MVT::v8i16,// ->80656
/* 80638*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80640*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80643*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80646*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvorrImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VORRiv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM, QPR:{ *:[v8i16] }:$src)
/* 80656*/    /*SwitchType*/ 18, MVT::v4i32,// ->80676
/* 80658*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80660*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80663*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80666*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VORRiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvorrImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VORRiv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM, QPR:{ *:[v4i32] }:$src)
/* 80676*/    0, // EndSwitchType
/* 80677*/  /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VBICIMM),// ->80769
/* 80680*/    OPC_RecordChild0, // #0 = $src
/* 80681*/    OPC_RecordChild1, // #1 = $SIMM
/* 80682*/    OPC_MoveChild1,
/* 80683*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 80686*/    OPC_MoveParent,
/* 80687*/    OPC_SwitchType /*4 cases */, 18, MVT::v4i16,// ->80708
/* 80690*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80692*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80695*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80698*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvbicImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VBICiv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM, DPR:{ *:[v4i16] }:$src)
/* 80708*/    /*SwitchType*/ 18, MVT::v2i32,// ->80728
/* 80710*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80712*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80715*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80718*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvbicImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VBICiv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM, DPR:{ *:[v2i32] }:$src)
/* 80728*/    /*SwitchType*/ 18, MVT::v8i16,// ->80748
/* 80730*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80732*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80735*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80738*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvbicImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VBICiv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM, QPR:{ *:[v8i16] }:$src)
/* 80748*/    /*SwitchType*/ 18, MVT::v4i32,// ->80768
/* 80750*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80752*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80755*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80758*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (NEONvbicImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VBICiv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM, QPR:{ *:[v4i32] }:$src)
/* 80768*/    0, // EndSwitchType
/* 80769*/  /*SwitchOpcode*/ 84, TARGET_VAL(ARMISD::VMVNIMM),// ->80856
/* 80772*/    OPC_RecordChild0, // #0 = $SIMM
/* 80773*/    OPC_MoveChild0,
/* 80774*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 80777*/    OPC_MoveParent,
/* 80778*/    OPC_SwitchType /*4 cases */, 17, MVT::v4i16,// ->80798
/* 80781*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80783*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80786*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80789*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv4i16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmvnImm:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM)
/* 80798*/    /*SwitchType*/ 17, MVT::v8i16,// ->80817
/* 80800*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80802*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80805*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80808*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmvnImm:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM)
/* 80817*/    /*SwitchType*/ 17, MVT::v2i32,// ->80836
/* 80819*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80821*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80824*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80827*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv2i32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmvnImm:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM)
/* 80836*/    /*SwitchType*/ 17, MVT::v4i32,// ->80855
/* 80838*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80840*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80843*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80846*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmvnImm:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM)
/* 80855*/    0, // EndSwitchType
/* 80856*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VSHRs),// ->81045
/* 80860*/    OPC_RecordChild0, // #0 = $Vm
/* 80861*/    OPC_RecordChild1, // #1 = $SIMM
/* 80862*/    OPC_MoveChild1,
/* 80863*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80866*/    OPC_MoveParent,
/* 80867*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->80890
/* 80870*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80872*/      OPC_EmitConvertToTarget, 1,
/* 80874*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80877*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80880*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80890*/    /*SwitchType*/ 20, MVT::v4i16,// ->80912
/* 80892*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80894*/      OPC_EmitConvertToTarget, 1,
/* 80896*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80899*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80902*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80912*/    /*SwitchType*/ 20, MVT::v2i32,// ->80934
/* 80914*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80916*/      OPC_EmitConvertToTarget, 1,
/* 80918*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80921*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80924*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80934*/    /*SwitchType*/ 20, MVT::v1i64,// ->80956
/* 80936*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80938*/      OPC_EmitConvertToTarget, 1,
/* 80940*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80943*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80946*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80956*/    /*SwitchType*/ 20, MVT::v16i8,// ->80978
/* 80958*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80960*/      OPC_EmitConvertToTarget, 1,
/* 80962*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80965*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80968*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 80978*/    /*SwitchType*/ 20, MVT::v8i16,// ->81000
/* 80980*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80982*/      OPC_EmitConvertToTarget, 1,
/* 80984*/      OPC_EmitInteger, MVT::i32, 14, 
/* 80987*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80990*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81000*/    /*SwitchType*/ 20, MVT::v4i32,// ->81022
/* 81002*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81004*/      OPC_EmitConvertToTarget, 1,
/* 81006*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81009*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81012*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81022*/    /*SwitchType*/ 20, MVT::v2i64,// ->81044
/* 81024*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81026*/      OPC_EmitConvertToTarget, 1,
/* 81028*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81031*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81034*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81044*/    0, // EndSwitchType
/* 81045*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VSHRu),// ->81234
/* 81049*/    OPC_RecordChild0, // #0 = $Vm
/* 81050*/    OPC_RecordChild1, // #1 = $SIMM
/* 81051*/    OPC_MoveChild1,
/* 81052*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81055*/    OPC_MoveParent,
/* 81056*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->81079
/* 81059*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81061*/      OPC_EmitConvertToTarget, 1,
/* 81063*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81066*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81069*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81079*/    /*SwitchType*/ 20, MVT::v4i16,// ->81101
/* 81081*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81083*/      OPC_EmitConvertToTarget, 1,
/* 81085*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81088*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81091*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81101*/    /*SwitchType*/ 20, MVT::v2i32,// ->81123
/* 81103*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81105*/      OPC_EmitConvertToTarget, 1,
/* 81107*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81110*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81113*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81123*/    /*SwitchType*/ 20, MVT::v1i64,// ->81145
/* 81125*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81127*/      OPC_EmitConvertToTarget, 1,
/* 81129*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81132*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81135*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81145*/    /*SwitchType*/ 20, MVT::v16i8,// ->81167
/* 81147*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81149*/      OPC_EmitConvertToTarget, 1,
/* 81151*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81154*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81157*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81167*/    /*SwitchType*/ 20, MVT::v8i16,// ->81189
/* 81169*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81171*/      OPC_EmitConvertToTarget, 1,
/* 81173*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81176*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81179*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81189*/    /*SwitchType*/ 20, MVT::v4i32,// ->81211
/* 81191*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81193*/      OPC_EmitConvertToTarget, 1,
/* 81195*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81198*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81201*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81211*/    /*SwitchType*/ 20, MVT::v2i64,// ->81233
/* 81213*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81215*/      OPC_EmitConvertToTarget, 1,
/* 81217*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81220*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81223*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSHRuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81233*/    0, // EndSwitchType
/* 81234*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VRSHRs),// ->81423
/* 81238*/    OPC_RecordChild0, // #0 = $Vm
/* 81239*/    OPC_RecordChild1, // #1 = $SIMM
/* 81240*/    OPC_MoveChild1,
/* 81241*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81244*/    OPC_MoveParent,
/* 81245*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->81268
/* 81248*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81250*/      OPC_EmitConvertToTarget, 1,
/* 81252*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81255*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81258*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81268*/    /*SwitchType*/ 20, MVT::v4i16,// ->81290
/* 81270*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81272*/      OPC_EmitConvertToTarget, 1,
/* 81274*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81277*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81280*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81290*/    /*SwitchType*/ 20, MVT::v2i32,// ->81312
/* 81292*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81294*/      OPC_EmitConvertToTarget, 1,
/* 81296*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81299*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81302*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81312*/    /*SwitchType*/ 20, MVT::v1i64,// ->81334
/* 81314*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81316*/      OPC_EmitConvertToTarget, 1,
/* 81318*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81321*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81324*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81334*/    /*SwitchType*/ 20, MVT::v16i8,// ->81356
/* 81336*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81338*/      OPC_EmitConvertToTarget, 1,
/* 81340*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81343*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81346*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81356*/    /*SwitchType*/ 20, MVT::v8i16,// ->81378
/* 81358*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81360*/      OPC_EmitConvertToTarget, 1,
/* 81362*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81365*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81368*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81378*/    /*SwitchType*/ 20, MVT::v4i32,// ->81400
/* 81380*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81382*/      OPC_EmitConvertToTarget, 1,
/* 81384*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81387*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81390*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81400*/    /*SwitchType*/ 20, MVT::v2i64,// ->81422
/* 81402*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81404*/      OPC_EmitConvertToTarget, 1,
/* 81406*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81409*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81412*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrs:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81422*/    0, // EndSwitchType
/* 81423*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VRSHRu),// ->81612
/* 81427*/    OPC_RecordChild0, // #0 = $Vm
/* 81428*/    OPC_RecordChild1, // #1 = $SIMM
/* 81429*/    OPC_MoveChild1,
/* 81430*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81433*/    OPC_MoveParent,
/* 81434*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->81457
/* 81437*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81439*/      OPC_EmitConvertToTarget, 1,
/* 81441*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81444*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81447*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81457*/    /*SwitchType*/ 20, MVT::v4i16,// ->81479
/* 81459*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81461*/      OPC_EmitConvertToTarget, 1,
/* 81463*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81466*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81469*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81479*/    /*SwitchType*/ 20, MVT::v2i32,// ->81501
/* 81481*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81483*/      OPC_EmitConvertToTarget, 1,
/* 81485*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81488*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81491*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81501*/    /*SwitchType*/ 20, MVT::v1i64,// ->81523
/* 81503*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81505*/      OPC_EmitConvertToTarget, 1,
/* 81507*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81510*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81513*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81523*/    /*SwitchType*/ 20, MVT::v16i8,// ->81545
/* 81525*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81527*/      OPC_EmitConvertToTarget, 1,
/* 81529*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81532*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81535*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81545*/    /*SwitchType*/ 20, MVT::v8i16,// ->81567
/* 81547*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81549*/      OPC_EmitConvertToTarget, 1,
/* 81551*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81554*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81557*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81567*/    /*SwitchType*/ 20, MVT::v4i32,// ->81589
/* 81569*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81571*/      OPC_EmitConvertToTarget, 1,
/* 81573*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81576*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81579*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81589*/    /*SwitchType*/ 20, MVT::v2i64,// ->81611
/* 81591*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81593*/      OPC_EmitConvertToTarget, 1,
/* 81595*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81598*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81601*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshru:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81611*/    0, // EndSwitchType
/* 81612*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLs),// ->81801
/* 81616*/    OPC_RecordChild0, // #0 = $Vm
/* 81617*/    OPC_RecordChild1, // #1 = $SIMM
/* 81618*/    OPC_MoveChild1,
/* 81619*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81622*/    OPC_MoveParent,
/* 81623*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->81646
/* 81626*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81628*/      OPC_EmitConvertToTarget, 1,
/* 81630*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81633*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81636*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81646*/    /*SwitchType*/ 20, MVT::v4i16,// ->81668
/* 81648*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81650*/      OPC_EmitConvertToTarget, 1,
/* 81652*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81655*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81658*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81668*/    /*SwitchType*/ 20, MVT::v2i32,// ->81690
/* 81670*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81672*/      OPC_EmitConvertToTarget, 1,
/* 81674*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81677*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81680*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81690*/    /*SwitchType*/ 20, MVT::v1i64,// ->81712
/* 81692*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81694*/      OPC_EmitConvertToTarget, 1,
/* 81696*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81699*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81702*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81712*/    /*SwitchType*/ 20, MVT::v16i8,// ->81734
/* 81714*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81716*/      OPC_EmitConvertToTarget, 1,
/* 81718*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81721*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81724*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81734*/    /*SwitchType*/ 20, MVT::v8i16,// ->81756
/* 81736*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81738*/      OPC_EmitConvertToTarget, 1,
/* 81740*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81743*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81746*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81756*/    /*SwitchType*/ 20, MVT::v4i32,// ->81778
/* 81758*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81760*/      OPC_EmitConvertToTarget, 1,
/* 81762*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81765*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81768*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81778*/    /*SwitchType*/ 20, MVT::v2i64,// ->81800
/* 81780*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81782*/      OPC_EmitConvertToTarget, 1,
/* 81784*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81787*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81790*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshls:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81800*/    0, // EndSwitchType
/* 81801*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLu),// ->81990
/* 81805*/    OPC_RecordChild0, // #0 = $Vm
/* 81806*/    OPC_RecordChild1, // #1 = $SIMM
/* 81807*/    OPC_MoveChild1,
/* 81808*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81811*/    OPC_MoveParent,
/* 81812*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->81835
/* 81815*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81817*/      OPC_EmitConvertToTarget, 1,
/* 81819*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81822*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81825*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81835*/    /*SwitchType*/ 20, MVT::v4i16,// ->81857
/* 81837*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81839*/      OPC_EmitConvertToTarget, 1,
/* 81841*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81844*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81847*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81857*/    /*SwitchType*/ 20, MVT::v2i32,// ->81879
/* 81859*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81861*/      OPC_EmitConvertToTarget, 1,
/* 81863*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81866*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81869*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81879*/    /*SwitchType*/ 20, MVT::v1i64,// ->81901
/* 81881*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81883*/      OPC_EmitConvertToTarget, 1,
/* 81885*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81888*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81891*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81901*/    /*SwitchType*/ 20, MVT::v16i8,// ->81923
/* 81903*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81905*/      OPC_EmitConvertToTarget, 1,
/* 81907*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81910*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81913*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81923*/    /*SwitchType*/ 20, MVT::v8i16,// ->81945
/* 81925*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81927*/      OPC_EmitConvertToTarget, 1,
/* 81929*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81932*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81935*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81945*/    /*SwitchType*/ 20, MVT::v4i32,// ->81967
/* 81947*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81949*/      OPC_EmitConvertToTarget, 1,
/* 81951*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81954*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81957*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81967*/    /*SwitchType*/ 20, MVT::v2i64,// ->81989
/* 81969*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 81971*/      OPC_EmitConvertToTarget, 1,
/* 81973*/      OPC_EmitInteger, MVT::i32, 14, 
/* 81976*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81979*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlu:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 81989*/    0, // EndSwitchType
/* 81990*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLsu),// ->82179
/* 81994*/    OPC_RecordChild0, // #0 = $Vm
/* 81995*/    OPC_RecordChild1, // #1 = $SIMM
/* 81996*/    OPC_MoveChild1,
/* 81997*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82000*/    OPC_MoveParent,
/* 82001*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->82024
/* 82004*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82006*/      OPC_EmitConvertToTarget, 1,
/* 82008*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82011*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82014*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82024*/    /*SwitchType*/ 20, MVT::v4i16,// ->82046
/* 82026*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82028*/      OPC_EmitConvertToTarget, 1,
/* 82030*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82033*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82036*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82046*/    /*SwitchType*/ 20, MVT::v2i32,// ->82068
/* 82048*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82050*/      OPC_EmitConvertToTarget, 1,
/* 82052*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82055*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82058*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82068*/    /*SwitchType*/ 20, MVT::v1i64,// ->82090
/* 82070*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82072*/      OPC_EmitConvertToTarget, 1,
/* 82074*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82077*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82080*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82090*/    /*SwitchType*/ 20, MVT::v16i8,// ->82112
/* 82092*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82094*/      OPC_EmitConvertToTarget, 1,
/* 82096*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82099*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82102*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82112*/    /*SwitchType*/ 20, MVT::v8i16,// ->82134
/* 82114*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82116*/      OPC_EmitConvertToTarget, 1,
/* 82118*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82121*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82124*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82134*/    /*SwitchType*/ 20, MVT::v4i32,// ->82156
/* 82136*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82138*/      OPC_EmitConvertToTarget, 1,
/* 82140*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82143*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82146*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82156*/    /*SwitchType*/ 20, MVT::v2i64,// ->82178
/* 82158*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82160*/      OPC_EmitConvertToTarget, 1,
/* 82162*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82165*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82168*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsu:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82178*/    0, // EndSwitchType
/* 82179*/  /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSLI),// ->82377
/* 82183*/    OPC_RecordChild0, // #0 = $src1
/* 82184*/    OPC_RecordChild1, // #1 = $Vm
/* 82185*/    OPC_RecordChild2, // #2 = $SIMM
/* 82186*/    OPC_MoveChild2,
/* 82187*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82190*/    OPC_MoveParent,
/* 82191*/    OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->82215
/* 82194*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82196*/      OPC_EmitConvertToTarget, 2,
/* 82198*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82201*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82204*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv8i8), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82215*/    /*SwitchType*/ 21, MVT::v4i16,// ->82238
/* 82217*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82219*/      OPC_EmitConvertToTarget, 2,
/* 82221*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82224*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82227*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv4i16), 0,
                    MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82238*/    /*SwitchType*/ 21, MVT::v2i32,// ->82261
/* 82240*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82242*/      OPC_EmitConvertToTarget, 2,
/* 82244*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82247*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82250*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv2i32), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82261*/    /*SwitchType*/ 21, MVT::v1i64,// ->82284
/* 82263*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82265*/      OPC_EmitConvertToTarget, 2,
/* 82267*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82270*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82273*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv1i64), 0,
                    MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82284*/    /*SwitchType*/ 21, MVT::v16i8,// ->82307
/* 82286*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82288*/      OPC_EmitConvertToTarget, 2,
/* 82290*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82293*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82296*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv16i8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82307*/    /*SwitchType*/ 21, MVT::v8i16,// ->82330
/* 82309*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82311*/      OPC_EmitConvertToTarget, 2,
/* 82313*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82316*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82319*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv8i16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82330*/    /*SwitchType*/ 21, MVT::v4i32,// ->82353
/* 82332*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82334*/      OPC_EmitConvertToTarget, 2,
/* 82336*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82339*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82342*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv4i32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82353*/    /*SwitchType*/ 21, MVT::v2i64,// ->82376
/* 82355*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82357*/      OPC_EmitConvertToTarget, 2,
/* 82359*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82362*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82365*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv2i64), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsli:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82376*/    0, // EndSwitchType
/* 82377*/  /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSRI),// ->82575
/* 82381*/    OPC_RecordChild0, // #0 = $src1
/* 82382*/    OPC_RecordChild1, // #1 = $Vm
/* 82383*/    OPC_RecordChild2, // #2 = $SIMM
/* 82384*/    OPC_MoveChild2,
/* 82385*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82388*/    OPC_MoveParent,
/* 82389*/    OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->82413
/* 82392*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82394*/      OPC_EmitConvertToTarget, 2,
/* 82396*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82399*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82402*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv8i8), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82413*/    /*SwitchType*/ 21, MVT::v4i16,// ->82436
/* 82415*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82417*/      OPC_EmitConvertToTarget, 2,
/* 82419*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82422*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82425*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv4i16), 0,
                    MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82436*/    /*SwitchType*/ 21, MVT::v2i32,// ->82459
/* 82438*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82440*/      OPC_EmitConvertToTarget, 2,
/* 82442*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82445*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82448*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv2i32), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82459*/    /*SwitchType*/ 21, MVT::v1i64,// ->82482
/* 82461*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82463*/      OPC_EmitConvertToTarget, 2,
/* 82465*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82468*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82471*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv1i64), 0,
                    MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82482*/    /*SwitchType*/ 21, MVT::v16i8,// ->82505
/* 82484*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82486*/      OPC_EmitConvertToTarget, 2,
/* 82488*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82491*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82494*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv16i8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82505*/    /*SwitchType*/ 21, MVT::v8i16,// ->82528
/* 82507*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82509*/      OPC_EmitConvertToTarget, 2,
/* 82511*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82514*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82517*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv8i16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82528*/    /*SwitchType*/ 21, MVT::v4i32,// ->82551
/* 82530*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82532*/      OPC_EmitConvertToTarget, 2,
/* 82534*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82537*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82540*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv4i32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82551*/    /*SwitchType*/ 21, MVT::v2i64,// ->82574
/* 82553*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82555*/      OPC_EmitConvertToTarget, 2,
/* 82557*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82560*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82563*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv2i64), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsri:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 82574*/    0, // EndSwitchType
/* 82575*/  /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->82712
/* 82579*/    OPC_RecordChild0, // #0 = $src
/* 82580*/    OPC_Scope, 25, /*->82607*/ // 5 children in Scope
/* 82582*/      OPC_CheckChild0Type, MVT::v16i8,
/* 82584*/      OPC_RecordChild1, // #1 = $start
/* 82585*/      OPC_MoveChild1,
/* 82586*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82589*/      OPC_CheckType, MVT::i32,
/* 82591*/      OPC_MoveParent,
/* 82592*/      OPC_CheckType, MVT::v8i8,
/* 82594*/      OPC_EmitConvertToTarget, 1,
/* 82596*/      OPC_EmitNodeXForm, 14, 2, // DSubReg_i8_reg
/* 82599*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v8i8] } QPR:{ *:[v16i8] }:$src, (DSubReg_i8_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/* 82607*/    /*Scope*/ 25, /*->82633*/
/* 82608*/      OPC_CheckChild0Type, MVT::v8i16,
/* 82610*/      OPC_RecordChild1, // #1 = $start
/* 82611*/      OPC_MoveChild1,
/* 82612*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82615*/      OPC_CheckType, MVT::i32,
/* 82617*/      OPC_MoveParent,
/* 82618*/      OPC_CheckType, MVT::v4i16,
/* 82620*/      OPC_EmitConvertToTarget, 1,
/* 82622*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/* 82625*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8i16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/* 82633*/    /*Scope*/ 25, /*->82659*/
/* 82634*/      OPC_CheckChild0Type, MVT::v4i32,
/* 82636*/      OPC_RecordChild1, // #1 = $start
/* 82637*/      OPC_MoveChild1,
/* 82638*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82641*/      OPC_CheckType, MVT::i32,
/* 82643*/      OPC_MoveParent,
/* 82644*/      OPC_CheckType, MVT::v2i32,
/* 82646*/      OPC_EmitConvertToTarget, 1,
/* 82648*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/* 82651*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } QPR:{ *:[v4i32] }:$src, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/* 82659*/    /*Scope*/ 25, /*->82685*/
/* 82660*/      OPC_CheckChild0Type, MVT::v2i64,
/* 82662*/      OPC_RecordChild1, // #1 = $start
/* 82663*/      OPC_MoveChild1,
/* 82664*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82667*/      OPC_CheckType, MVT::i32,
/* 82669*/      OPC_MoveParent,
/* 82670*/      OPC_CheckType, MVT::v1i64,
/* 82672*/      OPC_EmitConvertToTarget, 1,
/* 82674*/      OPC_EmitNodeXForm, 17, 2, // DSubReg_f64_reg
/* 82677*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v1i64] } QPR:{ *:[v2i64] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v1i64] } QPR:{ *:[v2i64] }:$src, (DSubReg_f64_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/* 82685*/    /*Scope*/ 25, /*->82711*/
/* 82686*/      OPC_CheckChild0Type, MVT::v4f32,
/* 82688*/      OPC_RecordChild1, // #1 = $start
/* 82689*/      OPC_MoveChild1,
/* 82690*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82693*/      OPC_CheckType, MVT::i32,
/* 82695*/      OPC_MoveParent,
/* 82696*/      OPC_CheckType, MVT::v2f32,
/* 82698*/      OPC_EmitConvertToTarget, 1,
/* 82700*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/* 82703*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } QPR:{ *:[v4f32] }:$src, (DSubReg_i32_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/* 82711*/    0, /*End of Scope*/
/* 82712*/  /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(ARMISD::VEXT),// ->82929
/* 82716*/    OPC_RecordChild0, // #0 = $Vn
/* 82717*/    OPC_RecordChild1, // #1 = $Vm
/* 82718*/    OPC_RecordChild2, // #2 = $index
/* 82719*/    OPC_MoveChild2,
/* 82720*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82723*/    OPC_MoveParent,
/* 82724*/    OPC_SwitchType /*9 cases */, 21, MVT::v8i8,// ->82748
/* 82727*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82729*/      OPC_EmitConvertToTarget, 2,
/* 82731*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82734*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82737*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTd8), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTd8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82748*/    /*SwitchType*/ 21, MVT::v4i16,// ->82771
/* 82750*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82752*/      OPC_EmitConvertToTarget, 2,
/* 82754*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82757*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82760*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTd16), 0,
                    MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTd16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82771*/    /*SwitchType*/ 21, MVT::v2i32,// ->82794
/* 82773*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82775*/      OPC_EmitConvertToTarget, 2,
/* 82777*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82780*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82783*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTd32), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTd32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82794*/    /*SwitchType*/ 21, MVT::v16i8,// ->82817
/* 82796*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82798*/      OPC_EmitConvertToTarget, 2,
/* 82800*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82803*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82806*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82817*/    /*SwitchType*/ 21, MVT::v8i16,// ->82840
/* 82819*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82821*/      OPC_EmitConvertToTarget, 2,
/* 82823*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82826*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82829*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82840*/    /*SwitchType*/ 21, MVT::v4i32,// ->82863
/* 82842*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82844*/      OPC_EmitConvertToTarget, 2,
/* 82846*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82849*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82852*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82863*/    /*SwitchType*/ 21, MVT::v2i64,// ->82886
/* 82865*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82867*/      OPC_EmitConvertToTarget, 2,
/* 82869*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82872*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82875*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq64), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82886*/    /*SwitchType*/ 19, MVT::v2f32,// ->82907
/* 82888*/      OPC_EmitConvertToTarget, 2,
/* 82890*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82893*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82896*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTd32), 0,
                    MVT::v2f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTd32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82907*/    /*SwitchType*/ 19, MVT::v4f32,// ->82928
/* 82909*/      OPC_EmitConvertToTarget, 2,
/* 82911*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82914*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82917*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq32), 0,
                    MVT::v4f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$index)
/* 82928*/    0, // EndSwitchType
/* 82929*/  /*SwitchOpcode*/ 113|128,1/*241*/, TARGET_VAL(ARMISD::VCEQ),// ->83174
/* 82933*/    OPC_RecordChild0, // #0 = $Vn
/* 82934*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->82958
/* 82937*/      OPC_CheckChild0Type, MVT::v8i8,
/* 82939*/      OPC_RecordChild1, // #1 = $Vm
/* 82940*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82942*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82945*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82948*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvceq:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCEQv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 82958*/    /*SwitchType*/ 46, MVT::v4i16,// ->83006
/* 82960*/      OPC_Scope, 21, /*->82983*/ // 2 children in Scope
/* 82962*/        OPC_CheckChild0Type, MVT::v4i16,
/* 82964*/        OPC_RecordChild1, // #1 = $Vm
/* 82965*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 82967*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82970*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82973*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 82983*/      /*Scope*/ 21, /*->83005*/
/* 82984*/        OPC_CheckChild0Type, MVT::v4f16,
/* 82986*/        OPC_RecordChild1, // #1 = $Vm
/* 82987*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 82989*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82992*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82995*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 83005*/      0, /*End of Scope*/
/* 83006*/    /*SwitchType*/ 46, MVT::v2i32,// ->83054
/* 83008*/      OPC_Scope, 21, /*->83031*/ // 2 children in Scope
/* 83010*/        OPC_CheckChild0Type, MVT::v2i32,
/* 83012*/        OPC_RecordChild1, // #1 = $Vm
/* 83013*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83015*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83018*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83021*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 83031*/      /*Scope*/ 21, /*->83053*/
/* 83032*/        OPC_CheckChild0Type, MVT::v2f32,
/* 83034*/        OPC_RecordChild1, // #1 = $Vm
/* 83035*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83037*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83040*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83043*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 83053*/      0, /*End of Scope*/
/* 83054*/    /*SwitchType*/ 21, MVT::v16i8,// ->83077
/* 83056*/      OPC_CheckChild0Type, MVT::v16i8,
/* 83058*/      OPC_RecordChild1, // #1 = $Vm
/* 83059*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83061*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83064*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83067*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvceq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCEQv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 83077*/    /*SwitchType*/ 46, MVT::v8i16,// ->83125
/* 83079*/      OPC_Scope, 21, /*->83102*/ // 2 children in Scope
/* 83081*/        OPC_CheckChild0Type, MVT::v8i16,
/* 83083*/        OPC_RecordChild1, // #1 = $Vm
/* 83084*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83086*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83089*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83092*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 83102*/      /*Scope*/ 21, /*->83124*/
/* 83103*/        OPC_CheckChild0Type, MVT::v8f16,
/* 83105*/        OPC_RecordChild1, // #1 = $Vm
/* 83106*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83108*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83111*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83114*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQhq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 83124*/      0, /*End of Scope*/
/* 83125*/    /*SwitchType*/ 46, MVT::v4i32,// ->83173
/* 83127*/      OPC_Scope, 21, /*->83150*/ // 2 children in Scope
/* 83129*/        OPC_CheckChild0Type, MVT::v4i32,
/* 83131*/        OPC_RecordChild1, // #1 = $Vm
/* 83132*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83134*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83137*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83140*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 83150*/      /*Scope*/ 21, /*->83172*/
/* 83151*/        OPC_CheckChild0Type, MVT::v4f32,
/* 83153*/        OPC_RecordChild1, // #1 = $Vm
/* 83154*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83156*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83159*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83162*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvceq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 83172*/      0, /*End of Scope*/
/* 83173*/    0, // EndSwitchType
/* 83174*/  /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ARMISD::VCEQZ),// ->83399
/* 83178*/    OPC_RecordChild0, // #0 = $Vm
/* 83179*/    OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->83201
/* 83182*/      OPC_CheckChild0Type, MVT::v8i8,
/* 83184*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83186*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83189*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83192*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvceqz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCEQzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 83201*/    /*SwitchType*/ 42, MVT::v4i16,// ->83245
/* 83203*/      OPC_Scope, 19, /*->83224*/ // 2 children in Scope
/* 83205*/        OPC_CheckChild0Type, MVT::v4i16,
/* 83207*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83209*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83212*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83215*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 83224*/      /*Scope*/ 19, /*->83244*/
/* 83225*/        OPC_CheckChild0Type, MVT::v4f16,
/* 83227*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83229*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83232*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83235*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 83244*/      0, /*End of Scope*/
/* 83245*/    /*SwitchType*/ 42, MVT::v2i32,// ->83289
/* 83247*/      OPC_Scope, 19, /*->83268*/ // 2 children in Scope
/* 83249*/        OPC_CheckChild0Type, MVT::v2i32,
/* 83251*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83253*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83256*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83259*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 83268*/      /*Scope*/ 19, /*->83288*/
/* 83269*/        OPC_CheckChild0Type, MVT::v2f32,
/* 83271*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83273*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83276*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83279*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 83288*/      0, /*End of Scope*/
/* 83289*/    /*SwitchType*/ 19, MVT::v16i8,// ->83310
/* 83291*/      OPC_CheckChild0Type, MVT::v16i8,
/* 83293*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83295*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83298*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83301*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvceqz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCEQzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 83310*/    /*SwitchType*/ 42, MVT::v8i16,// ->83354
/* 83312*/      OPC_Scope, 19, /*->83333*/ // 2 children in Scope
/* 83314*/        OPC_CheckChild0Type, MVT::v8i16,
/* 83316*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83318*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83321*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83324*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 83333*/      /*Scope*/ 19, /*->83353*/
/* 83334*/        OPC_CheckChild0Type, MVT::v8f16,
/* 83336*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83338*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83341*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83344*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8f16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 83353*/      0, /*End of Scope*/
/* 83354*/    /*SwitchType*/ 42, MVT::v4i32,// ->83398
/* 83356*/      OPC_Scope, 19, /*->83377*/ // 2 children in Scope
/* 83358*/        OPC_CheckChild0Type, MVT::v4i32,
/* 83360*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83362*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83365*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83368*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 83377*/      /*Scope*/ 19, /*->83397*/
/* 83378*/        OPC_CheckChild0Type, MVT::v4f32,
/* 83380*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83382*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83385*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83388*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4f32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvceqz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCEQzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 83397*/      0, /*End of Scope*/
/* 83398*/    0, // EndSwitchType
/* 83399*/  /*SwitchOpcode*/ 113|128,1/*241*/, TARGET_VAL(ARMISD::VCGE),// ->83644
/* 83403*/    OPC_RecordChild0, // #0 = $Vn
/* 83404*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->83428
/* 83407*/      OPC_CheckChild0Type, MVT::v8i8,
/* 83409*/      OPC_RecordChild1, // #1 = $Vm
/* 83410*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83412*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83415*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83418*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcge:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 83428*/    /*SwitchType*/ 46, MVT::v4i16,// ->83476
/* 83430*/      OPC_Scope, 21, /*->83453*/ // 2 children in Scope
/* 83432*/        OPC_CheckChild0Type, MVT::v4i16,
/* 83434*/        OPC_RecordChild1, // #1 = $Vm
/* 83435*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83437*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83440*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83443*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 83453*/      /*Scope*/ 21, /*->83475*/
/* 83454*/        OPC_CheckChild0Type, MVT::v4f16,
/* 83456*/        OPC_RecordChild1, // #1 = $Vm
/* 83457*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83459*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83462*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83465*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 83475*/      0, /*End of Scope*/
/* 83476*/    /*SwitchType*/ 46, MVT::v2i32,// ->83524
/* 83478*/      OPC_Scope, 21, /*->83501*/ // 2 children in Scope
/* 83480*/        OPC_CheckChild0Type, MVT::v2i32,
/* 83482*/        OPC_RecordChild1, // #1 = $Vm
/* 83483*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83485*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83488*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83491*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 83501*/      /*Scope*/ 21, /*->83523*/
/* 83502*/        OPC_CheckChild0Type, MVT::v2f32,
/* 83504*/        OPC_RecordChild1, // #1 = $Vm
/* 83505*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83507*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83510*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83513*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 83523*/      0, /*End of Scope*/
/* 83524*/    /*SwitchType*/ 21, MVT::v16i8,// ->83547
/* 83526*/      OPC_CheckChild0Type, MVT::v16i8,
/* 83528*/      OPC_RecordChild1, // #1 = $Vm
/* 83529*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83531*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83534*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83537*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcge:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 83547*/    /*SwitchType*/ 46, MVT::v8i16,// ->83595
/* 83549*/      OPC_Scope, 21, /*->83572*/ // 2 children in Scope
/* 83551*/        OPC_CheckChild0Type, MVT::v8i16,
/* 83553*/        OPC_RecordChild1, // #1 = $Vm
/* 83554*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83556*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83562*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 83572*/      /*Scope*/ 21, /*->83594*/
/* 83573*/        OPC_CheckChild0Type, MVT::v8f16,
/* 83575*/        OPC_RecordChild1, // #1 = $Vm
/* 83576*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83578*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83581*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83584*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEhq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 83594*/      0, /*End of Scope*/
/* 83595*/    /*SwitchType*/ 46, MVT::v4i32,// ->83643
/* 83597*/      OPC_Scope, 21, /*->83620*/ // 2 children in Scope
/* 83599*/        OPC_CheckChild0Type, MVT::v4i32,
/* 83601*/        OPC_RecordChild1, // #1 = $Vm
/* 83602*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83604*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83607*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83610*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 83620*/      /*Scope*/ 21, /*->83642*/
/* 83621*/        OPC_CheckChild0Type, MVT::v4f32,
/* 83623*/        OPC_RecordChild1, // #1 = $Vm
/* 83624*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83626*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83629*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83632*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcge:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 83642*/      0, /*End of Scope*/
/* 83643*/    0, // EndSwitchType
/* 83644*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ARMISD::VCGEU),// ->83789
/* 83648*/    OPC_RecordChild0, // #0 = $Vn
/* 83649*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->83673
/* 83652*/      OPC_CheckChild0Type, MVT::v8i8,
/* 83654*/      OPC_RecordChild1, // #1 = $Vm
/* 83655*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83657*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83660*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83663*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 83673*/    /*SwitchType*/ 21, MVT::v4i16,// ->83696
/* 83675*/      OPC_CheckChild0Type, MVT::v4i16,
/* 83677*/      OPC_RecordChild1, // #1 = $Vm
/* 83678*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83680*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83683*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83686*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 83696*/    /*SwitchType*/ 21, MVT::v2i32,// ->83719
/* 83698*/      OPC_CheckChild0Type, MVT::v2i32,
/* 83700*/      OPC_RecordChild1, // #1 = $Vm
/* 83701*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83703*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83706*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83709*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 83719*/    /*SwitchType*/ 21, MVT::v16i8,// ->83742
/* 83721*/      OPC_CheckChild0Type, MVT::v16i8,
/* 83723*/      OPC_RecordChild1, // #1 = $Vm
/* 83724*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83726*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83729*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83732*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 83742*/    /*SwitchType*/ 21, MVT::v8i16,// ->83765
/* 83744*/      OPC_CheckChild0Type, MVT::v8i16,
/* 83746*/      OPC_RecordChild1, // #1 = $Vm
/* 83747*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83749*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83752*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83755*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 83765*/    /*SwitchType*/ 21, MVT::v4i32,// ->83788
/* 83767*/      OPC_CheckChild0Type, MVT::v4i32,
/* 83769*/      OPC_RecordChild1, // #1 = $Vm
/* 83770*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83772*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83775*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83778*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgeu:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VCGEuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 83788*/    0, // EndSwitchType
/* 83789*/  /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ARMISD::VCGEZ),// ->84014
/* 83793*/    OPC_RecordChild0, // #0 = $Vm
/* 83794*/    OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->83816
/* 83797*/      OPC_CheckChild0Type, MVT::v8i8,
/* 83799*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83801*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83804*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83807*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcgez:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 83816*/    /*SwitchType*/ 42, MVT::v4i16,// ->83860
/* 83818*/      OPC_Scope, 19, /*->83839*/ // 2 children in Scope
/* 83820*/        OPC_CheckChild0Type, MVT::v4i16,
/* 83822*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83824*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83827*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83830*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 83839*/      /*Scope*/ 19, /*->83859*/
/* 83840*/        OPC_CheckChild0Type, MVT::v4f16,
/* 83842*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83844*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83847*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83850*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 83859*/      0, /*End of Scope*/
/* 83860*/    /*SwitchType*/ 42, MVT::v2i32,// ->83904
/* 83862*/      OPC_Scope, 19, /*->83883*/ // 2 children in Scope
/* 83864*/        OPC_CheckChild0Type, MVT::v2i32,
/* 83866*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83868*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83871*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83874*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 83883*/      /*Scope*/ 19, /*->83903*/
/* 83884*/        OPC_CheckChild0Type, MVT::v2f32,
/* 83886*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83888*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83891*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83894*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 83903*/      0, /*End of Scope*/
/* 83904*/    /*SwitchType*/ 19, MVT::v16i8,// ->83925
/* 83906*/      OPC_CheckChild0Type, MVT::v16i8,
/* 83908*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83910*/      OPC_EmitInteger, MVT::i32, 14, 
/* 83913*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83916*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcgez:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGEzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 83925*/    /*SwitchType*/ 42, MVT::v8i16,// ->83969
/* 83927*/      OPC_Scope, 19, /*->83948*/ // 2 children in Scope
/* 83929*/        OPC_CheckChild0Type, MVT::v8i16,
/* 83931*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83939*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 83948*/      /*Scope*/ 19, /*->83968*/
/* 83949*/        OPC_CheckChild0Type, MVT::v8f16,
/* 83951*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 83953*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83956*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83959*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8f16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 83968*/      0, /*End of Scope*/
/* 83969*/    /*SwitchType*/ 42, MVT::v4i32,// ->84013
/* 83971*/      OPC_Scope, 19, /*->83992*/ // 2 children in Scope
/* 83973*/        OPC_CheckChild0Type, MVT::v4i32,
/* 83975*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83977*/        OPC_EmitInteger, MVT::i32, 14, 
/* 83980*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83983*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 83992*/      /*Scope*/ 19, /*->84012*/
/* 83993*/        OPC_CheckChild0Type, MVT::v4f32,
/* 83995*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 83997*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84000*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84003*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4f32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgez:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGEzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 84012*/      0, /*End of Scope*/
/* 84013*/    0, // EndSwitchType
/* 84014*/  /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ARMISD::VCLEZ),// ->84239
/* 84018*/    OPC_RecordChild0, // #0 = $Vm
/* 84019*/    OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->84041
/* 84022*/      OPC_CheckChild0Type, MVT::v8i8,
/* 84024*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84026*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84029*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84032*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvclez:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCLEzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 84041*/    /*SwitchType*/ 42, MVT::v4i16,// ->84085
/* 84043*/      OPC_Scope, 19, /*->84064*/ // 2 children in Scope
/* 84045*/        OPC_CheckChild0Type, MVT::v4i16,
/* 84047*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84049*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84052*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84055*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 84064*/      /*Scope*/ 19, /*->84084*/
/* 84065*/        OPC_CheckChild0Type, MVT::v4f16,
/* 84067*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84069*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84072*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84075*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 84084*/      0, /*End of Scope*/
/* 84085*/    /*SwitchType*/ 42, MVT::v2i32,// ->84129
/* 84087*/      OPC_Scope, 19, /*->84108*/ // 2 children in Scope
/* 84089*/        OPC_CheckChild0Type, MVT::v2i32,
/* 84091*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84093*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84096*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84099*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 84108*/      /*Scope*/ 19, /*->84128*/
/* 84109*/        OPC_CheckChild0Type, MVT::v2f32,
/* 84111*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84113*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84116*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84119*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 84128*/      0, /*End of Scope*/
/* 84129*/    /*SwitchType*/ 19, MVT::v16i8,// ->84150
/* 84131*/      OPC_CheckChild0Type, MVT::v16i8,
/* 84133*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84135*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84138*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84141*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvclez:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCLEzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 84150*/    /*SwitchType*/ 42, MVT::v8i16,// ->84194
/* 84152*/      OPC_Scope, 19, /*->84173*/ // 2 children in Scope
/* 84154*/        OPC_CheckChild0Type, MVT::v8i16,
/* 84156*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84158*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84161*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84164*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 84173*/      /*Scope*/ 19, /*->84193*/
/* 84174*/        OPC_CheckChild0Type, MVT::v8f16,
/* 84176*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84184*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8f16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 84193*/      0, /*End of Scope*/
/* 84194*/    /*SwitchType*/ 42, MVT::v4i32,// ->84238
/* 84196*/      OPC_Scope, 19, /*->84217*/ // 2 children in Scope
/* 84198*/        OPC_CheckChild0Type, MVT::v4i32,
/* 84200*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84202*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84205*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84208*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 84217*/      /*Scope*/ 19, /*->84237*/
/* 84218*/        OPC_CheckChild0Type, MVT::v4f32,
/* 84220*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4f32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvclez:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCLEzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 84237*/      0, /*End of Scope*/
/* 84238*/    0, // EndSwitchType
/* 84239*/  /*SwitchOpcode*/ 113|128,1/*241*/, TARGET_VAL(ARMISD::VCGT),// ->84484
/* 84243*/    OPC_RecordChild0, // #0 = $Vn
/* 84244*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->84268
/* 84247*/      OPC_CheckChild0Type, MVT::v8i8,
/* 84249*/      OPC_RecordChild1, // #1 = $Vm
/* 84250*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84252*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84255*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84258*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgt:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 84268*/    /*SwitchType*/ 46, MVT::v4i16,// ->84316
/* 84270*/      OPC_Scope, 21, /*->84293*/ // 2 children in Scope
/* 84272*/        OPC_CheckChild0Type, MVT::v4i16,
/* 84274*/        OPC_RecordChild1, // #1 = $Vm
/* 84275*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84277*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84280*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84283*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 84293*/      /*Scope*/ 21, /*->84315*/
/* 84294*/        OPC_CheckChild0Type, MVT::v4f16,
/* 84296*/        OPC_RecordChild1, // #1 = $Vm
/* 84297*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84299*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84302*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84305*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGThd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 84315*/      0, /*End of Scope*/
/* 84316*/    /*SwitchType*/ 46, MVT::v2i32,// ->84364
/* 84318*/      OPC_Scope, 21, /*->84341*/ // 2 children in Scope
/* 84320*/        OPC_CheckChild0Type, MVT::v2i32,
/* 84322*/        OPC_RecordChild1, // #1 = $Vm
/* 84323*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84325*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84328*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84331*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 84341*/      /*Scope*/ 21, /*->84363*/
/* 84342*/        OPC_CheckChild0Type, MVT::v2f32,
/* 84344*/        OPC_RecordChild1, // #1 = $Vm
/* 84345*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84347*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84350*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84353*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 84363*/      0, /*End of Scope*/
/* 84364*/    /*SwitchType*/ 21, MVT::v16i8,// ->84387
/* 84366*/      OPC_CheckChild0Type, MVT::v16i8,
/* 84368*/      OPC_RecordChild1, // #1 = $Vm
/* 84369*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84371*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84374*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84377*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgt:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 84387*/    /*SwitchType*/ 46, MVT::v8i16,// ->84435
/* 84389*/      OPC_Scope, 21, /*->84412*/ // 2 children in Scope
/* 84391*/        OPC_CheckChild0Type, MVT::v8i16,
/* 84393*/        OPC_RecordChild1, // #1 = $Vm
/* 84394*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84396*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84399*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84402*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 84412*/      /*Scope*/ 21, /*->84434*/
/* 84413*/        OPC_CheckChild0Type, MVT::v8f16,
/* 84415*/        OPC_RecordChild1, // #1 = $Vm
/* 84416*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84418*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84421*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84424*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGThq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 84434*/      0, /*End of Scope*/
/* 84435*/    /*SwitchType*/ 46, MVT::v4i32,// ->84483
/* 84437*/      OPC_Scope, 21, /*->84460*/ // 2 children in Scope
/* 84439*/        OPC_CheckChild0Type, MVT::v4i32,
/* 84441*/        OPC_RecordChild1, // #1 = $Vm
/* 84442*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84444*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84447*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84450*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 84460*/      /*Scope*/ 21, /*->84482*/
/* 84461*/        OPC_CheckChild0Type, MVT::v4f32,
/* 84463*/        OPC_RecordChild1, // #1 = $Vm
/* 84464*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84466*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84469*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84472*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (NEONvcgt:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 84482*/      0, /*End of Scope*/
/* 84483*/    0, // EndSwitchType
/* 84484*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ARMISD::VCGTU),// ->84629
/* 84488*/    OPC_RecordChild0, // #0 = $Vn
/* 84489*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->84513
/* 84492*/      OPC_CheckChild0Type, MVT::v8i8,
/* 84494*/      OPC_RecordChild1, // #1 = $Vm
/* 84495*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84497*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84500*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84503*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 84513*/    /*SwitchType*/ 21, MVT::v4i16,// ->84536
/* 84515*/      OPC_CheckChild0Type, MVT::v4i16,
/* 84517*/      OPC_RecordChild1, // #1 = $Vm
/* 84518*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84520*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84523*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84526*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 84536*/    /*SwitchType*/ 21, MVT::v2i32,// ->84559
/* 84538*/      OPC_CheckChild0Type, MVT::v2i32,
/* 84540*/      OPC_RecordChild1, // #1 = $Vm
/* 84541*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84543*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84546*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84549*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 84559*/    /*SwitchType*/ 21, MVT::v16i8,// ->84582
/* 84561*/      OPC_CheckChild0Type, MVT::v16i8,
/* 84563*/      OPC_RecordChild1, // #1 = $Vm
/* 84564*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84566*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84569*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84572*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 84582*/    /*SwitchType*/ 21, MVT::v8i16,// ->84605
/* 84584*/      OPC_CheckChild0Type, MVT::v8i16,
/* 84586*/      OPC_RecordChild1, // #1 = $Vm
/* 84587*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84589*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84592*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84595*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 84605*/    /*SwitchType*/ 21, MVT::v4i32,// ->84628
/* 84607*/      OPC_CheckChild0Type, MVT::v4i32,
/* 84609*/      OPC_RecordChild1, // #1 = $Vm
/* 84610*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84612*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84615*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84618*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvcgtu:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VCGTuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 84628*/    0, // EndSwitchType
/* 84629*/  /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ARMISD::VCGTZ),// ->84854
/* 84633*/    OPC_RecordChild0, // #0 = $Vm
/* 84634*/    OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->84656
/* 84637*/      OPC_CheckChild0Type, MVT::v8i8,
/* 84639*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84641*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84644*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84647*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcgtz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 84656*/    /*SwitchType*/ 42, MVT::v4i16,// ->84700
/* 84658*/      OPC_Scope, 19, /*->84679*/ // 2 children in Scope
/* 84660*/        OPC_CheckChild0Type, MVT::v4i16,
/* 84662*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84664*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84667*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84670*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 84679*/      /*Scope*/ 19, /*->84699*/
/* 84680*/        OPC_CheckChild0Type, MVT::v4f16,
/* 84682*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84684*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84687*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84690*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 84699*/      0, /*End of Scope*/
/* 84700*/    /*SwitchType*/ 42, MVT::v2i32,// ->84744
/* 84702*/      OPC_Scope, 19, /*->84723*/ // 2 children in Scope
/* 84704*/        OPC_CheckChild0Type, MVT::v2i32,
/* 84706*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84708*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84711*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84714*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 84723*/      /*Scope*/ 19, /*->84743*/
/* 84724*/        OPC_CheckChild0Type, MVT::v2f32,
/* 84726*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84728*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84731*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84734*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 84743*/      0, /*End of Scope*/
/* 84744*/    /*SwitchType*/ 19, MVT::v16i8,// ->84765
/* 84746*/      OPC_CheckChild0Type, MVT::v16i8,
/* 84748*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84750*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84753*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84756*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcgtz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCGTzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 84765*/    /*SwitchType*/ 42, MVT::v8i16,// ->84809
/* 84767*/      OPC_Scope, 19, /*->84788*/ // 2 children in Scope
/* 84769*/        OPC_CheckChild0Type, MVT::v8i16,
/* 84771*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84773*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84776*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84779*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 84788*/      /*Scope*/ 19, /*->84808*/
/* 84789*/        OPC_CheckChild0Type, MVT::v8f16,
/* 84791*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84793*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84796*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84799*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8f16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 84808*/      0, /*End of Scope*/
/* 84809*/    /*SwitchType*/ 42, MVT::v4i32,// ->84853
/* 84811*/      OPC_Scope, 19, /*->84832*/ // 2 children in Scope
/* 84813*/        OPC_CheckChild0Type, MVT::v4i32,
/* 84815*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84817*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84820*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84823*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 84832*/      /*Scope*/ 19, /*->84852*/
/* 84833*/        OPC_CheckChild0Type, MVT::v4f32,
/* 84835*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84837*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84843*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4f32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcgtz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCGTzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 84852*/      0, /*End of Scope*/
/* 84853*/    0, // EndSwitchType
/* 84854*/  /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ARMISD::VCLTZ),// ->85079
/* 84858*/    OPC_RecordChild0, // #0 = $Vm
/* 84859*/    OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->84881
/* 84862*/      OPC_CheckChild0Type, MVT::v8i8,
/* 84864*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84866*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84869*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84872*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcltz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCLTzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 84881*/    /*SwitchType*/ 42, MVT::v4i16,// ->84925
/* 84883*/      OPC_Scope, 19, /*->84904*/ // 2 children in Scope
/* 84885*/        OPC_CheckChild0Type, MVT::v4i16,
/* 84887*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84889*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84892*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84895*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 84904*/      /*Scope*/ 19, /*->84924*/
/* 84905*/        OPC_CheckChild0Type, MVT::v4f16,
/* 84907*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 84909*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84912*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84915*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 84924*/      0, /*End of Scope*/
/* 84925*/    /*SwitchType*/ 42, MVT::v2i32,// ->84969
/* 84927*/      OPC_Scope, 19, /*->84948*/ // 2 children in Scope
/* 84929*/        OPC_CheckChild0Type, MVT::v2i32,
/* 84931*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84939*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 84948*/      /*Scope*/ 19, /*->84968*/
/* 84949*/        OPC_CheckChild0Type, MVT::v2f32,
/* 84951*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84953*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84956*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84959*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 84968*/      0, /*End of Scope*/
/* 84969*/    /*SwitchType*/ 19, MVT::v16i8,// ->84990
/* 84971*/      OPC_CheckChild0Type, MVT::v16i8,
/* 84973*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84975*/      OPC_EmitInteger, MVT::i32, 14, 
/* 84978*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84981*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvcltz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCLTzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 84990*/    /*SwitchType*/ 42, MVT::v8i16,// ->85034
/* 84992*/      OPC_Scope, 19, /*->85013*/ // 2 children in Scope
/* 84994*/        OPC_CheckChild0Type, MVT::v8i16,
/* 84996*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 84998*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85001*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85004*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 85013*/      /*Scope*/ 19, /*->85033*/
/* 85014*/        OPC_CheckChild0Type, MVT::v8f16,
/* 85016*/        OPC_CheckPatternPredicate, 43, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 85018*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85021*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85024*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8f16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 85033*/      0, /*End of Scope*/
/* 85034*/    /*SwitchType*/ 42, MVT::v4i32,// ->85078
/* 85036*/      OPC_Scope, 19, /*->85057*/ // 2 children in Scope
/* 85038*/        OPC_CheckChild0Type, MVT::v4i32,
/* 85040*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85042*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85045*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85048*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 85057*/      /*Scope*/ 19, /*->85077*/
/* 85058*/        OPC_CheckChild0Type, MVT::v4f32,
/* 85060*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85062*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85065*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85068*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4f32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (NEONvcltz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VCLTzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 85077*/      0, /*End of Scope*/
/* 85078*/    0, // EndSwitchType
/* 85079*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ARMISD::VTST),// ->85224
/* 85083*/    OPC_RecordChild0, // #0 = $Vn
/* 85084*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->85108
/* 85087*/      OPC_CheckChild0Type, MVT::v8i8,
/* 85089*/      OPC_RecordChild1, // #1 = $Vm
/* 85090*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85092*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85095*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85098*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VTSTv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 85108*/    /*SwitchType*/ 21, MVT::v4i16,// ->85131
/* 85110*/      OPC_CheckChild0Type, MVT::v4i16,
/* 85112*/      OPC_RecordChild1, // #1 = $Vm
/* 85113*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85115*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85118*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85121*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VTSTv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 85131*/    /*SwitchType*/ 21, MVT::v2i32,// ->85154
/* 85133*/      OPC_CheckChild0Type, MVT::v2i32,
/* 85135*/      OPC_RecordChild1, // #1 = $Vm
/* 85136*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85138*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85141*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85144*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VTSTv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85154*/    /*SwitchType*/ 21, MVT::v16i8,// ->85177
/* 85156*/      OPC_CheckChild0Type, MVT::v16i8,
/* 85158*/      OPC_RecordChild1, // #1 = $Vm
/* 85159*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85161*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85164*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85167*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VTSTv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 85177*/    /*SwitchType*/ 21, MVT::v8i16,// ->85200
/* 85179*/      OPC_CheckChild0Type, MVT::v8i16,
/* 85181*/      OPC_RecordChild1, // #1 = $Vm
/* 85182*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85184*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85187*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85190*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VTSTv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 85200*/    /*SwitchType*/ 21, MVT::v4i32,// ->85223
/* 85202*/      OPC_CheckChild0Type, MVT::v4i32,
/* 85204*/      OPC_RecordChild1, // #1 = $Vm
/* 85205*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85207*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85210*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85213*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTSTv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (NEONvtst:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VTSTv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85223*/    0, // EndSwitchType
/* 85224*/  /*SwitchOpcode*/ 47, TARGET_VAL(ARMISD::VBSL),// ->85274
/* 85227*/    OPC_RecordChild0, // #0 = $src1
/* 85228*/    OPC_RecordChild1, // #1 = $Vn
/* 85229*/    OPC_RecordChild2, // #2 = $Vm
/* 85230*/    OPC_SwitchType /*2 cases */, 19, MVT::v2i32,// ->85252
/* 85233*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85235*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85238*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85241*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (NEONvbsl:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85252*/    /*SwitchType*/ 19, MVT::v4i32,// ->85273
/* 85254*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85256*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85259*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85262*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (NEONvbsl:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85273*/    0, // EndSwitchType
/* 85274*/  /*SwitchOpcode*/ 124, TARGET_VAL(ISD::SMAX),// ->85401
/* 85277*/    OPC_RecordChild0, // #0 = $Vn
/* 85278*/    OPC_RecordChild1, // #1 = $Vm
/* 85279*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->85300
/* 85282*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85284*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85287*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85290*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 85300*/    /*SwitchType*/ 18, MVT::v2i32,// ->85320
/* 85302*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85304*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85307*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85310*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85320*/    /*SwitchType*/ 18, MVT::v8i16,// ->85340
/* 85322*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85324*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85327*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85330*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 85340*/    /*SwitchType*/ 18, MVT::v4i32,// ->85360
/* 85342*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85344*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85347*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85350*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85360*/    /*SwitchType*/ 18, MVT::v8i8,// ->85380
/* 85362*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85364*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85367*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85370*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 85380*/    /*SwitchType*/ 18, MVT::v16i8,// ->85400
/* 85382*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85384*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85387*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85390*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VMAXsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 85400*/    0, // EndSwitchType
/* 85401*/  /*SwitchOpcode*/ 124, TARGET_VAL(ISD::UMAX),// ->85528
/* 85404*/    OPC_RecordChild0, // #0 = $Vn
/* 85405*/    OPC_RecordChild1, // #1 = $Vm
/* 85406*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->85427
/* 85409*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85411*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85414*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85417*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 85427*/    /*SwitchType*/ 18, MVT::v2i32,// ->85447
/* 85429*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85431*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85434*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85437*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85447*/    /*SwitchType*/ 18, MVT::v8i16,// ->85467
/* 85449*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85451*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85454*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85457*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 85467*/    /*SwitchType*/ 18, MVT::v4i32,// ->85487
/* 85469*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85471*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85474*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85477*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85487*/    /*SwitchType*/ 18, MVT::v8i8,// ->85507
/* 85489*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85491*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85494*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85497*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 85507*/    /*SwitchType*/ 18, MVT::v16i8,// ->85527
/* 85509*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85511*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85514*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85517*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VMAXuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 85527*/    0, // EndSwitchType
/* 85528*/  /*SwitchOpcode*/ 124, TARGET_VAL(ISD::SMIN),// ->85655
/* 85531*/    OPC_RecordChild0, // #0 = $Vn
/* 85532*/    OPC_RecordChild1, // #1 = $Vm
/* 85533*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->85554
/* 85536*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85538*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85541*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85544*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMINsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 85554*/    /*SwitchType*/ 18, MVT::v2i32,// ->85574
/* 85556*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85558*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85561*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85564*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMINsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85574*/    /*SwitchType*/ 18, MVT::v8i16,// ->85594
/* 85576*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85578*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85581*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85584*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VMINsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 85594*/    /*SwitchType*/ 18, MVT::v4i32,// ->85614
/* 85596*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85598*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85601*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85604*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VMINsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85614*/    /*SwitchType*/ 18, MVT::v8i8,// ->85634
/* 85616*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85618*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85621*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85624*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMINsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 85634*/    /*SwitchType*/ 18, MVT::v16i8,// ->85654
/* 85636*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85638*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85641*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85644*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (smin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VMINsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 85654*/    0, // EndSwitchType
/* 85655*/  /*SwitchOpcode*/ 124, TARGET_VAL(ISD::UMIN),// ->85782
/* 85658*/    OPC_RecordChild0, // #0 = $Vn
/* 85659*/    OPC_RecordChild1, // #1 = $Vm
/* 85660*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->85681
/* 85663*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85665*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85668*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85671*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMINuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 85681*/    /*SwitchType*/ 18, MVT::v2i32,// ->85701
/* 85683*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85685*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85688*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85691*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMINuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 85701*/    /*SwitchType*/ 18, MVT::v8i16,// ->85721
/* 85703*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85705*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85708*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85711*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VMINuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 85721*/    /*SwitchType*/ 18, MVT::v4i32,// ->85741
/* 85723*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85725*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85728*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85731*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VMINuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 85741*/    /*SwitchType*/ 18, MVT::v8i8,// ->85761
/* 85743*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85745*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85748*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85751*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMINuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 85761*/    /*SwitchType*/ 18, MVT::v16i8,// ->85781
/* 85763*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85765*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85768*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85771*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (umin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VMINuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 85781*/    0, // EndSwitchType
/* 85782*/  /*SwitchOpcode*/ 41, TARGET_VAL(ISD::CTPOP),// ->85826
/* 85785*/    OPC_RecordChild0, // #0 = $Vm
/* 85786*/    OPC_SwitchType /*2 cases */, 17, MVT::v8i8,// ->85806
/* 85789*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85791*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85794*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85797*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCNTd), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctpop:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VCNTd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 85806*/    /*SwitchType*/ 17, MVT::v16i8,// ->85825
/* 85808*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85810*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85813*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85816*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCNTq), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ctpop:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VCNTq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 85825*/    0, // EndSwitchType
/* 85826*/  /*SwitchOpcode*/ 60, TARGET_VAL(ISD::SIGN_EXTEND),// ->85889
/* 85829*/    OPC_RecordChild0, // #0 = $Vm
/* 85830*/    OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->85850
/* 85833*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85835*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85838*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85841*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMOVLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
/* 85850*/    /*SwitchType*/ 17, MVT::v4i32,// ->85869
/* 85852*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85854*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85857*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85860*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMOVLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
/* 85869*/    /*SwitchType*/ 17, MVT::v2i64,// ->85888
/* 85871*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85873*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85876*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85879*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMOVLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
/* 85888*/    0, // EndSwitchType
/* 85889*/  /*SwitchOpcode*/ 54, TARGET_VAL(ISD::ANY_EXTEND),// ->85946
/* 85892*/    OPC_RecordChild0, // #0 = $Vm
/* 85893*/    OPC_SwitchType /*3 cases */, 15, MVT::v8i16,// ->85911
/* 85896*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85899*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85902*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
/* 85911*/    /*SwitchType*/ 15, MVT::v4i32,// ->85928
/* 85913*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85916*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85919*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
/* 85928*/    /*SwitchType*/ 15, MVT::v2i64,// ->85945
/* 85930*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85933*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85936*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
/* 85945*/    0, // EndSwitchType
/* 85946*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ARMISD::VREV64),// ->86101
/* 85950*/    OPC_RecordChild0, // #0 = $Vm
/* 85951*/    OPC_SwitchType /*8 cases */, 17, MVT::v8i8,// ->85971
/* 85954*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85956*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85959*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85962*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV64d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 85971*/    /*SwitchType*/ 17, MVT::v4i16,// ->85990
/* 85973*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85975*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85978*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85981*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VREV64d16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 85990*/    /*SwitchType*/ 17, MVT::v2i32,// ->86009
/* 85992*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85994*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85997*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86000*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VREV64d32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 86009*/    /*SwitchType*/ 17, MVT::v16i8,// ->86028
/* 86011*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86013*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86016*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86019*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VREV64q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 86028*/    /*SwitchType*/ 17, MVT::v8i16,// ->86047
/* 86030*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86032*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86035*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86038*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VREV64q16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 86047*/    /*SwitchType*/ 17, MVT::v4i32,// ->86066
/* 86049*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86051*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86054*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86057*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                // Dst: (VREV64q32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 86066*/    /*SwitchType*/ 15, MVT::v2f32,// ->86083
/* 86068*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86071*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86074*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                    MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VREV64d32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 86083*/    /*SwitchType*/ 15, MVT::v4f32,// ->86100
/* 86085*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86088*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86091*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev64:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VREV64q32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 86100*/    0, // EndSwitchType
/* 86101*/  /*SwitchOpcode*/ 79, TARGET_VAL(ARMISD::VREV32),// ->86183
/* 86104*/    OPC_RecordChild0, // #0 = $Vm
/* 86105*/    OPC_SwitchType /*4 cases */, 17, MVT::v8i8,// ->86125
/* 86108*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86110*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86113*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86116*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev32:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV32d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 86125*/    /*SwitchType*/ 17, MVT::v4i16,// ->86144
/* 86127*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86129*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86132*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86135*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev32:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VREV32d16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 86144*/    /*SwitchType*/ 17, MVT::v16i8,// ->86163
/* 86146*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86148*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86151*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86154*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev32:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VREV32q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 86163*/    /*SwitchType*/ 17, MVT::v8i16,// ->86182
/* 86165*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86167*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86170*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86173*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev32:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                // Dst: (VREV32q16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 86182*/    0, // EndSwitchType
/* 86183*/  /*SwitchOpcode*/ 41, TARGET_VAL(ARMISD::VREV16),// ->86227
/* 86186*/    OPC_RecordChild0, // #0 = $Vm
/* 86187*/    OPC_SwitchType /*2 cases */, 17, MVT::v8i8,// ->86207
/* 86190*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86192*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86195*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86198*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev16:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV16d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 86207*/    /*SwitchType*/ 17, MVT::v16i8,// ->86226
/* 86209*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86211*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86214*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86217*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvrev16:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                // Dst: (VREV16q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 86226*/    0, // EndSwitchType
/* 86227*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VTBL1),// ->86250
/* 86230*/    OPC_RecordChild0, // #0 = $Vn
/* 86231*/    OPC_RecordChild1, // #1 = $Vm
/* 86232*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86234*/    OPC_EmitInteger, MVT::i32, 14, 
/* 86237*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86240*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL1), 0,
                  MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
              // Src: (NEONvtbl1:{ *:[v8i8] } VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
              // Dst: (VTBL1:{ *:[v8i8] } VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 86250*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::CONCAT_VECTORS),// ->86367
/* 86253*/    OPC_RecordChild0, // #0 = $Dn
/* 86254*/    OPC_RecordChild1, // #1 = $Dm
/* 86255*/    OPC_SwitchType /*5 cases */, 20, MVT::v2i64,// ->86278
/* 86258*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/* 86261*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86264*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86267*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v2i64] } QPR:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dm, dsub_1:{ *:[i32] })
/* 86278*/    /*SwitchType*/ 20, MVT::v4i32,// ->86300
/* 86280*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/* 86283*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86286*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86289*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v4i32] } QPR:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dm, dsub_1:{ *:[i32] })
/* 86300*/    /*SwitchType*/ 20, MVT::v8i16,// ->86322
/* 86302*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/* 86305*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86308*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86311*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v8i16] } QPR:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dm, dsub_1:{ *:[i32] })
/* 86322*/    /*SwitchType*/ 20, MVT::v16i8,// ->86344
/* 86324*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/* 86327*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86330*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86333*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v16i8] } QPR:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dm, dsub_1:{ *:[i32] })
/* 86344*/    /*SwitchType*/ 20, MVT::v4f32,// ->86366
/* 86346*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/* 86349*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86352*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86355*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4f32, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Dn, DPR:{ *:[v2f32] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v4f32] } QPR:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dm, dsub_1:{ *:[i32] })
/* 86366*/    0, // EndSwitchType
/* 86367*/  /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->86670
/* 86371*/    OPC_RecordChild0, // #0 = $src
/* 86372*/    OPC_Scope, 98|128,1/*226*/, /*->86601*/ // 3 children in Scope
/* 86375*/      OPC_CheckChild0Type, MVT::i32,
/* 86377*/      OPC_SwitchType /*6 cases */, 26, MVT::v8i8,// ->86406
/* 86380*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 86386*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86389*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86392*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86395*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi8), 0,
                      MVT::v8i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (scalar_to_vector:{ *:[v8i8] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (VSETLNi8:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/* 86406*/      /*SwitchType*/ 26, MVT::v4i16,// ->86434
/* 86408*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 86414*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86417*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86420*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86423*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi16), 0,
                      MVT::v4i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (scalar_to_vector:{ *:[v4i16] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (VSETLNi16:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/* 86434*/      /*SwitchType*/ 26, MVT::v2i32,// ->86462
/* 86436*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i32, 0/*#Ops*/,  // Results = #1
/* 86442*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86445*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86448*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86451*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi32), 0,
                      MVT::v2i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (scalar_to_vector:{ *:[v2i32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (VSETLNi32:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/* 86462*/      /*SwitchType*/ 44, MVT::v16i8,// ->86508
/* 86464*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 86470*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i8, 0/*#Ops*/,  // Results = #2
/* 86476*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86479*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86485*/        OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi8), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/* 86496*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86499*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 6, 7, 
                  // Src: (scalar_to_vector:{ *:[v16i8] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (VSETLNi8:{ *:[f64] } (IMPLICIT_DEF:{ *:[v8i8] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] }), dsub_0:{ *:[i32] })
/* 86508*/      /*SwitchType*/ 44, MVT::v8i16,// ->86554
/* 86510*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 86516*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i16, 0/*#Ops*/,  // Results = #2
/* 86522*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86525*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86528*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86531*/        OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi16), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/* 86542*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86545*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 6, 7, 
                  // Src: (scalar_to_vector:{ *:[v8i16] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (VSETLNi16:{ *:[f64] } (IMPLICIT_DEF:{ *:[v4i16] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] }), dsub_0:{ *:[i32] })
/* 86554*/      /*SwitchType*/ 44, MVT::v4i32,// ->86600
/* 86556*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 86562*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i32, 0/*#Ops*/,  // Results = #2
/* 86568*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86571*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86574*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86577*/        OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi32), 0,
                      MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/* 86588*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86591*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 6, 7, 
                  // Src: (scalar_to_vector:{ *:[v4i32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (VSETLNi32:{ *:[f64] } (IMPLICIT_DEF:{ *:[v2i32] }), GPR:{ *:[i32] }:$src, 0:{ *:[i32] }), dsub_0:{ *:[i32] })
/* 86600*/      0, // EndSwitchType
/* 86601*/    /*Scope*/ 44, /*->86646*/
/* 86602*/      OPC_CheckChild0Type, MVT::f32,
/* 86604*/      OPC_SwitchType /*2 cases */, 18, MVT::v2f32,// ->86625
/* 86607*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 86613*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 86616*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:{ *:[v2f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] })
/* 86625*/      /*SwitchType*/ 18, MVT::v4f32,// ->86645
/* 86627*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 86633*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 86636*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:{ *:[v4f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] })
/* 86645*/      0, // EndSwitchType
/* 86646*/    /*Scope*/ 22, /*->86669*/
/* 86647*/      OPC_CheckChild0Type, MVT::f64,
/* 86649*/      OPC_CheckType, MVT::v2f64,
/* 86651*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f64, 0/*#Ops*/,  // Results = #1
/* 86657*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86660*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (scalar_to_vector:{ *:[v2f64] } DPR:{ *:[f64] }:$src) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), DPR:{ *:[f64] }:$src, dsub_0:{ *:[i32] })
/* 86669*/    0, /*End of Scope*/
/* 86670*/  /*SwitchOpcode*/ 39, TARGET_VAL(ARMISD::VTBL2),// ->86712
/* 86673*/    OPC_RecordChild0, // #0 = $Vn0
/* 86674*/    OPC_RecordChild1, // #1 = $Vn1
/* 86675*/    OPC_RecordChild2, // #2 = $Vm
/* 86676*/    OPC_EmitInteger, MVT::i32, ARM::DPairRegClassID,
/* 86679*/    OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 86682*/    OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 86685*/    OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                  MVT::v16i8, 5/*#Ops*/, 3, 0, 4, 1, 5,  // Results = #6
/* 86696*/    OPC_EmitInteger, MVT::i32, 14, 
/* 86699*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86702*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL2), 0,
                  MVT::v8i8, 4/*#Ops*/, 6, 2, 7, 8, 
              // Src: (NEONvtbl2:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vm) - Complexity = 3
              // Dst: (VTBL2:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v16i8] } DPair:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
/* 86712*/  /*SwitchOpcode*/ 46, TARGET_VAL(ARMISD::VMOVFPIMM),// ->86761
/* 86715*/    OPC_RecordChild0, // #0 = $SIMM
/* 86716*/    OPC_MoveChild0,
/* 86717*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 86720*/    OPC_MoveParent,
/* 86721*/    OPC_SwitchType /*2 cases */, 17, MVT::v2f32,// ->86741
/* 86724*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86726*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86729*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86732*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2f32), 0,
                    MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmovFPImm:{ *:[v2f32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMOVv2f32:{ *:[v2f32] } (timm:{ *:[i32] }):$SIMM)
/* 86741*/    /*SwitchType*/ 17, MVT::v4f32,// ->86760
/* 86743*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86745*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86748*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86751*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4f32), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (NEONvmovFPImm:{ *:[v4f32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMOVv4f32:{ *:[v4f32] } (timm:{ *:[i32] }):$SIMM)
/* 86760*/    0, // EndSwitchType
/* 86761*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 86763 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 857
  // #OPC_RecordNode                           = 51
  // #OPC_RecordChild                          = 2506
  // #OPC_RecordMemRef                         = 13
  // #OPC_CaptureGlueInput                     = 12
  // #OPC_MoveChild                            = 1262
  // #OPC_MoveParent                           = 1828
  // #OPC_CheckSame                            = 0
  // #OPC_CheckChildSame                       = 86
  // #OPC_CheckPatternPredicate                = 2619
  // #OPC_CheckPredicate                       = 835
  // #OPC_CheckOpcode                          = 1120
  // #OPC_SwitchOpcode                         = 63
  // #OPC_CheckType                            = 1064
  // #OPC_SwitchType                           = 273
  // #OPC_CheckChildType                       = 1383
  // #OPC_CheckInteger                         = 1
  // #OPC_CheckChildInteger                    = 390
  // #OPC_CheckCondCode                        = 0
  // #OPC_CheckValueType                       = 44
  // #OPC_CheckComplexPat                      = 487
  // #OPC_CheckAndImm                          = 82
  // #OPC_CheckOrImm                           = 1
  // #OPC_CheckFoldableChainNode               = 9
  // #OPC_EmitInteger                          = 2804
  // #OPC_EmitStringInteger                    = 273
  // #OPC_EmitRegister                         = 2857
  // #OPC_EmitConvertToTarget                  = 846
  // #OPC_EmitMergeInputChains                 = 487
  // #OPC_EmitCopyToReg                        = 24
  // #OPC_EmitNode                             = 565
  // #OPC_EmitNodeXForm                        = 224
  // #OPC_CompleteMatch                        = 101
  // #OPC_MorphNodeTo                          = 2791

  #undef TARGET_VAL
  SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckPatternPredicate(unsigned PredNo) const override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
#if DAGISEL_INLINE
  override
#endif
{
  switch (PredNo) {
  default: llvm_unreachable("Invalid predicate in table?");
  case 0: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb());
  case 1: return (Subtarget->isThumb2());
  case 2: return (Subtarget->hasDSP()) && (Subtarget->isThumb2());
  case 3: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb());
  case 4: return (!Subtarget->isThumb());
  case 5: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
  case 6: return (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
  case 7: return (Subtarget->hasNEON());
  case 8: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 9: return (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps());
  case 10: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 11: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops());
  case 12: return (Subtarget->isThumb2()) && (Subtarget->useMulOps());
  case 13: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
  case 14: return (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
  case 15: return (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2());
  case 16: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2());
  case 17: return (Subtarget->hasVFP2());
  case 18: return (MF->getDataLayout().isLittleEndian());
  case 19: return (MF->getDataLayout().isBigEndian());
  case 20: return (Subtarget->hasFullFP16());
  case 21: return (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops());
  case 22: return (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops());
  case 23: return (Subtarget->isThumb()) && (Subtarget->isTargetWindows());
  case 24: return (Subtarget->isThumb());
  case 25: return (Subtarget->hasV6MOps()) && (Subtarget->isThumb());
  case 26: return (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
  case 27: return (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb());
  case 28: return (Subtarget->hasDataBarrier()) && (Subtarget->isThumb());
  case 29: return (Subtarget->hasV6KOps()) && (!Subtarget->isThumb());
  case 30: return (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
  case 31: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
  case 32: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
  case 33: return (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
  case 34: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb());
  case 35: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2());
  case 36: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb());
  case 37: return (Subtarget->hasFPARMv8());
  case 38: return (!Subtarget->isFPOnlySP()) && (Subtarget->hasFPARMv8());
  case 39: return (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
  case 40: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
  case 41: return (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps());
  case 42: return (Subtarget->hasDotProd());
  case 43: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON());
  case 44: return (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops());
  case 45: return (Subtarget->hasFP16()) && (Subtarget->hasNEON());
  case 46: return (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb());
  case 47: return (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt());
  case 48: return (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
  case 49: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb());
  case 50: return (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2());
  case 51: return (Subtarget->hasV5TOps()) && (!Subtarget->isThumb());
  case 52: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps());
  case 53: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 54: return (Subtarget->isThumb1Only());
  case 55: return (!Subtarget->isMClass()) && (Subtarget->isThumb2());
  case 56: return (Subtarget->hasV5TOps()) && (Subtarget->isThumb());
  case 57: return (Subtarget->hasV4TOps()) && (!Subtarget->isThumb());
  case 58: return (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps());
  case 59: return (!Subtarget->useMovt(*MF)) && (!Subtarget->isThumb());
  case 60: return (!Subtarget->isThumb()) && (Subtarget->useMovt(*MF));
  case 61: return (!Subtarget->useMovt(*MF)) && (Subtarget->isThumb());
  case 62: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt(*MF));
  case 63: return (Subtarget->isThumb2()) && (Subtarget->useMovt(*MF));
  case 64: return (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb());
  case 65: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt());
  case 66: return (Subtarget->isThumb2()) && (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt());
  case 67: return (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasVFP2());
  case 68: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32());
  case 69: return (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON());
  case 70: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
  case 71: return (Subtarget->isThumb()) && (Subtarget->useMovt(*MF));
  case 72: return (!Subtarget->isThumb()) && (Subtarget->useNaClTrap());
  case 73: return (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb());
  case 74: return (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb());
  case 75: return (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
  case 76: return (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard());
  case 77: return (!Subtarget->isThumb()) && (Subtarget->isReadTPHard());
  case 78: return (!Subtarget->isTargetWindows()) && (Subtarget->isThumb());
  case 79: return (Subtarget->hasVFP2()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
  case 80: return (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON());
  case 81: return (Subtarget->hasFP16());
  case 82: return (Subtarget->hasVFP2()) && (!Subtarget->isThumb());
  case 83: return (!Subtarget->isThumb()) && (!Subtarget->hasVFP2());
  case 84: return (Subtarget->hasVFP2()) && (Subtarget->isThumb2());
  case 85: return (Subtarget->isThumb2()) && (!Subtarget->hasVFP2());
  case 86: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx());
  case 87: return (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 88: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2()) && (Subtarget->useFPVMLx());
  case 89: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 90: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx());
  case 91: return (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 92: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (Subtarget->useFPVMLx());
  case 93: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 94: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
  case 95: return (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin()) && (Subtarget->useNEONForSinglePrecisionFP());
  case 96: return (Subtarget->hasNEON()) && (Subtarget->useFPVMLx());
  case 97: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx());
  case 98: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx());
  case 99: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 100: return (!(TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) || Subtarget->isTargetDarwin()) && (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->useFPVMLx());
  case 101: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin());
  case 102: return (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP4());
  case 103: return (Subtarget->hasVFP4());
  case 104: return (!Subtarget->isFPOnlySP()) && (!TM.Options.HonorSignDependentRoundingFPMath());
  case 105: return (!TM.Options.HonorSignDependentRoundingFPMath());
  case 106: return (!Subtarget->isFPOnlySP()) && (Subtarget->hasVFP3());
  case 107: return (Subtarget->hasVFP3());
  case 108: return (Subtarget->hasZeroCycleZeroing());
  case 109: return (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON());
  case 110: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32());
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
#if DAGISEL_INLINE
  override
#endif
{
  switch (PredNo) {
  default: llvm_unreachable("Invalid predicate in table?");
  case 0: { 
    // Predicate_pkh_lsl_amt
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= 0 && Imm < 32; 
  }
  case 1: { 
    // Predicate_pkh_asr_amt
    // Predicate_shr_imm32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm <= 32; 
  }
  case 2: { 
    // Predicate_imm1_15
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm < 16; 
  }
  case 3: { 
    // Predicate_imm16_31
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (int32_t)Imm >= 16 && (int32_t)Imm < 32;

  }
  case 4: { 
    // Predicate_imm16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == 16; 
  }
  case 5: { 
    // Predicate_lo16AllZero
    auto *N = cast<ConstantSDNode>(Node);

  // Returns true if all low 16-bits are 0.
  return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0;

  }
  case 6: { 
    // Predicate_t2_so_imm
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

    return ARM_AM::getT2SOImmVal(Imm) != -1;
  
  }
  case 7: { 
    // Predicate_imm0_7
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 0 && Imm < 8;

  }
  case 8: { 
    // Predicate_imm8_255
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 8 && Imm < 256;

  }
  case 9: { 
    // Predicate_imm0_4095
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 0 && Imm < 4096;

  }
  case 10: { 
    // Predicate_non_imm32
    SDNode *N = Node;
 return !isa<ConstantSDNode>(N); 
  }
  case 11: { 
    // Predicate_mod_imm
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

    return ARM_AM::getSOImmVal(Imm) != -1;
  
  }
  case 12: { 
    // Predicate_t2_so_imm_not
    auto *N = cast<ConstantSDNode>(Node);

  return ARM_AM::getT2SOImmVal(~((uint32_t)N->getZExtValue())) != -1;

  }
  case 13: { 
    // Predicate_NEONimmAllOnesV
    SDNode *N = Node;

  ConstantSDNode *ConstVal = cast<ConstantSDNode>(N->getOperand(0));
  unsigned EltBits = 0;
  uint64_t EltVal = ARM_AM::decodeNEONModImm(ConstVal->getZExtValue(), EltBits);
  return (EltBits == 8 && EltVal == 0xff);

  }
  case 14: { 
    // Predicate_rot_imm
    auto *N = cast<ConstantSDNode>(Node);

    int32_t v = N->getZExtValue();
    return v == 8 || v == 16 || v == 24; 
  }
  case 15: { 
    // Predicate_imm8_or_16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == 8 || Imm == 16;
  }
  case 16: { 
    // Predicate_sext_16_node
    SDNode *N = Node;

  if (CurDAG->ComputeNumSignBits(SDValue(N,0)) >= 17)
    return true;

  if (N->getOpcode() != ISD::SRA)
    return false;
  if (N->getOperand(0).getOpcode() != ISD::SHL)
    return false;

  auto *ShiftVal = dyn_cast<ConstantSDNode>(N->getOperand(1));
  if (!ShiftVal || ShiftVal->getZExtValue() != 16)
    return false;

  ShiftVal = dyn_cast<ConstantSDNode>(N->getOperand(0)->getOperand(1));
  if (!ShiftVal || ShiftVal->getZExtValue() != 16)
    return false;

  return true;

  }
  case 17: { 
    // Predicate_imm1_255_neg
    auto *N = cast<ConstantSDNode>(Node);

  uint32_t Val = -N->getZExtValue();
  return (Val > 0 && Val < 255);

  }
  case 18: { 
    // Predicate_mod_imm_neg
    auto *N = cast<ConstantSDNode>(Node);

    unsigned Value = -(unsigned)N->getZExtValue();
    return Value && ARM_AM::getSOImmVal(Value) != -1;
  
  }
  case 19: { 
    // Predicate_imm0_7_neg
    auto *N = cast<ConstantSDNode>(Node);

  return (uint32_t)-N->getZExtValue() < 8;

  }
  case 20: { 
    // Predicate_imm8_255_neg
    auto *N = cast<ConstantSDNode>(Node);

  unsigned Val = -N->getZExtValue();
  return Val >= 8 && Val < 256;

  }
  case 21: { 
    // Predicate_t2_so_imm_neg
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm && ARM_AM::getT2SOImmVal(-(uint32_t)Imm) != -1;

  }
  case 22: { 
    // Predicate_imm0_4095_neg
    auto *N = cast<ConstantSDNode>(Node);

 return (uint32_t)(-N->getZExtValue()) < 4096;

  }
  case 23: { 
    // Predicate_imm0_65535_neg
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return -Imm >= 0 && -Imm < 65536;

  }
  case 24: { 
    // Predicate_ldrex_1
    // Predicate_ldaex_1
    // Predicate_strex_1
    // Predicate_stlex_1
    SDNode *N = Node;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 25: { 
    // Predicate_ldrex_2
    // Predicate_ldaex_2
    // Predicate_strex_2
    // Predicate_stlex_2
    SDNode *N = Node;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 26: { 
    // Predicate_mod_imm_not
    auto *N = cast<ConstantSDNode>(Node);

    return ARM_AM::getSOImmVal(~(uint32_t)N->getZExtValue()) != -1;
  
  }
  case 27: { 
    // Predicate_top16Zero
    SDNode *N = Node;

  return CurDAG->MaskedValueIsZero(SDValue(N,0), APInt::getHighBitsSet(32, 16));
  
  }
  case 28: { 
    // Predicate_t2_so_imm_notSext
    auto *N = cast<ConstantSDNode>(Node);

    APInt apIntN = N->getAPIntValue();
    if (!apIntN.isIntN(16)) return false;
    unsigned N16bitSignExt = apIntN.trunc(16).sext(32).getZExtValue();
    return ARM_AM::getT2SOImmVal(~N16bitSignExt) != -1;
  
  }
  case 29: { 
    // Predicate_bf_inv_mask_imm
    auto *N = cast<ConstantSDNode>(Node);

  return ARM::isBitFieldInvertedMask(N->getZExtValue());

  }
  case 30: { 
    // Predicate_unindexedload
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

  }
  case 31: { 
    // Predicate_extload
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::EXTLOAD) return false;
return true;

  }
  case 32: { 
    // Predicate_extloadi16
    // Predicate_zextloadi16
    // Predicate_sextloadi16
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

  }
  case 33: { 
    // Predicate_imm_sr
    auto *N = cast<ConstantSDNode>(Node);

  uint64_t Imm = N->getZExtValue();
  return Imm > 0 && Imm <= 32;

  }
  case 34: { 
    // Predicate_unindexedstore
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

  }
  case 35: { 
    // Predicate_truncstore
    // Predicate_itruncstore
    SDNode *N = Node;
 if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
return true;

  }
  case 36: { 
    // Predicate_truncstorei16
    // Predicate_post_truncsti16
    // Predicate_pre_truncsti16
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

  }
  case 37: { 
    // Predicate_post_truncst
    // Predicate_post_store
    SDNode *N = Node;

  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
  return AM == ISD::POST_INC || AM == ISD::POST_DEC;

  }
  case 38: { 
    // Predicate_post_truncsti8
    // Predicate_truncstorei8
    // Predicate_pre_truncsti8
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 39: { 
    // Predicate_istore
    // Predicate_store
    SDNode *N = Node;
 if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
return true;

  }
  case 40: { 
    // Predicate_alignedstore32
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 4;

  }
  case 41: { 
    // Predicate_pre_store
    // Predicate_pre_truncst
    SDNode *N = Node;

  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;

  }
  case 42: { 
    // Predicate_hword_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() == 2;

  }
  case 43: { 
    // Predicate_byte_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() == 1;

  }
  case 44: { 
    // Predicate_non_word_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() < 4;

  }
  case 45: { 
    // Predicate_alignedstore16
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 2;

  }
  case 46: { 
    // Predicate_dword_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 8;

  }
  case 47: { 
    // Predicate_word_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() == 4;

  }
  case 48: { 
    // Predicate_imm0_65535
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 0 && Imm < 65536;

  }
  case 49: { 
    // Predicate_imm0_255
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= 0 && Imm < 256; 
  }
  case 50: { 
    // Predicate_imm0_239
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= 0 && Imm < 240; 
  }
  case 51: { 
    // Predicate_imm0_15
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 0 && Imm < 16;

  }
  case 52: { 
    // Predicate_imm1_32
    auto *N = cast<ConstantSDNode>(Node);

   uint64_t Imm = N->getZExtValue();
   return Imm > 0 && Imm <= 32;
 
  }
  case 53: { 
    // Predicate_imm0_31
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 0 && Imm < 32;

  }
  case 54: { 
    // Predicate_imm1_16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

    return Imm > 0 && Imm <= 16;
  
  }
  case 55: { 
    // Predicate_VectorIndex32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return ((uint64_t)Imm) < 2;

  }
  case 56: { 
    // Predicate_and_su
    // Predicate_xor_su
    // Predicate_fmul_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 57: { 
    // Predicate_load
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
return true;

  }
  case 58: { 
    // Predicate_zextload
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
return true;

  }
  case 59: { 
    // Predicate_zextloadi8
    // Predicate_sextloadi8
    // Predicate_extloadi8
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 60: { 
    // Predicate_sextload
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::SEXTLOAD) return false;
return true;

  }
  case 61: { 
    // Predicate_zextloadi1
    // Predicate_extloadi1
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i1) return false;
return true;

  }
  case 62: { 
    // Predicate_alignedload32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 4;

  }
  case 63: { 
    // Predicate_alignedload16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 2;

  }
  case 64: { 
    // Predicate_hword_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() == 2;

  }
  case 65: { 
    // Predicate_byte_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() == 1;

  }
  case 66: { 
    // Predicate_non_word_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() < 4;

  }
  case 67: { 
    // Predicate_extloadvi8
    // Predicate_zextloadvi8
    // Predicate_sextloadvi8
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i8) return false;
return true;

  }
  case 68: { 
    // Predicate_extloadvi16
    // Predicate_zextloadvi16
    // Predicate_sextloadvi16
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i16) return false;
return true;

  }
  case 69: { 
    // Predicate_extloadvi32
    // Predicate_zextloadvi32
    // Predicate_sextloadvi32
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i32) return false;
return true;

  }
  case 70: { 
    // Predicate_dword_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 8;

  }
  case 71: { 
    // Predicate_word_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() == 4;

  }
  case 72: { 
    // Predicate_strex_4
    // Predicate_stlex_4
    // Predicate_ldrex_4
    // Predicate_ldaex_4
    SDNode *N = Node;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 73: { 
    // Predicate_atomic_load_8
    // Predicate_atomic_store_8
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 74: { 
    // Predicate_atomic_load_acquire_8
    // Predicate_atomic_load_acquire_16
    // Predicate_atomic_load_acquire_32
    SDNode *N = Node;

  AtomicOrdering Ordering = cast<AtomicSDNode>(N)->getOrdering();
  return isAcquireOrStronger(Ordering);

  }
  case 75: { 
    // Predicate_atomic_load_16
    // Predicate_atomic_store_16
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

  }
  case 76: { 
    // Predicate_atomic_load_32
    // Predicate_atomic_store_32
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 77: { 
    // Predicate_atomic_store_release_8
    // Predicate_atomic_store_release_16
    // Predicate_atomic_store_release_32
    SDNode *N = Node;

  AtomicOrdering Ordering = cast<AtomicSDNode>(N)->getOrdering();
  return isReleaseOrStronger(Ordering);

  }
  case 78: { 
    // Predicate_lo5AllOne
    auto *N = cast<ConstantSDNode>(Node);

  // Returns true if all low 5-bits are 1.
  return (((uint32_t)N->getZExtValue()) & 0x1FUL) == 0x1FUL;

  }
  case 79: { 
    // Predicate_NEONimmAllZerosV
    SDNode *N = Node;

  ConstantSDNode *ConstVal = cast<ConstantSDNode>(N->getOperand(0));
  unsigned EltBits = 0;
  uint64_t EltVal = ARM_AM::decodeNEONModImm(ConstVal->getZExtValue(), EltBits);
  return (EltBits == 32 && EltVal == 0);

  }
  case 80: { 
    // Predicate_imm0_255_not
    auto *N = cast<ConstantSDNode>(Node);

  return (uint32_t)(~N->getZExtValue()) < 255;

  }
  case 81: { 
    // Predicate_imm1_31
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm < 32; 
  }
  case 82: { 
    // Predicate_arm_i32imm
    auto *N = cast<ConstantSDNode>(Node);

  if (Subtarget->useMovt(*MF))
    return true;
  return ARM_AM::isSOImmTwoPartVal((unsigned)N->getZExtValue());

  }
  case 83: { 
    // Predicate_thumb_immshifted
    auto *N = cast<ConstantSDNode>(Node);

  return ARM_AM::isThumbImmShiftedVal((unsigned)N->getZExtValue());

  }
  case 84: { 
    // Predicate_imm0_255_comp
    auto *N = cast<ConstantSDNode>(Node);

  return ~((uint32_t)N->getZExtValue()) < 256;

  }
  case 85: { 
    // Predicate_imm256_510
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return Imm >= 256 && Imm < 511;

  }
  case 86: { 
    // Predicate_fadd_mlx
    // Predicate_fsub_mlx
    SDNode *N = Node;

  return hasNoVMLxHazardUse(N);

  }
  case 87: { 
    // Predicate_vfp_f64imm
    auto *N = cast<ConstantFPSDNode>(Node);

      return ARM_AM::getFP64Imm(N->getValueAPF()) != -1;
    
  }
  case 88: { 
    // Predicate_vfp_f32imm
    auto *N = cast<ConstantFPSDNode>(Node);

      return ARM_AM::getFP32Imm(N->getValueAPF()) != -1;
    
  }
  case 89: { 
    // Predicate_vfp_f16imm
    auto *N = cast<ConstantFPSDNode>(Node);

      return ARM_AM::getFP16Imm(N->getValueAPF()) != -1;
    
  }
  case 90: { 
    // Predicate_shr_imm8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm <= 8; 
  }
  case 91: { 
    // Predicate_shr_imm16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm <= 16; 
  }
  case 92: { 
    // Predicate_imm1_7
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm < 8; 
  }
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
#if DAGISEL_INLINE
  override
#endif
{
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: llvm_unreachable("Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+2);
  return SelectShiftImmShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 1:
    Result.resize(NextRes+3);
  return SelectRegShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 2:
    Result.resize(NextRes+1);
  return SelectAddLikeOr(Parent, N, Result[NextRes+0].first);
  case 3:
    Result.resize(NextRes+2);
  return SelectImmShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 4:
    Result.resize(NextRes+1);
  return SelectAddrOffsetNone(N, Result[NextRes+0].first);
  case 5:
    Result.resize(NextRes+3);
  return SelectAddrMode3(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 6:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S2(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 7:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeRR(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 8:
    Result.resize(NextRes+3);
  return SelectShiftRegShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 9:
    Result.resize(NextRes+2);
  return SelectShiftImmShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 10:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 11:
    Result.resize(NextRes+1);
  return SelectAddrMode6Offset(Root, N, Result[NextRes+0].first);
  case 12:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 13:
    Result.resize(NextRes+2);
  return SelectAddrModePC(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 14:
    Result.resize(NextRes+2);
  return SelectAddrMode2OffsetReg(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 15:
    Result.resize(NextRes+2);
  return SelectAddrMode2OffsetImm(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 16:
    Result.resize(NextRes+2);
  return SelectAddrMode3Offset(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 17:
    Result.resize(NextRes+3);
  return SelectLdStSOReg(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 18:
    Result.resize(NextRes+3);
  return SelectT2AddrModeSoReg(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 19:
    Result.resize(NextRes+1);
  return SelectT2AddrModeImm8Offset(Root, N, Result[NextRes+0].first);
  case 20:
    Result.resize(NextRes+2);
  return SelectAddrMode5(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 21:
    Result.resize(NextRes+2);
  return SelectAddrModeImm12(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 22:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeSP(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 23:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S4(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 24:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S1(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 25:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm12(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 26:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm8(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 27:
    Result.resize(NextRes+2);
  return SelectAddrMode5FP16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 28:
    Result.resize(NextRes+2);
  return SelectCMOVPred(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 29:
    Result.resize(NextRes+2);
  return SelectT2AddrModeExclusive(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 30:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 31:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 32:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 33:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
#if DAGISEL_INLINE
  override
#endif
{
  switch (XFormNo) {
  default: llvm_unreachable("Invalid xform # in table?");
  case 0: {  // hi16
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant((uint32_t)N->getZExtValue() >> 16, SDLoc(N),
                                   MVT::i32);

  }
  case 1: {  // t2_so_imm_not_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), SDLoc(N),
                                   MVT::i32);

  }
  case 2: {  // rot_imm_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  switch (N->getZExtValue()){
  default: llvm_unreachable(nullptr);
  case 0:  return CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
  case 8:  return CurDAG->getTargetConstant(1, SDLoc(N), MVT::i32);
  case 16: return CurDAG->getTargetConstant(2, SDLoc(N), MVT::i32);
  case 24: return CurDAG->getTargetConstant(3, SDLoc(N), MVT::i32);
  }

  }
  case 3: {  // imm_neg_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(-(int)N->getZExtValue(), SDLoc(N), MVT::i32);

  }
  case 4: {  // t2_so_imm_neg_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(-((int)N->getZExtValue()), SDLoc(N),
                                   MVT::i32);

  }
  case 5: {  // DSubReg_i16_reg
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  assert(ARM::dsub_7 == ARM::dsub_0+7 && "Unexpected subreg numbering");
  return CurDAG->getTargetConstant(ARM::dsub_0 + N->getZExtValue()/4, SDLoc(N),
                                   MVT::i32);

  }
  case 6: {  // SubReg_i16_lane
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(N->getZExtValue() & 3, SDLoc(N), MVT::i32);

  }
  case 7: {  // DSubReg_i32_reg
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  assert(ARM::dsub_7 == ARM::dsub_0+7 && "Unexpected subreg numbering");
  return CurDAG->getTargetConstant(ARM::dsub_0 + N->getZExtValue()/2, SDLoc(N),
                                   MVT::i32);

  }
  case 8: {  // SubReg_i32_lane
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(N->getZExtValue() & 1, SDLoc(N), MVT::i32);

  }
  case 9: {  // imm_not_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(~(int)N->getZExtValue(), SDLoc(N), MVT::i32);

  }
  case 10: {  // t2_so_imm_notSext16_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  APInt apIntN = N->getAPIntValue();
  unsigned N16bitSignExt = apIntN.trunc(16).sext(32).getZExtValue();
  return CurDAG->getTargetConstant(~N16bitSignExt, SDLoc(N), MVT::i32);

  }
  case 11: {  // imm_sr_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  unsigned Imm = N->getZExtValue();
  return CurDAG->getTargetConstant((Imm == 32 ? 0 : Imm), SDLoc(N), MVT::i32);

  }
  case 12: {  // imm1_32_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant((int)N->getZExtValue() - 1, SDLoc(N),
                                   MVT::i32);

  }
  case 13: {  // imm1_16_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant((int)N->getZExtValue() - 1, SDLoc(N),
                                   MVT::i32);

  }
  case 14: {  // DSubReg_i8_reg
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  assert(ARM::dsub_7 == ARM::dsub_0+7 && "Unexpected subreg numbering");
  return CurDAG->getTargetConstant(ARM::dsub_0 + N->getZExtValue()/8, SDLoc(N),
                                   MVT::i32);

  }
  case 15: {  // SubReg_i8_lane
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(N->getZExtValue() & 7, SDLoc(N), MVT::i32);

  }
  case 16: {  // SSubReg_f32_reg
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  assert(ARM::ssub_3 == ARM::ssub_0+3 && "Unexpected subreg numbering");
  return CurDAG->getTargetConstant(ARM::ssub_0 + N->getZExtValue(), SDLoc(N),
                                   MVT::i32);

  }
  case 17: {  // DSubReg_f64_reg
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  assert(ARM::dsub_7 == ARM::dsub_0+7 && "Unexpected subreg numbering");
  return CurDAG->getTargetConstant(ARM::dsub_0 + N->getZExtValue(), SDLoc(N),
                                   MVT::i32);

  }
  case 18: {  // thumb_immshifted_val
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  unsigned V = ARM_AM::getThumbImmNonShiftedVal((unsigned)N->getZExtValue());
  return CurDAG->getTargetConstant(V, SDLoc(N), MVT::i32);

  }
  case 19: {  // thumb_immshifted_shamt
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  unsigned V = ARM_AM::getThumbImmValShift((unsigned)N->getZExtValue());
  return CurDAG->getTargetConstant(V, SDLoc(N), MVT::i32);

  }
  case 20: {  // thumb_imm256_510_addend
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(N->getZExtValue() - 255, SDLoc(N), MVT::i32);

  }
  case 21: {  // anonymous_3783
    ConstantFPSDNode *N = cast<ConstantFPSDNode>(V.getNode());

      APFloat InVal = N->getValueAPF();
      uint32_t enc = ARM_AM::getFP64Imm(InVal);
      return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
    
  }
  case 22: {  // anonymous_3782
    ConstantFPSDNode *N = cast<ConstantFPSDNode>(V.getNode());

      APFloat InVal = N->getValueAPF();
      uint32_t enc = ARM_AM::getFP32Imm(InVal);
      return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
    
  }
  case 23: {  // anonymous_3781
    ConstantFPSDNode *N = cast<ConstantFPSDNode>(V.getNode());

      APFloat InVal = N->getValueAPF();
      uint32_t enc = ARM_AM::getFP16Imm(InVal);
      return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
    
  }
  }
}
#endif // GET_DAGISEL_BODY


#ifdef DAGISEL_INLINE
#undef DAGISEL_INLINE
#endif
#ifdef DAGISEL_CLASS_COLONCOLON
#undef DAGISEL_CLASS_COLONCOLON
#endif
#ifdef GET_DAGISEL_DECL
#undef GET_DAGISEL_DECL
#endif
#ifdef GET_DAGISEL_BODY
#undef GET_DAGISEL_BODY
#endif
